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

Public Member Functions

 SHMultipoleParticle (int order, bool initializeExpansionToZero=true)
 
void addSource (const Vector3< double > &position, double charge)
 
void addMultipoleParticle (const MultipoleParticle &small)
 
void addMultipoleParticle_Wigner (const MultipoleParticle &small, const WignerMatrix &W_pos, const WignerMatrix &W_neg, const double *CosSinPhi, const int negate, const double &magnitude)
 
void actOnLocalParticle (LocalParticle &local) const
 
void actOnTarget (const Vector3< double > &position, double charge, double &pot, 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::SHMultipoleParticle::actOnLocalParticle ( LocalParticle local) const
virtual

M2L operator

Parameters
local

Implements bhfmm::MultipoleParticle.

◆ actOnTarget()

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

M2P operator

Parameters
position
charge
potentialstores resulting potential
forcestores resulting force

Implements bhfmm::MultipoleParticle.

◆ addMultipoleParticle()

void bhfmm::SHMultipoleParticle::addMultipoleParticle ( const MultipoleParticle small)
virtual

M2M operator

Parameters
smallthe smaller particle to be added to the larger one (this)

Implements bhfmm::MultipoleParticle.

◆ addMultipoleParticle_Wigner()

void bhfmm::SHMultipoleParticle::addMultipoleParticle_Wigner ( const MultipoleParticle small,
const WignerMatrix W_pos,
const WignerMatrix W_neg,
const double *  CosSinPhi,
const int  negate,
const double &  magnitude 
)

rotation accelerated M2M 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

◆ addSource()

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

P2M operator

Parameters
position
charge

Implements bhfmm::MultipoleParticle.

◆ clear()

void bhfmm::SHMultipoleParticle::clear ( )
virtual

set expansions to zero for a new iteration

Implements bhfmm::PseudoParticle.

◆ getNumEntries()

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

Implements bhfmm::PseudoParticle.


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