ESyS-Particle  2.3.4
CRotParticleVi Class Reference

#include <RotParticleVi.h>

Inheritance diagram for CRotParticleVi:
Collaboration diagram for CRotParticleVi:

Classes

class  exchangeType
 

Public Types

typedef double(CRotParticleVi::* ScalarFieldFunction) () const
 
typedef Vec3(CRotParticleVi::* VectorFieldFunction) () const
 
- Public Types inherited from CParticle
typedef double(CParticle::* ScalarFieldFunction) () const
 
typedef Vec3(CParticle::* VectorFieldFunction) () const
 

Public Member Functions

 CRotParticleVi ()
 
 CRotParticleVi (const esys::lsm::SimpleParticleData &particleData)
 
 CRotParticleVi (double rad, double mass, const Vec3 &pos, const Vec3 &vel, const Vec3 &force, int id, bool is_dyn)
 
 CRotParticleVi (double rad, double mass, const Vec3 &pos, const Vec3 &vel, const Vec3 &force, int id, Quaternion &quat, double inertRot, const Vec3 &moment, const Vec3 &angvel, const Vec3 &angvel_t)
 
 CRotParticleVi (double rad, double mass, const Vec3 &pos, const Vec3 &oldpos, const Vec3 &initpos, const Vec3 &vel, const Vec3 &force, int id, const Quaternion &quat, const Quaternion &initquat, double inertRot, const Vec3 &moment, const Vec3 &angvel, const Vec3 &angvel_t)
 
 CRotParticleVi (const CParticle &p)
 
virtual ~CRotParticleVi ()
 
Vec3 getDisplacement () const
 
void resetDisplacement ()
 
const Vec3getAngVel () const
 
const Vec3 getAngVel_t () const
 
void setAngVel_t (const Vec3 &v)
 
Vec3 getAngVelNR () const
 
void setAngVel (const Vec3 &V)
 
Quaternion getInitQuat () const
 
Quaternion getQuat () const
 
void setQuat (const Quaternion &q)
 
double getInertRot () const
 
void setInertRot (double inertRot)
 
double getInvInertRot () const
 
Vec3 getMoment () const
 
void setMoment (const Vec3 &moment)
 
Vec3 getAngVector () const
 
void applyMoment (const Vec3 &)
 
void integrate (double)
 
void zeroForce ()
 
virtual void zeroHeat ()
 
virtual void integrateTherm (double)
 
virtual void setTemperature (double)
 
virtual void setCp (double)
 
virtual void setThermExpansion0 (double)
 
virtual void setThermExpansion1 (double)
 
virtual void setThermExpansion2 (double)
 
virtual void thermExpansion ()
 
virtual double get_y ()
 
void rescale ()
 
void setCircular (const Vec3 &cv)
 
double getAngularKineticEnergy () const
 
double getLinearKineticEnergy () const
 
double getKineticEnergy () const
 
void writeAsDXLine (ostream &, int slid=0)
 
virtual void setNonRot ()
 
Quaternion getQuatFromRotVec (const Vec3 &vec) const
 
void rotateBy (const Vec3 &vec)
 
void rotateTo (const Vec3 &vec)
 
void print ()
 
virtual void saveSnapShotData (std::ostream &oStream)
 
virtual void saveCheckPointData (std::ostream &oStream)
 
virtual void loadCheckPointData (std::istream &iStream)
 
CRotParticleVi::exchangeType getExchangeValues ()
 
void setExchangeValues (const CRotParticleVi::exchangeType &e)
 
double sigma_xx_2D () const
 
double sigma_xy_2D () const
 
double sigma_yy_2D () const
 
template<typename TmplVisitor >
void visit (TmplVisitor &visitor)
 
- Public Member Functions inherited from CParticle
 CParticle ()
 
 CParticle (double, double, const Vec3 &, const Vec3 &, const Vec3 &, int, bool)
 
 CParticle (double, double, const Vec3 &, const Vec3 &, const Vec3 &, const Vec3 &, const Vec3 &, int, bool)
 
 CParticle (const esys::lsm::SimpleParticleData &particleData)
 
virtual ~CParticle ()
 
const Vec3getInitPos () const
 
void setInitPos (const Vec3 &initPos)
 
Vec3 getDisplacement () const
 
Vec3 getTotalDisplacement () const
 
const Vec3getOldPos () const
 
Vec3 getVel () const
 
double getAbsVel () const
 
