ESyS-Particle  4.0.1
Classes | Public Types | Public Member Functions | Static Public Member Functions | Protected Attributes | Friends
CRotParticleVi Class Reference

#include <RotParticleVi.h>

Inheritance diagram for CRotParticleVi:
Inheritance graph
[legend]
Collaboration diagram for CRotParticleVi:
Collaboration graph
[legend]

List of all members.

Classes

class  exchangeType

Public Types

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

Public Member Functions

 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)
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
 move relative to initial position
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)

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 ()

Protected Attributes

Quaternion m_quat
Quaternion m_initquat
Vec3 m_angVel
Vec3 m_angVel_t
Vec3 m_moment
 Angular velocity at time t.
double m_inertRot
double m_div_inertRot
bool m_is_dynamic

Friends

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

Detailed Description

Class for a rotational particle, Verlet integration


Constructor & Destructor Documentation

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::m_circular_shift, and m_moment.


Member Function Documentation

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 CRotThermFrictionInteraction::calcForces().

Here is the caller graph for this function:

get values to be exchanged, i.e. pos and vel

Reimplemented from CParticle.

Reimplemented in CRotThermParticle.

References CParticle::m_circular_shift, CParticle::m_initpos, and CBasicParticle::m_pos.

CRotParticleVi::ScalarFieldFunction CRotParticleVi::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

Reimplemented from CParticle.

Reimplemented in CRotThermParticle.

References getKineticEnergy(), and CParticle::sigma_d().

Here is the call graph for this function:

CRotParticleVi::VectorFieldFunction CRotParticleVi::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

Reimplemented from CParticle.

Reimplemented in CRotThermParticle.

void CRotParticleVi::integrate ( double  dt) [virtual]

Do the time integration for the particle.

Parameters:
dtthe time step

Reimplemented from CParticle.

Reimplemented in CRotThermParticle.

References m_moment, and CBasicParticle::m_pos.

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

load checkpoint data saved with CParticle::saveCheckPointData

Reimplemented from CParticle.

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

Save check-point data.

Reimplemented from CParticle.

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

Save snapshot data - _not_ neccesarily sufficient for restart

Reimplemented from CParticle.

void CRotParticleVi::setCircular ( const Vec3 cv)

set circular shift vector

Parameters:
cvthe circular shift vector

Reimplemented from CParticle.

Reimplemented in CRotThermParticle.

Set pos, vel and angular vel from exchangeType

Parameters:
Ethe exchanged values

References CParticle::m_circular_shift, CParticle::m_initpos, and CBasicParticle::m_pos.

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

write particle data as a line in openDX format into a stream(file)

Parameters:
ostthe output stream
slidfrom which sublattice the particle is coming

Reimplemented from CParticle.

void CRotParticleVi::zeroForce ( ) [virtual]

zero forces on particle

Reimplemented from CParticle.

References m_moment, and CParticle::m_sigma.


Friends And Related Function Documentation

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

get deviatoric stress


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