Go to the documentation of this file.
13 #ifndef __HERTZIANVISCOELASTICFRICTIONINTERACTION_H
14 #define __HERTZIANVISCOELASTICFRICTIONINTERACTION_H
33 const std::string &name,
44 return "HertzianViscoElasticFriction";
72 std::pair<bool,double>
112 static string getType() {
return "HertzianViscoElasticFriction";};
120 std::pair<bool,double>
getAbsFN()
const;
132 double Count()
const;
154 #endif //__HERTZIANVISCOELASTICFRICTIONINTERACTION_H
double m_nu
Poisson ratio.
Definition: HertzianViscoElasticFrictionInteraction.h:88
double getAbsForceDeficit() const
Definition: HertzianViscoElasticFrictionInteraction.cpp:212
std::pair< bool, double > getNormalStress() const
Definition: HertzianViscoElasticFrictionInteraction.cpp:377
virtual void calcForces()
Definition: HertzianViscoElasticFrictionInteraction.cpp:120
double m_dt
time step
Definition: HertzianViscoElasticFrictionInteraction.h:92
double getSlipping() const
Definition: HertzianViscoElasticFrictionInteraction.cpp:435
Abstract base class for 2-particle interactions.
Definition: Interaction.h:69
std::pair< bool, double > getAbsFrictionalStress() const
Definition: HertzianViscoElasticFrictionInteraction.cpp:247
CParticle * m_p2
Definition: Interaction.h:71
Abstract base/interface class for packed messages to be used in TML_Pack.
Definition: packed_message_interface.h:29
void setTimeStepSize(double dt)
Definition: HertzianViscoElasticFrictionInteraction.cpp:62
virtual Vec3 getPos() const
Definition: HertzianViscoElasticFrictionInteraction.h:135
std::pair< bool, double > getMuEff(const Vec3 &, const Vec3 &) const
Definition: HertzianViscoElasticFrictionInteraction.cpp:499
std::pair< bool, double > getAbsFrictionalForce() const
Definition: HertzianViscoElasticFrictionInteraction.cpp:221
static VectorFieldFunction getVectorFieldFunction(const string &)
Definition: HertzianViscoElasticFrictionInteraction.cpp:665
double m_r0
equilibrium distance
Definition: HertzianViscoElasticFrictionInteraction.h:89
Vec3(CHertzianViscoElasticFrictionInteraction::* VectorFieldFunction)() const
Definition: HertzianViscoElasticFrictionInteraction.h:76
ostream & operator<<(ostream &ost, const CHertzianViscoElasticFrictionInteraction &BI)
Definition: HertzianViscoElasticFrictionInteraction.cpp:738
Vec3 m_normal_force
current normal force
Definition: HertzianViscoElasticFrictionInteraction.h:96
Vec3 m_cpos
contact position
Definition: HertzianViscoElasticFrictionInteraction.h:95
std::pair< bool, double > getMaxFricStress() const
Definition: HertzianViscoElasticFrictionInteraction.cpp:321
friend std::ostream & operator<<(std::ostream &, const CHertzianViscoElasticFrictionInteraction &)
static ScalarFieldFunction getScalarFieldFunction(const string &)
Definition: HertzianViscoElasticFrictionInteraction.cpp:562
static CheckedScalarFieldFunction getCheckedScalarFieldFunction(const string &)
Definition: HertzianViscoElasticFrictionInteraction.cpp:605
CHertzianViscoElasticFrictionIGP ParameterType
Definition: HertzianViscoElasticFrictionInteraction.h:66
VEC3_INLINE Vec3 unit() const
Definition: vec3.hpp:225
double getDissipatedEnergy() const
Definition: HertzianViscoElasticFrictionInteraction.cpp:455
virtual Vec3 pop_vec3()=0
double m_E_diss
dissipated energy
Definition: HertzianViscoElasticFrictionInteraction.h:100
CHertzianViscoElasticFrictionInteraction()
Definition: HertzianViscoElasticFrictionInteraction.cpp:47
double m_A
Definition: HertzianViscoElasticFrictionInteraction.h:49
CParticle * m_p1
Definition: Interaction.h:71
double getSticking() const
Definition: HertzianViscoElasticFrictionInteraction.cpp:446
double m_mu
coefficient of friction
Definition: HertzianViscoElasticFrictionInteraction.h:90
double dt
Definition: HertzianViscoElasticFrictionInteraction.h:54
VEC3_INLINE double norm() const
Definition: vec3.hpp:211
void applyForce(const Vec3 &, const Vec3 &)
Definition: Particle.cpp:384
VEC3_INLINE double & X()
Definition: vec3.h:119
double m_E
Definition: HertzianViscoElasticFrictionInteraction.h:50
double mu
Definition: HertzianViscoElasticFrictionInteraction.h:52
virtual double pop_double()=0
double Count() const
Definition: HertzianViscoElasticFrictionInteraction.cpp:483
Vec3 m_Ffric
current frictional force
Definition: HertzianViscoElasticFrictionInteraction.h:93
VEC3_INLINE double & Z()
Definition: vec3.h:121
virtual std::string getTypeString() const
Definition: HertzianViscoElasticFrictionInteraction.h:42
std::pair< bool, double > getAbsFN() const
Definition: HertzianViscoElasticFrictionInteraction.cpp:368
#define NULL
Definition: t_list.h:17
Vec3 getNormalForce() const
Definition: HertzianViscoElasticFrictionInteraction.cpp:474
double m_A
Dissipative constant.
Definition: HertzianViscoElasticFrictionInteraction.h:86
virtual void append(int)=0
VEC3_INLINE double & Y()
Definition: vec3.h:120
double m_nu
Definition: HertzianViscoElasticFrictionInteraction.h:51
double m_dn
caching displacement for E_pot
Definition: HertzianViscoElasticFrictionInteraction.h:97
Interaction group parameters for Hertzian viscoelastic interactions with friction.
Definition: HertzianViscoElasticFrictionInteraction.h:28
double getPotentialEnergy() const
Definition: HertzianViscoElasticFrictionInteraction.cpp:425
std::pair< bool, double >(CHertzianViscoElasticFrictionInteraction::* CheckedScalarFieldFunction)() const
Definition: HertzianViscoElasticFrictionInteraction.h:73
double m_ks
shear stiffness (Cundall)
Definition: HertzianViscoElasticFrictionInteraction.h:91
Abstract base class for InteractionGroup parameters.
Definition: IGParam.h:29
std::pair< bool, double > getAbsMuFN() const
Definition: HertzianViscoElasticFrictionInteraction.cpp:273
void setTimeStepSize(double dt)
Definition: HertzianViscoElasticFrictionInteraction.cpp:112
Vec3 getVel() const
Definition: Particle.h:114
bool m_is_touching
contact status of the interaction
Definition: HertzianViscoElasticFrictionInteraction.h:99
Vec3 getForce() const
Definition: HertzianViscoElasticFrictionInteraction.cpp:464
std::pair< bool, double > getSlipVelocity() const
Definition: HertzianViscoElasticFrictionInteraction.cpp:401
std::pair< bool, double > getMuEffXY() const
Definition: HertzianViscoElasticFrictionInteraction.h:138
double k_s
Definition: HertzianViscoElasticFrictionInteraction.h:53
int getID() const
Definition: BasicParticle.h:65
double getRad() const
Definition: BasicParticle.h:64
Frictional+ViscoElastic interaction between particles.
Definition: HertzianViscoElasticFrictionInteraction.h:64
double(CHertzianViscoElasticFrictionInteraction::* ScalarFieldFunction)() const
Definition: HertzianViscoElasticFrictionInteraction.h:69
Vec3 getPos() const
Definition: BasicParticle.h:62
bool m_is_slipping
static/dynamic status of the interaction
Definition: HertzianViscoElasticFrictionInteraction.h:98
vector< int > m_id
id's of the particles involved
Definition: Interaction.h:39
Class for a basic particle.
Definition: Particle.h:51
static string getType()
Definition: HertzianViscoElasticFrictionInteraction.h:112
virtual ~CHertzianViscoElasticFrictionInteraction()
Definition: HertzianViscoElasticFrictionInteraction.cpp:108
double m_E
Young's modulus.
Definition: HertzianViscoElasticFrictionInteraction.h:87
std::pair< bool, double > getMuEffXZ() const
Definition: HertzianViscoElasticFrictionInteraction.h:142
Vec3 m_force_deficit
difference between fric. force & force necessary for slip
Definition: HertzianViscoElasticFrictionInteraction.h:94
virtual bool isPersistent()
Definition: HertzianViscoElasticFrictionInteraction.cpp:201
CHertzianViscoElasticFrictionIGP()
Definition: HertzianViscoElasticFrictionInteraction.cpp:22