ESyS-Particle  2.3.4
CViscWallIG< T > Class Template Reference

Class for a group of viscous and elastic interactions between particles and a wall. More...

#include <ViscWallIG.h>

Collaboration diagram for CViscWallIG< T >:

Public Member Functions

 CViscWallIG (TML_Comm *)
 
 CViscWallIG (TML_Comm *, CWall *, const CVWallIGP *)
 
virtual ~CViscWallIG ()
 
virtual void setTimeStepSize (double dt)
 
virtual void calcForces ()
 
virtual void applyForce (const Vec3 &)
 
virtual void setVelocity (const Vec3 &)
 
virtual void Update (ParallelParticleArray< T > *)
 

Protected Attributes

vector< CViscWallInteraction< T > > m_visc_interactions
 visc interactions for tagged particles More...
 
vector< CElasticWallInteraction< T > > m_elastic_interactions
 elastic interactions all particles More...
 
double m_k
 spring constant More...
 
double m_nu
 
int m_tag
 

Friends

ostream & operator<< (ostream &, const CViscWallIG &)
 

Detailed Description

template<class T>
class CViscWallIG< T >

Class for a group of viscous and elastic interactions between particles and a wall.

Constructor & Destructor Documentation

◆ CViscWallIG() [1/2]

template<class T >
CViscWallIG< T >::CViscWallIG ( TML_Comm comm)

◆ CViscWallIG() [2/2]

template<class T >
CViscWallIG< T >::CViscWallIG ( TML_Comm comm,
CWall wallp,
const CVWallIGP I 
)

Constructor for wall interaction group with viscous drag

Parameters
commthe communicator
wallpa pointer to the wall
paramthe interaction parameters

References console, CVWallIGP::getNu(), CElasticIGP::getSpringConst(), CVWallIGP::getTag(), CViscWallIG< T >::m_k, CViscWallIG< T >::m_nu, CViscWallIG< T >::m_tag, and Console::XDebug().

Here is the call graph for this function:

◆ ~CViscWallIG()

template<class T >
virtual CViscWallIG< T >::~CViscWallIG ( )
inlinevirtual

Member Function Documentation

◆ applyForce()

template<class T >
void CViscWallIG< T >::applyForce ( const Vec3 F)
virtual

Apply a given force to the wall. Only forces in the direction of the given force are considered, free movement is assumed in perpendicular directions.

Parameters
Fthe force

References esys::lsm::bpu::iter(), Vec3::unit(), Vec3::X(), Vec3::Y(), and Vec3::Z().

Here is the call graph for this function:

◆ calcForces()

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

References console, and Console::XDebug().

Here is the call graph for this function:

◆ setTimeStepSize()

template<class T >
virtual void CViscWallIG< T >::setTimeStepSize ( double  dt)
inlinevirtual

Null op, don't require time step size.

◆ setVelocity()

template<class T >
void CViscWallIG< T >::setVelocity ( const Vec3 V)
virtual

Set velocity of the wall. Only sets m_vel of the wall, doesn't affect position updates.

Parameters
Vthe velocity

◆ Update()

template<class T >
void CViscWallIG< T >::Update ( ParallelParticleArray< T > *  PPA)
virtual

Update interactions from an existing parallel particle array

Parameters
PPAa pointer to the particle array

References console, ParallelParticleArray< T >::getParticlesAtPlane(), ParallelParticleArray< T >::isInInner(), esys::lsm::bpu::iter(), and Console::XDebug().

Here is the call graph for this function:

Friends And Related Function Documentation

◆ operator<<

template<class T >
ostream& operator<< ( ostream &  ost,
const CViscWallIG< T > &  IG 
)
friend

Member Data Documentation

◆ m_elastic_interactions

template<class T >
vector<CElasticWallInteraction<T> > CViscWallIG< T >::m_elastic_interactions
protected

elastic interactions all particles

◆ m_k

template<class T >
double CViscWallIG< T >::m_k
protected

spring constant

Referenced by CViscWallIG< T >::CViscWallIG().

◆ m_nu

template<class T >
double CViscWallIG< T >::m_nu
protected

◆ m_tag

template<class T >
int CViscWallIG< T >::m_tag
protected

◆ m_visc_interactions

template<class T >
vector<CViscWallInteraction<T> > CViscWallIG< T >::m_visc_interactions
protected

visc interactions for tagged particles


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