ESyS-Particle  2.3.4
CDamping< T > Class Template Reference

Damping of the particle motion by an artificial viscosity. More...

#include <Damping.h>

Inheritance diagram for CDamping< T >:
Collaboration diagram for CDamping< T >:

Public Types

typedef CDampingIGP ParameterType
 
typedef double(CDamping::* ScalarFieldFunction) () const
 
typedef pair< bool, double >(CDamping::* CheckedScalarFieldFunction) () const
 
typedef Vec3(CDamping::* VectorFieldFunction) () const
 

Public Member Functions

 CDamping (T *, const Vec3 &, double, double, int)
 
 CDamping (T *, const CDampingIGP &)
 
 CDamping (T *, CDampingIGP *)
 
virtual ~CDamping ()
 
void setLimit (double limit)
 
void setTimeStepSize (double dt)
 
virtual void calcForces ()
 
virtual bool hasTag (int, int) const
 
virtual Vec3 getPosFirst () const
 
virtual Vec3 getPosSecond () const
 
virtual Vec3 getPos () const
 
vector< int > getAllID () const
 
esys::lsm::quintuple< Vec3, double, Vec3, double, Vec3getRaw2Data () const
 
double getDissipatedEnergy () const
 
Vec3 getForce () const
 

Static Public Member Functions

static ScalarFieldFunction getScalarFieldFunction (const string &)
 
static CheckedScalarFieldFunction getCheckedScalarFieldFunction (const string &)
 
static VectorFieldFunction getVectorFieldFunction (const string &)
 
static void zeroFlops ()
 
static int Flops ()
 

Protected Attributes

T * m_p
 the particle More...
 
Vec3 m_vref
 reference velocity More...
 
double m_visc
 artificial viscosity More...
 
double m_dt
 time step More...
 
int m_maxiter
 iteration limit More...
 
double m_E_diss
 dissipated energy More...
 
Vec3 m_force
 current force More...
 

Static Protected Attributes

static double s_limit2 =1e-12
 square error limit for iteration More...
 
static int s_flops = 0
 

Detailed Description

template<class T>
class CDamping< T >

Damping of the particle motion by an artificial viscosity.

Member Typedef Documentation

◆ CheckedScalarFieldFunction

template<class T >
typedef pair<bool,double>(CDamping::* CDamping< T >::CheckedScalarFieldFunction) () const

◆ ParameterType

template<class T >
typedef CDampingIGP CDamping< T >::ParameterType

◆ ScalarFieldFunction

template<class T >
typedef double(CDamping::* CDamping< T >::ScalarFieldFunction) () const

◆ VectorFieldFunction

template<class T >
typedef Vec3(CDamping::* CDamping< T >::VectorFieldFunction) () const

Constructor & Destructor Documentation

◆ CDamping() [1/3]

template<class T >
CDamping< T >::CDamping ( T *  P,
const Vec3 V,
double  visc,
double  dt,
int  mi 
)

Construct a damping "interaction" for a particle

Parameters
Pthe particle
Vthe reference velocity
viscthe artificial viscosity
dtthe time step
mithe maximum number of iterations

◆ CDamping() [2/3]

template<class T >
CDamping< T >::CDamping ( T *  P,
const CDampingIGP param 
)

Construct a damping "interaction" for a particle

Parameters
Pthe particle
paramthe parameters

◆ CDamping() [3/3]

template<class T >
CDamping< T >::CDamping ( T *  P,
CDampingIGP param 
)

Construct a damping "interaction" for a particle

Parameters
Pthe particle
parampointer to the parameters

References CDampingIGP::getMaxIter(), CDampingIGP::getTimeStep(), CDampingIGP::getVisc(), and CDampingIGP::getVRef().

Here is the call graph for this function:

◆ ~CDamping()

template<class T >
CDamping< T >::~CDamping
virtual

destructor

Member Function Documentation

◆ calcForces()

template<class T >
void CDamping< T >::calcForces
virtual

Calculate the damping force.

25*count+8 flops

◆ Flops()

template<class T >
static int CDamping< T >::Flops ( )
inlinestatic

◆ getAllID()

template<class T >
vector< int > CDamping< T >::getAllID

return a vector of all particle IDs

◆ getCheckedScalarFieldFunction()

template<class T >
CDamping< T >::CheckedScalarFieldFunction CDamping< T >::getCheckedScalarFieldFunction ( const string &  name)
static

Get the particle member function which returns a checked scalar field of a given name.

Parameters
namethe name of the field

References NULL.

◆ getDissipatedEnergy()

template<class T >
double CDamping< T >::getDissipatedEnergy

return the amount of energy dissipated during the last time step

◆ getForce()

template<class T >
Vec3 CDamping< T >::getForce

◆ getPos()

template<class T >
virtual Vec3 CDamping< T >::getPos ( ) const
inlinevirtual

Referenced by CDamping< ParticleType >::getRaw2Data().

Here is the caller graph for this function:

◆ getPosFirst()

template<class T >
virtual Vec3 CDamping< T >::getPosFirst ( ) const
inlinevirtual

◆ getPosSecond()

template<class T >
virtual Vec3 CDamping< T >::getPosSecond ( ) const
inlinevirtual

◆ getRaw2Data()

template<class T >
esys::lsm::quintuple<Vec3,double,Vec3,double,Vec3> CDamping< T >::getRaw2Data ( ) const
inline

◆ getScalarFieldFunction()

template<class T >
CDamping< T >::ScalarFieldFunction CDamping< T >::getScalarFieldFunction ( const string &  name)
static

Get the particle member function which returns a scalar field of a given name.

Parameters
namethe name of the field

References NULL.

◆ getVectorFieldFunction()

template<class T >
CDamping< T >::VectorFieldFunction CDamping< T >::getVectorFieldFunction ( const string &  name)
static

Get the particle member function which returns a vector field of a given name.

Parameters
namethe name of the field

References NULL.

◆ hasTag()

template<class T >
bool CDamping< T >::hasTag ( int  tag,
int  mask 
) const
virtual

check if any of the particles in the interaction fits tag & mask

Parameters
tagthe tag
maskthe mask

◆ setLimit()

template<class T >
void CDamping< T >::setLimit ( double  limit)
inline

◆ setTimeStepSize()

template<class T >
void CDamping< T >::setTimeStepSize ( double  dt)

◆ zeroFlops()

template<class T >
static void CDamping< T >::zeroFlops ( )
inlinestatic

Member Data Documentation

◆ m_dt

template<class T >
double CDamping< T >::m_dt
protected

time step

◆ m_E_diss

template<class T >
double CDamping< T >::m_E_diss
protected

dissipated energy

◆ m_force

template<class T >
Vec3 CDamping< T >::m_force
protected

current force

◆ m_maxiter

template<class T >
int CDamping< T >::m_maxiter
protected

iteration limit

◆ m_p

template<class T >
T* CDamping< T >::m_p
protected

◆ m_visc

template<class T >
double CDamping< T >::m_visc
protected

artificial viscosity

◆ m_vref

template<class T >
Vec3 CDamping< T >::m_vref
protected

reference velocity

◆ s_flops

template<class T >
int CDamping< T >::s_flops = 0
staticprotected

◆ s_limit2

template<class T >
double CDamping< T >::s_limit2 =1e-12
staticprotected

square error limit for iteration

Referenced by CDamping< ParticleType >::setLimit().


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