13 #ifndef __ROTPARTICLE_H
14 #define __ROTPARTICLE_H
45 class SimpleParticleData;
75 const Vec3 &currAngVel,
181 m_inertRot = inertRot;
206 const double angle = vec.
norm();
207 const double halfAngle = angle/2.0;
208 if (halfAngle > 0.0) {
209 return Quaternion(cos(halfAngle), (vec)*(sin(halfAngle)/angle));
227 template <
typename TmplVisitor>
230 visitor.visitRotParticle(*
this);
242 #endif //__ROTPARTICLE_H
Class for a rotational particle.
Definition: RotParticle.h:53
Definition: Quaternion.h:29
double m_div_inertRot
Definition: RotParticle.h:110
friend ostream & operator<<(ostream &, const CRotParticle &)
Definition: RotParticle.cpp:528
Vec3 m_angVel
Definition: RotParticle.h:107
Matrix3 m_sigma
stress tensor.
Definition: Particle.h:86
Vec3 getDisplacement() const
Definition: Particle.h:111
Vec3 m_vel
Definition: Particle.h:87
Vec3 m_initPos
Definition: RotParticle.h:91
virtual void zeroHeat()
Definition: RotParticle.h:191
void applyMoment(const Vec3 &)
Definition: RotParticle.cpp:327
const Vec3 & getAngVel() const
Definition: RotParticle.h:172
double sigma_xx_2D() const
Definition: RotParticle.h:234
bool m_is_rot
Definition: RotParticle.h:111
exchangeType()
Definition: RotParticle.h:60
CRotParticle::exchangeType getExchangeValues()
Definition: RotParticle.cpp:332
Quaternion getQuat() const
Definition: RotParticle.h:176
double getKineticEnergy() const
Definition: RotParticle.h:196
static ScalarFieldFunction getScalarFieldFunction(const string &)
Definition: RotParticle.cpp:404
virtual void setNonDynamic()
Definition: RotParticle.h:200
void zeroForce()
Definition: RotParticle.cpp:296
void rotateTo(const Vec3 &vec)
Definition: RotParticle.h:214
void integrateTherm(double dt)
Definition: RotParticle.h:188
Definition: SimpleParticleData.h:27
Definition: CheckPointable.cpp:16
virtual void saveCheckPointData(std::ostream &oStream)
Definition: RotParticle.cpp:490
Vec3 m_angVel
Definition: RotParticle.h:93
virtual void setNonDynamicLinear()
Definition: RotParticle.h:201
virtual void loadCheckPointData(std::istream &iStream)
Definition: RotParticle.cpp:506
Vec3 getMoment() const
Definition: RotParticle.h:185
parrallel particle storage array with neighborsearch and variable exchange
Definition: SubLattice.h:61
double sigma_yy_2D() const
Definition: RotParticle.h:236
void setCircular(const Vec3 &cv)
Definition: RotParticle.cpp:466
VEC3_INLINE double norm() const
Definition: vec3.hpp:211
Quaternion getInitQuat() const
Definition: RotParticle.h:175
void rescale()
Definition: RotParticle.cpp:303
virtual void saveSnapShotData(std::ostream &oStream)
Definition: RotParticle.cpp:474
Quaternion getQuatFromRotVec(const Vec3 &vec) const
Definition: RotParticle.h:204
Con console & cout
Definition: console.cpp:30
void integrate(double)
Definition: RotParticle.cpp:275
Abstract base class for MPI send/recv buffer.
Definition: mpibuf.h:33
void resetDisplacement()
Definition: RotParticle.h:169
virtual void thermExpansion()
Definition: RotParticle.h:189
double getAngularKineticEnergy() const
Definition: RotParticle.h:194
void resetDisplacement()
Definition: Particle.h:123
double getLinearKineticEnergy() const
Definition: RotParticle.h:195
void writeAsDXLine(ostream &, int slid=0)
void setMoment(const Vec3 &moment)
false if rotational dynamics are switched off
Definition: RotParticle.h:113
double sigma_xy_2D() const
Definition: RotParticle.h:235
double m_rad
radius
Definition: BasicParticle.h:48
bool m_is_rot
Definition: RotParticle.h:96
void print()
Definition: RotParticle.h:217
exchangeType(const Vec3 &pos, const Vec3 &initPos, const Vec3 &vel, const Vec3 &currAngVel, const Quaternion &quat, const bool is_dyn, const bool is_rot)
Definition: RotParticle.h:71
Quaternion m_quat
Definition: RotParticle.h:94
void setQuat(const Quaternion &quat)
Definition: RotParticle.h:177
virtual void setNonDynamicRot()
Definition: RotParticle.h:202
double getInvInertRot() const
Definition: RotParticle.h:184
virtual ~CRotParticle()
Definition: RotParticle.h:161
void rotateBy(const Vec3 &vec)
Definition: RotParticle.h:213
CRotParticle()
Definition: RotParticle.cpp:21
double m_inertRot
Definition: RotParticle.h:109
Vec3 m_moment
Angular velocity at time t.
Definition: RotParticle.h:108
bool m_is_dynamic
Definition: Particle.h:94
static VectorFieldFunction getVectorFieldFunction(const string &)
Definition: RotParticle.cpp:439
static void get_type()
Definition: RotParticle.h:238
void setExchangeValues(const CRotParticle::exchangeType &e)
Definition: RotParticle.cpp:351
Vec3 getAngVelNR() const
Definition: RotParticle.h:173
double(CRotParticle::* ScalarFieldFunction)() const
Definition: RotParticle.h:100
Quaternion m_initquat
Definition: RotParticle.h:106
Quaternion m_quat
Definition: RotParticle.h:105
bool m_is_dynamic
Definition: RotParticle.h:95
Vec3 getDisplacement() const
Definition: RotParticle.h:168
void visit(TmplVisitor &visitor)
Definition: RotParticle.h:228
Vec3(CRotParticle::* VectorFieldFunction)() const
Definition: RotParticle.h:101
Vec3 m_vel
Definition: RotParticle.h:92
Abstract base class for scatter/gather buffer, root component.
Definition: mpisgbuf.h:28
Class for a basic particle.
Definition: Particle.h:50
double getInertRot() const
Definition: RotParticle.h:178
void setInertRot(double inertRot)
Definition: RotParticle.h:179
Definition: RotParticle.h:57
double m_mass
Definition: Particle.h:91
Vec3 m_pos
Definition: RotParticle.h:90
void setAngVel(const Vec3 &V)
Definition: RotParticle.h:174
virtual void setDensity(double)
Definition: RotParticle.cpp:160
Abstract base/interface class for packed messages to be used in TML_Pack.
Definition: packed_message_interface.h:28