ESyS-Particle  2.3.4
CElasticInteraction Class Reference

Elastic Interaction between free particles. More...

#include <ElasticInteraction.h>

Inheritance diagram for CElasticInteraction:
Collaboration diagram for CElasticInteraction:

Public Types

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

Public Member Functions

 CElasticInteraction (CParticle *, CParticle *, const CElasticIGP &)
 
virtual ~CElasticInteraction ()
 
virtual Vec3 getPos () const
 
double getPotentialEnergy () const
 
virtual void calcForces ()
 
Vec3 getForce () const
 
virtual void saveRestartData (std::ostream &oStream)
 
virtual void loadRestartData (std::istream &iStream)
 
- Public Member Functions inherited from APairInteraction
 APairInteraction ()
 
 APairInteraction (CParticle *, CParticle *)
 
virtual ~APairInteraction ()
 
const CParticlefirst () const
 
const CParticlesecond () const
 
CParticlefirst ()
 
CParticlesecond ()
 
pair< int, int > getPairID () const
 
void setPP (CParticle *, CParticle *)
 
void checkIDs ()
 
virtual bool hasTag (int, int) const
 
virtual Vec3 getPosFirst () const
 
virtual Vec3 getPosSecond () const
 
esys::lsm::quintuple< Vec3, double, Vec3, double, Vec3getRaw2Data () const
 
template<class TmplParticle >
void setPP (const vector< TmplParticle * > &pp)
 
- Public Member Functions inherited from AInteraction
 AInteraction ()
 
virtual ~AInteraction ()
 
bool initialized () const
 
virtual void calcHeatTrans ()
 
virtual void calcHeatFrict ()
 
vector< int > getAllID () const
 
int getID ()
 
double Count () const
 

Static Public Member Functions

static ScalarFieldFunction getScalarFieldFunction (const string &)
 
static CheckedScalarFieldFunction getCheckedScalarFieldFunction (const string &)
 
static VectorFieldFunction getVectorFieldFunction (const string &)
 

Private Attributes

double m_k
 spring constant More...
 
Vec3 m_force
 caching force for E_pot More...
 
Vec3 m_cpos
 
bool m_scaling
 toggles scaling of elastic properties by particle size More...
 

Friends

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

Additional Inherited Members

- Protected Attributes inherited from APairInteraction
CParticlem_p1
 
CParticlem_p2
 
- Protected Attributes inherited from AInteraction
vector< int > m_id
 id's of the particles involved More...
 
int m_iid
 interaction id More...
 
bool m_init
 

Detailed Description

Elastic Interaction between free particles.

Author
Steffen Abe $Revision$ $Date$

Member Typedef Documentation

◆ CheckedScalarFieldFunction

typedef pair<bool,double>(CElasticInteraction::* CElasticInteraction::CheckedScalarFieldFunction) () const

◆ ParameterType

◆ ScalarFieldFunction

typedef double(CElasticInteraction::* CElasticInteraction::ScalarFieldFunction) () const

◆ VectorFieldFunction

typedef Vec3(CElasticInteraction::* CElasticInteraction::VectorFieldFunction) () const

Constructor & Destructor Documentation

◆ CElasticInteraction()

CElasticInteraction::CElasticInteraction ( CParticle p1,
CParticle p2,
const CElasticIGP param 
)

◆ ~CElasticInteraction()

virtual CElasticInteraction::~CElasticInteraction ( )
inlinevirtual

Member Function Documentation

◆ calcForces()

void CElasticInteraction::calcForces ( )
virtual

Calculate free elastic forces. 23 Flops if in contact, 10 Flops if not

Implements APairInteraction.

References CParticle::applyForce(), CBasicParticle::getPos(), CBasicParticle::getRad(), m_cpos, m_force, m_k, APairInteraction::m_p1, and APairInteraction::m_p2.

Here is the call graph for this function:

◆ getCheckedScalarFieldFunction()

CElasticInteraction::CheckedScalarFieldFunction CElasticInteraction::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.

◆ getForce()

Vec3 CElasticInteraction::getForce ( ) const

References m_force.

Referenced by getVectorFieldFunction().

Here is the caller graph for this function:

◆ getPos()

virtual Vec3 CElasticInteraction::getPos ( ) const
inlinevirtual

Implements APairInteraction.

References m_cpos.

◆ getPotentialEnergy()

double CElasticInteraction::getPotentialEnergy ( ) const

get the potential energy stored in the interaction

References m_force, and m_k.

Referenced by getScalarFieldFunction().

Here is the caller graph for this function:

◆ getScalarFieldFunction()

CElasticInteraction::ScalarFieldFunction CElasticInteraction::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 AInteraction::Count(), getPotentialEnergy(), and NULL.

Here is the call graph for this function:

◆ getVectorFieldFunction()

CElasticInteraction::VectorFieldFunction CElasticInteraction::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 getForce(), and NULL.

Here is the call graph for this function:

◆ loadRestartData()

void CElasticInteraction::loadRestartData ( std::istream &  iStream)
virtual

load restart data from stream

Parameters
iStreamthe input stream

Reimplemented from APairInteraction.

References AInteraction::m_id, AInteraction::m_init, m_k, and m_scaling.

◆ saveRestartData()

void CElasticInteraction::saveRestartData ( std::ostream &  oStream)
virtual

save restart data to ostream

Parameters
oStreamthe output stream

Reimplemented from APairInteraction.

References AInteraction::m_id, AInteraction::m_init, m_k, and m_scaling.

Friends And Related Function Documentation

◆ operator<<

ostream& operator<< ( ostream &  ost,
const CElasticInteraction BI 
)
friend

Member Data Documentation

◆ m_cpos

Vec3 CElasticInteraction::m_cpos
private

Referenced by calcForces(), and getPos().

◆ m_force

Vec3 CElasticInteraction::m_force
private

caching force for E_pot

Referenced by calcForces(), CElasticInteraction(), getForce(), and getPotentialEnergy().

◆ m_k

double CElasticInteraction::m_k
private

◆ m_scaling

bool CElasticInteraction::m_scaling
private

toggles scaling of elastic properties by particle size

Referenced by CElasticInteraction(), loadRestartData(), and saveRestartData().


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