changa 3.5
Loading...
Searching...
No Matches
MultipoleMoments.h File Reference
#include <cmath>
#include <assert.h>
#include <pup.h>
#include <OrientedBox.h>
#include <Vector3D.h>
#include "moments.h"
#include "SSEdefs.h"

Go to the source code of this file.

Classes

class  MultipoleMoments
 A representation of a multipole expansion. More...
 

Functions

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.
 
void calculateRadiusBox (MultipoleMoments &m, const OrientedBox< double > &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.
 
template<typename ParticleType>
void calculateRadiusFirstParticle (MultipoleMoments &m, const ParticleType *begin, const ParticleType *end)
 

Detailed Description

This file defines the representation of a multipole expansion and operations between expansions.

Author
Graeme Lufkin (gwl@u.nosp@m..was.nosp@m.hingt.nosp@m.on.e.nosp@m.du)
Version
1.0

Function Documentation

◆ calculateRadiusBox()

void calculateRadiusBox ( MultipoleMoments & m,
const OrientedBox< double > & box )
inline

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

◆ calculateRadiusFirstParticle()

template<typename ParticleType>
void calculateRadiusFirstParticle ( MultipoleMoments & m,
const ParticleType * begin,
const ParticleType * end )
inline

Given list of particles, get a radius based on the first particle. N.B. this is a failover in case the box size is tiny. We assume the multipole moments have not been calculated.