void setVel (const Vec3 &V)
 
void setMass (double mass)
 
double getMass () const
 
double getInvMass () const
 
Vec3 getForce () const
 
virtual void setDensity (double)
 
void resetDisplacement ()
 
double getIDField () const
 
double getTagField () const
 
void applyForce (const Vec3 &, const Vec3 &)
 
void moveToRel (const Vec3 &v)
 
double getKineticEnergy () const
 move relative to initial position More...
 
virtual void setNonDynamic ()
 
virtual void setNonDynamicLinear ()
 
virtual void setNonDynamicRot ()
 
void setFlag (bool b=true)
 
bool isFlagged () const
 
void writeAsDXLine (ostream &, int slid=0)
 
void print ()
 
void rescale ()
 
exchangeType getExchangeValues ()
 
void setExchangeValues (const exchangeType &)
 
void setCircular (const Vec3 &)
 
double sigma_xx_2D () const
 
double sigma_xy_2D () const
 
double sigma_yy_2D () const
 
double sigma_d () const
 
template<typename TmplVisitor >
void visit (TmplVisitor &visitor)
 
- Public Member Functions inherited from CBasicParticle
 CBasicParticle ()
 
 CBasicParticle (const Vec3 &pos, double radius, int id=-1, int tag=-1)
 
 CBasicParticle (const esys::lsm::SimpleParticleData &data)
 
virtual ~CBasicParticle ()
 
Vec3getPPos ()
 
Vec3 getPos () const
 
void setPos (const Vec3 &pos)
 
double getRad () const
 
int getID () const
 
void setID (int id)
 
void moveBy (Vec3 v)
 move relative to current position More...
 
void moveTo (Vec3 v)
 move absolute More...
 
void setRad (double r)
 
void setTag (int t)
 particle tag handling More...
 
int getTag () const
 
bool isValid () const
 
 CBasicParticle ()
 
 CBasicParticle (int, const Vec3 &, double)
 
Vec3getPPos ()
 
Vec3 getPos () const
 
double getRad () const
 
int getID () const
 
void moveBy (Vec3 v)
 
void moveTo (Vec3 v)
 move relative to current position More...
 
void setRad (double r)
 move absolute More...
 
- Public Member Functions inherited from esys::lsm::CheckPointable
 CheckPointable ()
 
virtual ~CheckPointable ()
 

Static Public Member Functions

static int getPackSize ()
 
static ScalarFieldFunction getScalarFieldFunction (const string &)
 
static VectorFieldFunction getVectorFieldFunction (const string &)
 
static map< string, AField * > generateFields (ParallelParticleArray< CRotParticleVi > *)
 
static void get_type ()
 
- Static Public Member Functions inherited from CParticle
static ScalarFieldFunction getScalarFieldFunction (const string &)
 
static VectorFieldFunction getVectorFieldFunction (const string &)
 
static void get_type ()
 
static void setDo2dCalculations (bool do2dCalculations)
 
static bool getDo2dCalculations ()
 

Protected Attributes

Quaternion m_quat
 
Quaternion m_initquat
 
Vec3 m_angVel
 
Vec3 m_angVel_t
 
Vec3 m_moment
 Angular velocity at time t. More...
 
double m_inertRot
 
double m_div_inertRot
 
bool m_is_dynamic
 
- Protected Attributes inherited from CParticle
Matrix3 m_sigma
 stress tensor. More...
 
Vec3 m_vel
 
Vec3 m_force
 
Vec3 m_oldpos
 position at the time of last neighbor search More...
 
Vec3 m_initpos
 position at time of construction More...
 
Vec3 m_circular_shift
 shift vector if particle is circular image More...
 
double m_mass
 
double m_div_mass
 
bool flag
 
bool m_is_dynamic
 
- Protected Attributes inherited from CBasicParticle
Vec3 m_pos
 position More...
 
double m_rad
 radius More...
 
int m_global_id
 
int m_tag
 
int m_id
 

Friends

class TML_PackedMessageInterface
 
ostream & operator<< (ostream &, const CRotParticleVi &)
 

Additional Inherited Members

- Static Public Attributes inherited from CBasicParticle
static const CBasicParticle INVALID = CBasicParticle(Vec3::ZERO, 0.0, -1, -1)
 
- Protected Member Functions inherited from CParticle
void setForce (const Vec3 &force)
 

Detailed Description

Class for a rotational particle, Verlet integration

Member Typedef Documentation

