13 #ifndef __ROTPARTICLEVI_H
14 #define __ROTPARTICLEVI_H
45 class SimpleParticleData;
74 const Vec3 &currAngVel,
174 m_inertRot = inertRot;
203 virtual void setNonRot() {m_inertRot=0.0;m_div_inertRot=0.0;};
207 const double angle = vec.
norm();
208 const double halfAngle = angle/2.0;
209 if (halfAngle > 0.0) {
210 return Quaternion(cos(halfAngle), (vec)*(sin(halfAngle)/angle));
238 template <
typename TmplVisitor>
241 visitor.visitRotParticleVi(*
this);
246 #endif //__ROTPARTICLEVI_H
Quaternion getQuat() const
Definition: RotParticleVi.h:169
Definition: Quaternion.h:29
void zeroForce()
Definition: RotParticleVi.cpp:324
exchangeType()
Definition: RotParticleVi.h:59
virtual void setNonRot()
Definition: RotParticleVi.h:203
Vec3 m_initPos
Definition: RotParticleVi.h:87
friend ostream & operator<<(ostream &, const CRotParticleVi &)
Definition: RotParticleVi.cpp:589
Matrix3 m_sigma
stress tensor.
Definition: Particle.h:86
virtual void setThermExpansion2(double)
Definition: RotParticleVi.h:192
double m_div_inertRot
Definition: RotParticleVi.h:106
Vec3 getDisplacement() const
Definition: Particle.h:111
Vec3 m_vel
Definition: Particle.h:87
double sigma_yy_2D() const
Definition: RotParticleVi.h:233
virtual void setTemperature(double)
Definition: RotParticleVi.h:188
void setAngVel_t(const Vec3 &v)
Definition: RotParticleVi.h:165
Vec3 getMoment() const
Definition: RotParticleVi.h:178
Vec3(CRotParticleVi::* VectorFieldFunction)() const
Definition: RotParticleVi.h:96
VEC3_INLINE double & Y()
Definition: vec3.h:120
virtual void setCp(double)
Definition: RotParticleVi.h:189
double getInertRot() const
Definition: RotParticleVi.h:171
Quaternion getInitQuat() const
Definition: RotParticleVi.h:168
Definition: RotParticleVi.h:56
double sigma_xx_2D() const
Definition: RotParticleVi.h:231
Vec3 m_angVel
Definition: RotParticleVi.h:102
Definition: SimpleParticleData.h:27
virtual ~CRotParticleVi()
Definition: RotParticleVi.h:153
bool m_is_dynamic
Definition: RotParticleVi.h:107
Definition: CheckPointable.cpp:16
Vec3 getAngVelNR() const
Definition: RotParticleVi.h:166
Vec3 m_angVel_t
Definition: RotParticleVi.h:103
Quaternion m_initquat
Definition: RotParticleVi.h:101
parrallel particle storage array with neighborsearch and variable exchange
Definition: SubLattice.h:61
VEC3_INLINE double norm() const
Definition: vec3.hpp:211
void writeAsDXLine(ostream &, int slid=0)
virtual void saveSnapShotData(std::ostream &oStream)
Definition: RotParticleVi.cpp:545
virtual void saveCheckPointData(std::ostream &oStream)
Definition: RotParticleVi.cpp:559
virtual void thermExpansion()
Definition: RotParticleVi.h:193
static ScalarFieldFunction getScalarFieldFunction(const string &)
Definition: RotParticleVi.cpp:437
Vec3 m_pos
position
Definition: BasicParticle.h:47
Vec3 getDisplacement() const
Definition: RotParticleVi.h:160
virtual void integrateTherm(double)
Definition: RotParticleVi.h:187
Con console & cout
Definition: console.cpp:30
Abstract base class for MPI send/recv buffer.
Definition: mpibuf.h:33
void setExchangeValues(const CRotParticleVi::exchangeType &e)
Definition: RotParticleVi.cpp:385
void setAngVel(const Vec3 &V)
Definition: RotParticleVi.h:167
void resetDisplacement()
Definition: Particle.h:123
void rotateBy(const Vec3 &vec)
Definition: RotParticleVi.h:214
void setQuat(const Quaternion &q)
Definition: RotParticleVi.h:170
virtual void zeroHeat()
Definition: RotParticleVi.h:186
static void get_type()
Definition: RotParticleVi.h:235
Vec3 m_angVel_t
Definition: RotParticleVi.h:90
virtual void loadCheckPointData(std::istream &iStream)
Definition: RotParticleVi.cpp:570
void setMoment(const Vec3 &moment)
Definition: RotParticleVi.h:179
double m_rad
radius
Definition: BasicParticle.h:48
Definition: RotParticleVi.h:52
void setInertRot(double inertRot)
Definition: RotParticleVi.h:172
virtual double get_y()
Definition: RotParticleVi.h:194
CRotParticleVi()
Definition: RotParticleVi.cpp:21
Vec3 m_vel
Definition: RotParticleVi.h:88
double getKineticEnergy() const
Definition: RotParticleVi.h:201
const Vec3 getAngVel_t() const
Definition: RotParticleVi.h:164
double m_inertRot
Definition: RotParticleVi.h:105
void rescale()
Definition: RotParticleVi.cpp:331
void integrate(double)
Definition: RotParticleVi.cpp:260
virtual void setThermExpansion0(double)
Definition: RotParticleVi.h:190
exchangeType(const Vec3 &pos, const Vec3 &initPos, const Vec3 &vel, const Vec3 &AngVel, const Vec3 &currAngVel, const Quaternion &quat)
Definition: RotParticleVi.h:69
Vec3 m_angVel
Definition: RotParticleVi.h:89
void applyMoment(const Vec3 &)
Definition: RotParticleVi.cpp:355
double getInvInertRot() const
Definition: RotParticleVi.h:177
const Vec3 & getAngVel() const
Definition: RotParticleVi.h:163
Vec3 m_pos
Definition: RotParticleVi.h:86
double getAngularKineticEnergy() const
Definition: RotParticleVi.h:199
CRotParticleVi::exchangeType getExchangeValues()
Definition: RotParticleVi.cpp:367
static VectorFieldFunction getVectorFieldFunction(const string &)
Definition: RotParticleVi.cpp:465
void print()
Definition: RotParticleVi.h:220
Vec3 getAngVector() const
Definition: RotParticleVi.cpp:493
static map< string, AField * > generateFields(ParallelParticleArray< CRotParticleVi > *)
Definition: RotParticleVi.cpp:360
double sigma_xy_2D() const
Definition: RotParticleVi.h:232
double(CRotParticleVi::* ScalarFieldFunction)() const
Definition: RotParticleVi.h:95
Vec3 m_moment
Angular velocity at time t.
Definition: RotParticleVi.h:104
Abstract base class for scatter/gather buffer, root component.
Definition: mpisgbuf.h:28
Class for a basic particle.
Definition: Particle.h:50
double getLinearKineticEnergy() const
Definition: RotParticleVi.h:200
Quaternion m_quat
Definition: RotParticleVi.h:91
void visit(TmplVisitor &visitor)
Definition: RotParticleVi.h:239
void setCircular(const Vec3 &cv)
Definition: RotParticleVi.cpp:537
Quaternion m_quat
Definition: RotParticleVi.h:100
void rotateTo(const Vec3 &vec)
Definition: RotParticleVi.h:215
void resetDisplacement()
Definition: RotParticleVi.h:161
double m_mass
Definition: Particle.h:91
virtual void setThermExpansion1(double)
Definition: RotParticleVi.h:191
Quaternion getQuatFromRotVec(const Vec3 &vec) const
Definition: RotParticleVi.h:205
Abstract base/interface class for packed messages to be used in TML_Pack.
Definition: packed_message_interface.h:28