ls1-MarDyn
ls1-MarDyn molecular dynamics code
Classes | Enumerations | Functions | Variables
bhfmm Namespace Reference

Classes

class  AdaptivePseudoParticleContainer
 
class  CuboidPyramidalMatrix
 
class  DttNode
 
class  FastMultipoleMethod
 
class  HaloBufferOverlap
 
class  L2PCellProcessor
 
class  LeafNodesContainer
 
class  LocalParticle
 
class  MpCell
 
class  MultipoleParticle
 
class  P2MCellProcessor
 
class  ParticleCellPointers
 
class  PseudoParticle
 
class  PseudoParticleContainer
 
class  RotationParams
 
class  SHLocalParticle
 
class  SHMultipoleParticle
 
class  SimpleCellProcessor
 
class  SolidHarmonicsExpansion
 
class  SolidHarmonicsStorage
 
struct  TargetSourceTupel
 
class  UniformPseudoParticleContainer
 
class  Vector3
 
class  VectorizedChargeP2PCellProcessor
 Vectorized calculation of the force. More...
 
class  VectorizedLJP2PCellProcessor
 Vectorized calculation of the force. More...
 
class  WignerMatrix
 

Enumerations

enum  RotationType { ROT_TYPE_L = 0 , ROT_TYPE_M = 1 , ROT_TYPE_UNINITIALIZED }
 

Functions

void printTimer (double localTimer, std::string nameOfTimer, MPI_Comm comm)
 
void swap (SolidHarmonicsExpansion &s1, SolidHarmonicsExpansion &s2)
 
SolidHarmonicsExpansion operator+ (SolidHarmonicsExpansion LHS, const SolidHarmonicsExpansion &RHS)
 
SolidHarmonicsExpansion operator* (double scalar, SolidHarmonicsExpansion RHS)
 
SolidHarmonicsExpansion evaluateLOfR (int order, Vector3< double > r)
 
SolidHarmonicsExpansion evaluateMOfR (int order, Vector3< double > r)
 
SolidHarmonicsExpansion convoluteLL (const SolidHarmonicsExpansion &LE1, const SolidHarmonicsExpansion &LE2)
 
SolidHarmonicsExpansion convoluteLL_Z (const SolidHarmonicsExpansion &LE1, const SolidHarmonicsExpansion &LE2)
 
SolidHarmonicsExpansion convoluteLM (const SolidHarmonicsExpansion &LE, const SolidHarmonicsExpansion &ME)
 
SolidHarmonicsExpansion convoluteLM_Z (const SolidHarmonicsExpansion &LE, const SolidHarmonicsExpansion &ME)
 
SolidHarmonicsExpansion convoluteL_ZM (const SolidHarmonicsExpansion &LE, const SolidHarmonicsExpansion &ME)
 
SolidHarmonicsExpansion rotatePhi (const SolidHarmonicsExpansion &E, const double *CosSinPhi, int negate)
 
SolidHarmonicsExpansion rotateThetaL (const SolidHarmonicsExpansion &LE, const WignerMatrix &W)
 
SolidHarmonicsExpansion rotateThetaM (const SolidHarmonicsExpansion &ME, const WignerMatrix &W)
 
SolidHarmonicsExpansion setAtMinusR (SolidHarmonicsExpansion E)
 
double potentialML (const SolidHarmonicsExpansion &ME, const SolidHarmonicsExpansion &LE)
 
Vector3< double > forceGradLAndM (const SolidHarmonicsExpansion &LE, const SolidHarmonicsExpansion &ME)
 
Vector3< double > forceLAndGradM (const SolidHarmonicsExpansion &LE, const SolidHarmonicsExpansion &ME)
 
void swap (SolidHarmonicsStorage &s1, SolidHarmonicsStorage &s2)
 
SolidHarmonicsStorage operator+ (SolidHarmonicsStorage lhs, const SolidHarmonicsStorage &rhs)
 
SolidHarmonicsStorage operator* (double scalar, SolidHarmonicsStorage rhs)
 
template<typename type >
std::ostream & operator<< (std::ostream &stream, const Vector3< type > &v)
 
template<typename type >
Vector3< typeoperator* (double scalar, const Vector3< type > &v)
 
int minus_one_pow (int m)
 

Variables

const RealCalcVec zero = RealCalcVec::zero()
 
const RealCalcVec one = RealCalcVec::set1(1.0)
 
const RealCalcVec two = RealCalcVec::set1(2.0)
 
const RealCalcVec three = RealCalcVec::set1(3.0)
 
const RealCalcVec four = RealCalcVec::set1(4.0)
 
const RealCalcVec five = RealCalcVec::set1(5.0)
 
const RealCalcVec six = RealCalcVec::set1(6.0)
 
const RealCalcVec ten = RealCalcVec::set1(10.0)
 
const RealCalcVec _05 = RealCalcVec::set1(0.5)
 
const RealCalcVec _075 = RealCalcVec::set1(0.75)
 
const RealCalcVec _1pt5 = RealCalcVec::set1(1.5)
 
const RealCalcVec _15 = RealCalcVec::set1(15.0)
 
const int split_target = 0
 
const int split_source = 1
 
const int split_internal = 3
 
const int NO_WORK = 5
 
const int M2L = 6
 
const int P2P = 7
 
const int PUSH = 8
 
const int POP = 9
 
const double epsilon = 0.001
 