◆ ScalarFieldFunction

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

◆ VectorFieldFunction

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

Constructor & Destructor Documentation

◆ CRotParticleVi() [1/6]

CRotParticleVi::CRotParticleVi ( )

◆ CRotParticleVi() [2/6]

CRotParticleVi::CRotParticleVi ( const esys::lsm::SimpleParticleData particleData)

◆ CRotParticleVi() [3/6]

CRotParticleVi::CRotParticleVi ( double  rad,
double  mass,
const Vec3 pos,
const Vec3 vel,
const Vec3 force,
int  id,
bool  is_dyn 
)

◆ CRotParticleVi() [4/6]

CRotParticleVi::CRotParticleVi ( double  rad,
double  mass,
const Vec3 pos,
const Vec3 vel,
const Vec3 force,
int  id,
Quaternion quat,
double  inertRot,
const Vec3 moment,
const Vec3 angvel,
const Vec3 angvel_t 
)

Construct particle. Old and initial position are assumed to be identical to current position.

Parameters
radradius
massmass
poscurrent position
velcurrent velocity
forcecurrently applied force
idparticle id
quatparticel quaternion
inertRotinert of rotation
momentcurrently applied tarque
angvelcurrent angular velocity

References CParticle::flag, m_angVel, m_angVel_t, CParticle::m_circular_shift, m_div_inertRot, m_inertRot, m_initquat, m_moment, and m_quat.

◆ CRotParticleVi() [5/6]

CRotParticleVi::CRotParticleVi ( double  rad,
double  mass,
const Vec3 pos,
const Vec3 oldpos,
const Vec3 initpos,
const Vec3 vel,
const Vec3 force,
int  id,
const Quaternion quat,
const Quaternion initquat,
double  inertRot,
const Vec3 moment,
const Vec3 angvel,
const Vec3 angvel_t 
)

◆ CRotParticleVi() [6/6]

CRotParticleVi::CRotParticleVi ( const CParticle p)

References CParticle::getMass(), CBasicParticle::getRad(), m_angVel, m_div_inertRot, m_inertRot, m_initquat, m_moment, and m_quat.

Here is the call graph for this function:

◆ ~CRotParticleVi()

virtual CRotParticleVi::~CRotParticleVi ( )
inlinevirtual

Member Function Documentation

◆ applyMoment()

void CRotParticleVi::applyMoment ( const Vec3 moment)
virtual

Apply a moment to a particle at a given position.

Parameters
momenttarque

Reimplemented from CParticle.

References m_moment.

Referenced by CRotThermBondedInteraction::calcForces(), and CRotThermFrictionInteraction::calcForces().

Here is the caller graph for this function:

◆ generateFields()

map< string, AField * > CRotParticleVi::generateFields ( ParallelParticleArray< CRotParticleVi > *  particles)
static

◆ get_type()

static void CRotParticleVi::get_type ( )
inlinestatic

◆ get_y()

virtual double CRotParticleVi::get_y ( )
inlinevirtual

Reimplemented in CRotThermParticle.

References CBasicParticle::m_pos, and Vec3::Y().

Here is the call graph for this function:

◆ getAngularKineticEnergy()

double CRotParticleVi::getAngularKineticEnergy ( ) const
inline

References m_angVel_t, CParticle::m_mass, and CBasicParticle::m_rad.

Referenced by getKineticEnergy().

Here is the caller graph for this function:

◆ getAngVector()

Vec3 CRotParticleVi::getAngVector ( ) const

References getQuat(), CBasicParticle::getRad(), Quaternion::return_sca(), Quaternion::return_vec(), and Vec3::Z().

Referenced by getVectorFieldFunction(), and CRotThermParticle::getVectorFieldFunction().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ getAngVel()

const Vec3& CRotParticleVi::getAngVel ( ) const
inline

◆ getAngVel_t()

const Vec3 CRotParticleVi::getAngVel_t ( ) const
inline

References m_angVel_t.

Referenced by CRotThermFrictionInteraction::calcForces(), and esys::lsm::RotParticleViPy::getAngularVelocityT().

Here is the caller graph for this function:

◆ getAngVelNR()

Vec3 CRotParticleVi::getAngVelNR ( ) const
inline

References m_angVel_t.

Referenced by getVectorFieldFunction(), and CRotThermParticle::getVectorFieldFunction().

Here is the caller graph for this function:

◆ getDisplacement()

