Go to the documentation of this file.
13 #ifndef __ROTPARTICLE_H
14 #define __ROTPARTICLE_H
45 class SimpleParticleData;
75 const Vec3 &currAngVel,
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));
217 void print(){cout << *
this << endl << flush;};
227 template <
typename TmplVisitor>
230 visitor.visitRotParticle(*
this);
242 #endif //__ROTPARTICLE_H
virtual void setNonDynamic()
Definition: RotParticle.h:200
double sigma_xx_2D() const
Definition: RotParticle.h:234
Vec3 m_pos
position
Definition: BasicParticle.h:47
Abstract base/interface class for packed messages to be used in TML_Pack.
Definition: packed_message_interface.h:29
Vec3 getTotalDisplacement() const
Definition: Particle.h:112
Quaternion getQuatFromRotVec(const Vec3 &vec) const
Definition: RotParticle.h:204
QUATERNION_INLINE double return_sca() const
Definition: Quaternion.h:81
void rotateTo(const Vec3 &vec)
Definition: RotParticle.h:214
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
virtual void setNonDynamicLinear()
Definition: RotParticle.h:201
virtual void saveCheckPointData(std::ostream &oStream)
Definition: RotParticle.cpp:490
double getMass() const
Definition: Particle.h:118
bool m_is_dynamic
Definition: RotParticle.h:95
double sigma_xy_2D() const
Definition: RotParticle.h:235
void rescale()
Definition: RotParticle.cpp:303
void setCircular(const Vec3 &)
Definition: Particle.cpp:329
virtual void loadCheckPointData(std::istream &iStream)
Definition: RotParticle.cpp:506
double m_rad
radius
Definition: BasicParticle.h:48
virtual void setDensity(double)
Definition: RotParticle.cpp:160
Vec3 getAngVelNR() const
Definition: RotParticle.h:173
int m_global_id
Definition: BasicParticle.h:49
Vec3 getMoment() const
Definition: RotParticle.h:185
double sigma_yy_2D() const
Definition: RotParticle.h:236
double getInvInertRot() const
Definition: RotParticle.h:184
ostream & operator<<(ostream &ost, const CRotParticle &CP)
Definition: RotParticle.cpp:528
virtual void thermExpansion()
Definition: RotParticle.h:189
void writeAsDXLine(ostream &, int slid=0)
void resetDisplacement()
Definition: RotParticle.h:169
Quaternion getQuat() const
Definition: RotParticle.h:176
Abstract base class for MPI send/recv buffer.
Definition: mpibuf.h:34
CRotParticle::exchangeType getExchangeValues()
Definition: RotParticle.cpp:332
double getIDField() const
Definition: Particle.h:124
void resetDisplacement()
Definition: Particle.h:123
Vec3 m_vel
Definition: RotParticle.h:92
VEC3_INLINE double norm() const
Definition: vec3.hpp:211
VEC3_INLINE double & X()
Definition: vec3.h:119
Definition: SimpleParticleData.h:28
Vec3 m_pos
Definition: RotParticle.h:90
static ScalarFieldFunction getScalarFieldFunction(const string &)
Definition: RotParticle.cpp:404
Definition: CheckPointable.cpp:17
void integrateTherm(double dt)
Definition: RotParticle.h:188
double m_inertRot
Definition: RotParticle.h:109
double(CRotParticle::* ScalarFieldFunction)() const
Definition: RotParticle.h:100
Definition: RotParticle.h:58
double m_div_mass
Definition: Particle.h:91
parrallel particle storage array with neighborsearch and variable exchange
Definition: pp_array.h:75
void zeroForce()
Definition: RotParticle.cpp:296
virtual ~CRotParticle()
Definition: RotParticle.h:161
double getRadius() const
Definition: SimpleParticleData.hpp:134
VEC3_INLINE double & Z()
Definition: vec3.h:121
Vec3 m_moment
Angular velocity at time t.
Definition: RotParticle.h:108
#define NULL
Definition: t_list.h:17
void setExchangeValues(const CRotParticle::exchangeType &e)
Definition: RotParticle.cpp:351
Vec3 getDisplacement() const
Definition: Particle.h:111
static VectorFieldFunction getVectorFieldFunction(const string &)
Definition: RotParticle.cpp:439
double getMass() const
Definition: SimpleParticleData.hpp:149
exchangeType()
Definition: RotParticle.h:60
void setCircular(const Vec3 &cv)
Definition: RotParticle.cpp:466
Vec3 m_initPos
Definition: RotParticle.h:91
virtual void loadCheckPointData(std::istream &iStream)
Definition: Particle.cpp:457
bool flag
Definition: Particle.h:93
Vec3 m_force
Definition: Particle.h:87
virtual void pop_doubles(double *, int)=0
virtual void saveSnapShotData(std::ostream &oStream)
Definition: RotParticle.cpp:474
Vec3 m_vel
Definition: Particle.h:87
virtual void append(int)=0
int m_tag
Definition: BasicParticle.h:50
VEC3_INLINE double & Y()
Definition: vec3.h:120
void integrate(double)
Definition: RotParticle.cpp:275
Quaternion m_quat
Definition: RotParticle.h:105
void setMoment(const Vec3 &moment)
false if rotational dynamics are switched off
Definition: RotParticle.h:113
Definition: Quaternion.h:30
static bool getDo2dCalculations()
Definition: Particle.h:181
double m_mass
Definition: Particle.h:91
Quaternion getInitQuat() const
Definition: RotParticle.h:175
virtual bool pop_bool()=0
Vec3 getVel() const
Definition: Particle.h:114
Vec3(CRotParticle::* VectorFieldFunction)() const
Definition: RotParticle.h:101
double getLinearKineticEnergy() const
Definition: RotParticle.h:195
virtual void saveCheckPointData(std::ostream &oStream)
Definition: Particle.cpp:438
Vec3 getForce() const
Definition: Particle.h:120
const Vec3 & getAngVel() const
Definition: RotParticle.h:172
double getInertRot() const
Definition: RotParticle.h:178
3x3 Matrix
Definition: Matrix3.h:48
void setQuat(const Quaternion &quat)
Definition: RotParticle.h:177
virtual void setNonDynamicRot()
Definition: RotParticle.h:202
double getTagField() const
Definition: Particle.h:125
Matrix3 m_sigma
stress tensor.
Definition: Particle.h:86
void print()
Definition: RotParticle.h:217
void setAngVel(const Vec3 &V)
Definition: RotParticle.h:174
Vec3 getDisplacement() const
Definition: RotParticle.h:168
void rotateBy(const Vec3 &vec)
Definition: RotParticle.h:213
double getAbsVel() const
Definition: Particle.h:115
double sigma_d() const
Definition: Particle.cpp:398
Vec3 m_angVel
Definition: RotParticle.h:93
void setInertRot(double inertRot)
Definition: RotParticle.h:179
CRotParticle()
Definition: RotParticle.cpp:21
double m_div_inertRot
Definition: RotParticle.h:110
friend ostream & operator<<(ostream &, const CRotParticle &)
Definition: RotParticle.cpp:528
virtual void saveSnapShotData(std::ostream &oStream)
Definition: Particle.cpp:420
bool m_is_dynamic
Definition: Particle.h:94
double getRad() const
Definition: BasicParticle.h:64
QUATERNION_INLINE Vec3 return_vec() const
Definition: Quaternion.h:80
double getKineticEnergy() const
Definition: RotParticle.h:196
Vec3 m_angVel
Definition: RotParticle.h:107
Vec3 m_initpos
position at time of construction
Definition: Particle.h:89
Vec3 m_oldpos
position at the time of last neighbor search
Definition: Particle.h:88
bool m_is_rot
Definition: RotParticle.h:96
Vec3 getPos() const
Definition: BasicParticle.h:62
Quaternion m_initquat
Definition: RotParticle.h:106
static void get_type()
Definition: RotParticle.h:238
Class for a basic particle.
Definition: Particle.h:51
virtual void zeroHeat()
Definition: RotParticle.h:191
Quaternion m_quat
Definition: RotParticle.h:94
void applyMoment(const Vec3 &)
Definition: RotParticle.cpp:327
double getAngularKineticEnergy() const
Definition: RotParticle.h:194
bool m_is_rot
Definition: RotParticle.h:111
virtual void integrate(double)
Definition: Particle.cpp:250
Class for a rotational particle.
Definition: RotParticle.h:54
Vec3 m_circular_shift
shift vector if particle is circular image
Definition: Particle.h:90
void visit(TmplVisitor &visitor)
Definition: RotParticle.h:228
Abstract base class for scatter/gather buffer, root component.
Definition: mpisgbuf.h:29