ls1-MarDyn
ls1-MarDyn molecular dynamics code
Public Member Functions | List of all members
bhfmm::SHLocalParticle Class Reference
Inheritance diagram for bhfmm::SHLocalParticle:
bhfmm::LocalParticle bhfmm::PseudoParticle

Public Member Functions

 SHLocalParticle (int order, bool initializeExpansionToZero=true)
 
void addSource (const Vector3< double > &position, double charge)
 
void addMultipoleParticle (const MultipoleParticle &multipole, Vector3< double > periodicShift)
 
void addMultipoleParticle_Wigner (const MultipoleParticle &multipole, Vector3< double > periodicShift, double *cellWid, std::map< Vector3< int >, RotationParams, Vector3< int >::compare > &M2L_Wigner)
 
void actOnLocalParticle (LocalParticle &small) const
 
void actOnLocalParticle_Wigner (LocalParticle &small, const WignerMatrix &W_pos, const WignerMatrix &W_neg, const double *CosSinPhi, const int negate, const double &magnitude) const
 
void actOnTarget (const Vector3< double > &position, double charge, double &potential, Vector3< double > &force) const
 
void clear ()
 
int getNumEntries () const
 
const SolidHarmonicsExpansiongetConstExpansion () const
 
SolidHarmonicsExpansiongetExpansion ()
 
void writeValuesToMPIBuffer (double *buf, int &position) const
 
void readValuesFromMPIBuffer (double *buf, int &position)
 
void addValuesFromMPIBuffer (double *buf, int &position)
 
- Public Member Functions inherited from bhfmm::PseudoParticle
const Vector3< double > & getCenter () const
 
void setCenter (const Vector3< double > &center)
 
int getOrder () const
 
void setOrder (int order)
 
double getRadius () const
 
void setRadius (double radius)
 

Additional Inherited Members

- Protected Attributes inherited from bhfmm::PseudoParticle
Vector3< double > _center
 
double _radius
 
double _radiusSquared
 
int _order
 

Member Function Documentation

◆ actOnLocalParticle()

void bhfmm::SHLocalParticle::actOnLocalParticle ( LocalParticle small) const
virtual

L2L operator

Parameters
small

Implements bhfmm::LocalParticle.

◆ actOnLocalParticle_Wigner()

void bhfmm::SHLocalParticle::actOnLocalParticle_Wigner ( LocalParticle small,
const WignerMatrix W_pos,
const WignerMatrix W_neg,
const double *  CosSinPhi,
const int  negate,
const double &  magnitude 
) const

rotation accelerated L2L operator

Parameters
small- the smaller particle to be added to the larger one (this)
W_pos- Wigner matrix for positive rotation
W_neg- Wigner matrix for negative (backward) rotation
CosSinPhi- lookup for Cos(m*phi) and Sin(m*phi) values
negate- reverse phi rotation (1 -> positive rotation, -1 -> negative rotation)
magnitude- length of translation vector

◆ actOnTarget()

void bhfmm::SHLocalParticle::actOnTarget ( const Vector3< double > &  position,
double  charge,
double &  potential,
Vector3< double > &  force 
) const
virtual

L2P operator

Parameters
position
charge
potentialstores resulting potential
forcestores resulting force

Implements bhfmm::LocalParticle.

◆ addMultipoleParticle()

void bhfmm::SHLocalParticle::addMultipoleParticle ( const MultipoleParticle multipole,
Vector3< double >  periodicShift 
)
virtual

M2L operator

Parameters
multipole
periodicShift- temporary addition for backwards compatibility with existing Periodic boundary conditions,
Todo:
: remove, when new container for FMM is introduced

Implements bhfmm::LocalParticle.

◆ addMultipoleParticle_Wigner()

void bhfmm::SHLocalParticle::addMultipoleParticle_Wigner ( const MultipoleParticle multipole,
Vector3< double >  periodicShift,
double *  cellWid,
std::map< Vector3< int >, RotationParams, Vector3< int >::compare > &  M2L_Wigner 
)

rotation accelerated M2L operator

Parameters
multipole
periodicShift- temporary addition for backwards compatibility with existing Periodic boundary conditions
M2L_Wigner- lookup map for Wigner rotation matrices

◆ addSource()

void bhfmm::SHLocalParticle::addSource ( const Vector3< double > &  position,
double  charge 
)
virtual

P2L operator

Parameters
position
charge

Implements bhfmm::LocalParticle.

◆ clear()

void bhfmm::SHLocalParticle::clear ( )
virtual

set expansions to zero for a new iteration

Implements bhfmm::PseudoParticle.

◆ getNumEntries()

int bhfmm::SHLocalParticle::getNumEntries ( ) const
virtual

Implements bhfmm::PseudoParticle.


The documentation for this class was generated from the following files: