A representation of a multipole expansion. More...
#include <MultipoleMoments.h>
Public Member Functions | |
MultipoleMoments & | operator+= (const MultipoleMoments &m) |
Add two expansions together, using parallel axis theorem. | |
template<typename ParticleType > | |
MultipoleMoments & | operator+= (const ParticleType &p) |
Add the contribution of a particle to this multipole expansion. | |
MultipoleMoments | operator- (const MultipoleMoments &m) |
Subtract an expansion from this larger one, yielding the leftover. | |
void | clear () |
Reset this expansion to nothing. | |
cosmoType | getRadius () const |
Public Attributes | |
cosmoType | soft |
cosmoType | totalMass |
The total mass represented by this expansion. | |
Vector3D< cosmoType > | cm |
The center of mass (zeroth order multipole) | |
FMOMR | mom |
Friends | |
class | CudaMultipoleMoments |
Version of MultipoleMoments using cudatype. | |
void | operator| (PUP::er &p, MultipoleMoments &m) |
void | calculateRadiusFarthestCorner (MultipoleMoments &m, const OrientedBox< double > &box) |
Given an enclosing box, set the multipole expansion size to the distance from the center of mass to the farthest corner of the box. | |
template<typename ParticleType > | |
void | calculateRadiusFarthestParticle (MultipoleMoments &m, const ParticleType *begin, const ParticleType *end) |
Given the positions that make up a multipole expansion, set the distance to the farthest particle from the center of mass. | |
void | calculateRadiusBox (MultipoleMoments &m, const OrientedBox< double > &box) |
A representation of a multipole expansion.
|
friend |
Given an enclosing box, set the multipole expansion size to the distance from the center of the box to the farthest corner of the box