ESyS-Particle  2.3.4
esys::lsm::BodyForceGroup< TmplParticle > Class Template Reference

#include <BodyForceGroup.h>

Inheritance diagram for esys::lsm::BodyForceGroup< TmplParticle >:
Collaboration diagram for esys::lsm::BodyForceGroup< TmplParticle >:

Public Types

typedef ParallelParticleArray< TmplParticle > ParticleArray
 
typedef ParticleArray::ParticleListIterator ParticleIterator
 

Public Member Functions

 BodyForceGroup (const BodyForceIGP &prms, ParticleArray &particleArray)
 
 ~BodyForceGroup ()
 
Vec3 getForce (double mass) const
 
void applyForce (TmplParticle &particle) const
 
virtual void Update (ParallelParticleArray< TmplParticle > *particleArray)
 
virtual void setTimeStepSize (double dt)
 
virtual void calcForces ()
 
- Public Member Functions inherited from AInteractionGroup< TmplParticle >
virtual ~AInteractionGroup ()
 

Private Attributes

Vec3 m_acceleration
 
ParticleArraym_pParticleArray
 

Detailed Description

template<class TmplParticle>
class esys::lsm::BodyForceGroup< TmplParticle >

Objects of this class apply a gravitational body-acceleration to individual particles.

Member Typedef Documentation

◆ ParticleArray

template<class TmplParticle >
typedef ParallelParticleArray<TmplParticle> esys::lsm::BodyForceGroup< TmplParticle >::ParticleArray

◆ ParticleIterator

template<class TmplParticle >
typedef ParticleArray::ParticleListIterator esys::lsm::BodyForceGroup< TmplParticle >::ParticleIterator

Constructor & Destructor Documentation

◆ BodyForceGroup()

template<class TmplParticle >
esys::lsm::BodyForceGroup< TmplParticle >::BodyForceGroup ( const BodyForceIGP prms,
ParticleArray particleArray 
)

◆ ~BodyForceGroup()

template<class TmplParticle >
esys::lsm::BodyForceGroup< TmplParticle >::~BodyForceGroup

Member Function Documentation

◆ applyForce()

template<class TmplParticle >
void esys::lsm::BodyForceGroup< TmplParticle >::applyForce ( TmplParticle &  particle) const

Applies body force to the specified particle.

Parameters
particleForce applied to this particle using a call to particle.applyForce(...).

◆ calcForces()

template<class TmplParticle >
void esys::lsm::BodyForceGroup< TmplParticle >::calcForces
virtual

◆ getForce()

template<class TmplParticle >
Vec3 esys::lsm::BodyForceGroup< TmplParticle >::getForce ( double  mass) const

Returns the force which would be applied to a particle of the specified mass.

Parameters
massA mass ("units" assumed to be same as the acceleration units).

◆ setTimeStepSize()

template<class TmplParticle >
virtual void esys::lsm::BodyForceGroup< TmplParticle >::setTimeStepSize ( double  dt)
inlinevirtual

Null op, time step size not required.

Implements AInteractionGroup< TmplParticle >.

◆ Update()

template<class TmplParticle >
void esys::lsm::BodyForceGroup< TmplParticle >::Update ( ParallelParticleArray< TmplParticle > *  particleArray)
virtual

Member Data Documentation

◆ m_acceleration

template<class TmplParticle >
Vec3 esys::lsm::BodyForceGroup< TmplParticle >::m_acceleration
private

◆ m_pParticleArray

template<class TmplParticle >
ParticleArray* esys::lsm::BodyForceGroup< TmplParticle >::m_pParticleArray
private

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