Vec3 CRotParticleVi::getDisplacement ( ) const
inline

References CParticle::getDisplacement().

Here is the call graph for this function:

◆ getExchangeValues()

◆ getInertRot()

◆ getInitQuat()

Quaternion CRotParticleVi::getInitQuat ( ) const
inline

References m_initquat.

◆ getInvInertRot()

double CRotParticleVi::getInvInertRot ( ) const
inline

◆ getKineticEnergy()

double CRotParticleVi::getKineticEnergy ( ) const
inline

References getAngularKineticEnergy(), and getLinearKineticEnergy().

Referenced by getScalarFieldFunction(), and CRotThermParticle::getScalarFieldFunction().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ getLinearKineticEnergy()

double CRotParticleVi::getLinearKineticEnergy ( ) const
inline

References CParticle::m_mass, and CParticle::m_vel.

Referenced by getKineticEnergy().

Here is the caller graph for this function:

◆ getMoment()

Vec3 CRotParticleVi::getMoment ( ) const
inline

References m_moment.

Referenced by esys::lsm::RotParticleViPy::getAngularAcceleration(), and esys::lsm::RotThermalParticlePy::getAngularAcceleration().

Here is the caller graph for this function:

◆ getPackSize()

static int CRotParticleVi::getPackSize ( )
static

◆ getQuat()

◆ getQuatFromRotVec()

Quaternion CRotParticleVi::getQuatFromRotVec ( const Vec3 vec) const
inline

References Vec3::norm().

Referenced by rotateBy(), and rotateTo().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ getScalarFieldFunction()

CRotParticleVi::ScalarFieldFunction CRotParticleVi::getScalarFieldFunction ( const string &  name)
static

◆ getVectorFieldFunction()

CRotParticleVi::VectorFieldFunction CRotParticleVi::getVectorFieldFunction ( const string &  name)
static

◆ integrate()

void CRotParticleVi::integrate ( double  dt)
virtual

Do the time integration for the particle.

Parameters
dtthe time step

Reimplemented from CParticle.

Reimplemented in CRotThermParticle.

References CParticle::getDo2dCalculations(), m_angVel, m_angVel_t, m_div_inertRot, CParticle::m_div_mass, CParticle::m_force, m_moment, CBasicParticle::m_pos, m_quat, CParticle::m_vel, Vec3::X(), Vec3::Y(), and Vec3::Z().

Referenced by CRotThermParticle::integrate().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ integrateTherm()

virtual void CRotParticleVi::integrateTherm ( double  )
inlinevirtual

Reimplemented from CParticle.

Reimplemented in CRotThermParticle.

◆ loadCheckPointData()

void CRotParticleVi::loadCheckPointData ( std::istream &  iStream)
virtual

load checkpoint data saved with CParticle::saveCheckPointData

Reimplemented from CParticle.

References CParticle::loadCheckPointData(), m_angVel_t, and m_quat.

Here is the call graph for this function:

◆ print()

void CRotParticleVi::print ( )
inline

◆ rescale()

void CRotParticleVi::rescale ( )

References m_quat, Quaternion::return_sca(), Quaternion::return_vec(), Vec3::X(), Vec3::Y(), and Vec3::Z().

Here is the call graph for this function:

◆ resetDisplacement()

void CRotParticleVi::resetDisplacement ( )
inline

References CParticle::resetDisplacement().

Here is the call graph for this function:

◆ rotateBy()

void CRotParticleVi::rotateBy ( const Vec3 vec)
inline

References getQuatFromRotVec(), and m_quat.

Here is the call graph for this function:

◆ rotateTo()

void CRotParticleVi::rotateTo ( const Vec3 vec)
inline

References getQuatFromRotVec(), and m_quat.

Here is the call graph for this function:

◆ saveCheckPointData()

void CRotParticleVi::saveCheckPointData ( std::ostream &  oStream)
virtual

Save check-point data.

Reimplemented from CParticle.

References getAngVel(), getQuat(), and CParticle::saveCheckPointData().

Here is the call graph for this function:

◆ saveSnapShotData()

void CRotParticleVi::saveSnapShotData ( std::ostream &  oStream)
virtual

Save snapshot data - not neccesarily sufficient for restart

Reimplemented from CParticle.

References getAngVel(), getQuat(), and CParticle::saveSnapShotData().

Here is the call graph for this function:

◆ setAngVel()

void CRotParticleVi::setAngVel ( const Vec3 V)
inline