const bool debug = false
 

Detailed Description

simpler copy of the class ParticleCellPointers. Uses pointers, instead of references for main storage, in order to save storage.

Important! this class is not responsible for the storage which is pointed by the pointers! I.e. no deallocation of the storage should be performed!

Author
tchipevn

Function Documentation

◆ convoluteL_ZM()

SolidHarmonicsExpansion bhfmm::convoluteL_ZM ( const SolidHarmonicsExpansion LE,
const SolidHarmonicsExpansion ME 
)
See also
SolidHarmonicsExpansion::convoluteL_ZM
Parameters
LE
ME
Returns

◆ convoluteLL()

SolidHarmonicsExpansion bhfmm::convoluteLL ( const SolidHarmonicsExpansion LE1,
const SolidHarmonicsExpansion LE2 
)
See also
SolidHarmonicsExpansion::convoluteLL
Parameters
LE1
LE2
Returns

◆ convoluteLL_Z()

SolidHarmonicsExpansion bhfmm::convoluteLL_Z ( const SolidHarmonicsExpansion LE1,
const SolidHarmonicsExpansion LE2 
)
See also
SolidHarmonicsExpansion::convoluteLL_Z
Parameters
LE1
LE2
Returns

◆ convoluteLM()

SolidHarmonicsExpansion bhfmm::convoluteLM ( const SolidHarmonicsExpansion LE,
const SolidHarmonicsExpansion ME 
)
See also
SolidHarmonicsExpansion::convoluteLM
Parameters
LE
ME
Returns

◆ convoluteLM_Z()

SolidHarmonicsExpansion bhfmm::convoluteLM_Z ( const SolidHarmonicsExpansion LE,
const SolidHarmonicsExpansion ME 
)
See also
SolidHarmonicsExpansion::convoluteLM_Z
Parameters
LE
ME
Returns

◆ evaluateLOfR()

SolidHarmonicsExpansion bhfmm::evaluateLOfR ( int  order,
Vector3< double >  r 
)
See also
SolidHarmonicsExpansion::evaluateLOfR
Parameters
order
r
Returns

◆ evaluateMOfR()

SolidHarmonicsExpansion bhfmm::evaluateMOfR ( int  order,
Vector3< double >  r 
)
See also
SolidHarmonicsExpansion::evaluateMOfR
Parameters
order
r
Returns

◆ forceGradLAndM()

Vector3< double > bhfmm::forceGradLAndM ( const SolidHarmonicsExpansion LE,
const SolidHarmonicsExpansion ME 
)

the force due to a local expansion: needed for L2P implements 13.4.33-35

Parameters
LEgradient of L expansion is calculated
MEthe M expansion
Returns
force vector

◆ forceLAndGradM()

Vector3< double > bhfmm::forceLAndGradM ( const SolidHarmonicsExpansion LE,
const SolidHarmonicsExpansion ME 
)

the force due to a multipole expansion: needed for M2P The formula is not given in Rapaport. Took it from Perez-Jorda and Yang. "A concise redefinition of the solid spherical harmonics and its use in fast multipole methods". In: The Journal of chemical physics 104.20 (1996)

Parameters
LEL expansion
MEgradient of M expansion is calculated
Returns

◆ operator*() [1/2]

SolidHarmonicsExpansion bhfmm::operator* ( double  scalar,
SolidHarmonicsExpansion  RHS 
)

scalar multiplication

Parameters
scalar
RHS
Returns

◆ operator*() [2/2]

SolidHarmonicsStorage bhfmm::operator* ( double  scalar,
SolidHarmonicsStorage  s 
)
inline

operator* scalar multiplication

Parameters
scalar
s
Returns

◆ operator+() [1/2]

SolidHarmonicsExpansion bhfmm::operator+ ( SolidHarmonicsExpansion  LHS,
const SolidHarmonicsExpansion RHS 
)

entrywise addition

Parameters
LHS
RHS
Returns

◆ operator+() [2/2]

SolidHarmonicsStorage bhfmm::operator+ ( SolidHarmonicsStorage  lhs,
const SolidHarmonicsStorage rhs 
)
inline

operator+ entrywise addition

Parameters
lhs
rhs
Returns

◆ operator<<()

template<typename type >
std::ostream& bhfmm::operator<< ( std::ostream &  stream,
const Vector3< type > &  v 
)

Global operators first

◆ potentialML()

double bhfmm::potentialML ( const SolidHarmonicsExpansion ME,
const SolidHarmonicsExpansion LE 
)

the potential due to an M and an L expansion implements 13.4.10

See also
SolidHarmonicsExpansion
Parameters
MEthe M expansion
LEthe L expansion
Returns
potential

◆ rotatePhi()

SolidHarmonicsExpansion bhfmm::rotatePhi ( const SolidHarmonicsExpansion E,
const double *  CosSinPhi,
int  negate 
)
See also
SolidHarmonicsExpansion::setAtMinusR
Parameters
E
Returns

◆ swap() [1/2]

void bhfmm::swap ( SolidHarmonicsExpansion s1,
SolidHarmonicsExpansion s2 
)

swap function for the copy and swap idiom

Parameters
s1
s2

◆ swap() [2/2]

void bhfmm::swap ( SolidHarmonicsStorage s1,
SolidHarmonicsStorage s2 
)

swap function (for the copy-and-swap idiom)

Parameters
s1
s2