References m_angVel.

Referenced by esys::lsm::RotParticleViPy::setAngularVelocity(), and esys::lsm::RotThermalParticlePy::setAngularVelocity().

Here is the caller graph for this function:

◆ setAngVel_t()

void CRotParticleVi::setAngVel_t ( const Vec3 v)
inline

References m_angVel_t.

Referenced by esys::lsm::RotParticleViPy::setAngularVelocityT().

Here is the caller graph for this function:

◆ setCircular()

void CRotParticleVi::setCircular ( const Vec3 cv)

set circular shift vector

Parameters
cvthe circular shift vector

References CParticle::setCircular().

Referenced by CRotThermParticle::setCircular().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ setCp()

virtual void CRotParticleVi::setCp ( double  )
inlinevirtual

Reimplemented in CRotThermParticle.

◆ setExchangeValues()

◆ setInertRot()

void CRotParticleVi::setInertRot ( double  inertRot)
inline

◆ setMoment()

◆ setNonRot()

virtual void CRotParticleVi::setNonRot ( )
inlinevirtual

References m_div_inertRot, and m_inertRot.

◆ setQuat()

void CRotParticleVi::setQuat ( const Quaternion q)
inline

References m_quat.

Referenced by esys::lsm::RotParticleViPy::setOrientation(), and esys::lsm::RotThermalParticlePy::setOrientation().

Here is the caller graph for this function:

◆ setTemperature()

virtual void CRotParticleVi::setTemperature ( double  )
inlinevirtual

Reimplemented in CRotThermParticle.

◆ setThermExpansion0()

virtual void CRotParticleVi::setThermExpansion0 ( double  )
inlinevirtual

Reimplemented in CRotThermParticle.

◆ setThermExpansion1()

virtual void CRotParticleVi::setThermExpansion1 ( double  )
inlinevirtual

Reimplemented in CRotThermParticle.

◆ setThermExpansion2()

virtual void CRotParticleVi::setThermExpansion2 ( double  )
inlinevirtual

Reimplemented in CRotThermParticle.

◆ sigma_xx_2D()

double CRotParticleVi::sigma_xx_2D ( ) const
inline

References CBasicParticle::m_rad, and CParticle::m_sigma.

Referenced by getScalarFieldFunction(), and CRotThermParticle::getScalarFieldFunction().

Here is the caller graph for this function:

◆ sigma_xy_2D()

double CRotParticleVi::sigma_xy_2D ( ) const
inline

References CBasicParticle::m_rad, and CParticle::m_sigma.

Referenced by getScalarFieldFunction(), and CRotThermParticle::getScalarFieldFunction().

Here is the caller graph for this function:

◆ sigma_yy_2D()

double CRotParticleVi::sigma_yy_2D ( ) const
inline

References CBasicParticle::m_rad, and CParticle::m_sigma.

Referenced by getScalarFieldFunction(), and CRotThermParticle::getScalarFieldFunction().

Here is the caller graph for this function:

◆ thermExpansion()

virtual void CRotParticleVi::thermExpansion ( )
inlinevirtual

Reimplemented from CParticle.

Reimplemented in CRotThermParticle.

◆ visit()

template<typename TmplVisitor >
void CRotParticleVi::visit ( TmplVisitor &  visitor)
inline

◆ writeAsDXLine()

void CRotParticleVi::writeAsDXLine ( ostream &  ,
int  slid = 0 
)

◆ zeroForce()

void CRotParticleVi::zeroForce ( )
virtual

zero forces on particle

Reimplemented from CParticle.

References CParticle::m_force, m_moment, and CParticle::m_sigma.

◆ zeroHeat()

virtual void CRotParticleVi::zeroHeat ( )
inlinevirtual

Reimplemented from CParticle.

Reimplemented in CRotThermParticle.

Friends And Related Function Documentation

◆ operator<<

ostream& operator<< ( ostream &  ost,
const CRotParticleVi CP 
)
friend

get deviatoric stress

◆ TML_PackedMessageInterface

friend class TML_PackedMessageInterface
friend

Member Data Documentation

◆ m_angVel

◆ m_angVel_t

◆ m_div_inertRot

double CRotParticleVi::m_div_inertRot
protected

◆ m_inertRot

◆ m_initquat

◆ m_is_dynamic

bool CRotParticleVi::m_is_dynamic
protected

Referenced by CRotParticleVi().

◆ m_moment

◆ m_quat


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