ESyS-Particle  2.3.4
VWFrictionInteraction.h
Go to the documentation of this file.
1 // //
3 // Copyright (c) 2003-2017 by The University of Queensland //
4 // Centre for Geoscience Computing //
5 // http://earth.uq.edu.au/centre-geoscience-computing //
6 // //
7 // Primary Business: Brisbane, Queensland, Australia //
8 // Licensed under the Open Software License version 3.0 //
9 // http://www.apache.org/licenses/LICENSE-2.0 //
10 // //
12 
13 #ifndef __VWFRICTION_H
14 #define __VWFRICTION_H
15 
16 // -- project includes --
18 
23 {
24  public:
25  double m_alpha;
26 
27  VWFrictionIGP();
28  VWFrictionIGP(const std::string&, double, double, double, double, double);
29 };
30 
36 {
37  public: // types
39 
40  typedef double (CVWFriction::* ScalarFieldFunction)() const;
41  typedef Vec3 (CVWFriction::* VectorFieldFunction)() const;
42  typedef pair<bool,double> (CVWFriction::* CheckedScalarFieldFunction)() const;
43 
44  private:
45  double m_alpha;
46 
47  public:
48  CVWFriction();
50  virtual ~CVWFriction();
51 
52  static string getType() {return "VWFriction";};
53 
54  virtual void calcForces();
55 
56  pair<bool,double> getCurrentMu() const;
57 
58  static ScalarFieldFunction getScalarFieldFunction(const string&);
59  static VectorFieldFunction getVectorFieldFunction(const string&);
61 
63 };
64 #endif //__VWFRICTION_H
CFrictionInteraction::m_mu
double m_mu
coefficient of friction
Definition: FrictionInteraction.h:68
CFrictionInteraction::m_force_deficit
Vec3 m_force_deficit
difference between fric. force & force necessary for slip
Definition: FrictionInteraction.h:72
CVWFriction::~CVWFriction
virtual ~CVWFriction()
Definition: VWFrictionInteraction.cpp:40
CVWFriction::VectorFieldFunction
Vec3(CVWFriction::* VectorFieldFunction)() const
Definition: VWFrictionInteraction.h:41
APairInteraction::m_p2
CParticle * m_p2
Definition: Interaction.h:71
TML_PackedMessageInterface
Abstract base/interface class for packed messages to be used in TML_Pack.
Definition: packed_message_interface.h:29
VWFrictionIGP::m_alpha
double m_alpha
Definition: VWFrictionInteraction.h:25
CFrictionInteraction::m_k
double m_k
spring constant
Definition: FrictionInteraction.h:66
CFrictionInteraction
Frictional+Elastic interaction between particles.
Definition: FrictionInteraction.h:53
CFrictionInteraction::m_is_slipping
bool m_is_slipping
static/dynamic status of the interaction
Definition: FrictionInteraction.h:75
CFrictionIGP
Interaction parameters for frictional interaction.
Definition: FrictionInteraction.h:28
CFrictionInteraction::m_is_touching
bool m_is_touching
contact status of the interaction
Definition: FrictionInteraction.h:76
CVWFriction::m_alpha
double m_alpha
Definition: VWFrictionInteraction.h:45
FrictionInteraction.h
CFrictionInteraction::getSticking
double getSticking() const
Definition: FrictionInteraction.cpp:359
Vec3::unit
VEC3_INLINE Vec3 unit() const
Definition: vec3.hpp:225
CVWFriction
Frictional+Elastic interaction between particles with velocity weakening friction.
Definition: VWFrictionInteraction.h:36
CFrictionInteraction::m_r0
double m_r0
equilibrium distance
Definition: FrictionInteraction.h:67
TML_PackedMessageInterface::pop_int
virtual int pop_int()=0
APairInteraction::m_p1
CParticle * m_p1
Definition: Interaction.h:71
CFrictionInteraction::getPotentialEnergy
double getPotentialEnergy() const
Definition: FrictionInteraction.cpp:336
CVWFriction::getType
static string getType()
Definition: VWFrictionInteraction.h:52
VWFrictionIGP::VWFrictionIGP
VWFrictionIGP()
Definition: VWFrictionInteraction.cpp:16
Vec3::norm
VEC3_INLINE double norm() const
Definition: vec3.hpp:211
CParticle::applyForce
void applyForce(const Vec3 &, const Vec3 &)
Definition: Particle.cpp:384
TML_PackedMessageInterface::pop_double
virtual double pop_double()=0
CVWFriction::ScalarFieldFunction
double(CVWFriction::* ScalarFieldFunction)() const
Definition: VWFrictionInteraction.h:40
CVWFriction::getVectorFieldFunction
static VectorFieldFunction getVectorFieldFunction(const string &)
Definition: VWFrictionInteraction.cpp:184
VWFrictionInteraction.h
NULL
#define NULL
Definition: t_list.h:17
CVWFriction::ParameterType
VWFrictionIGP ParameterType
Definition: VWFrictionInteraction.h:38
CFrictionInteraction::getAbsFrictionalForce
std::pair< bool, double > getAbsFrictionalForce() const
Definition: FrictionInteraction.cpp:173
packed_message_interface.h
TML_PackedMessageInterface::append
virtual void append(int)=0
CVWFriction::getCurrentMu
pair< bool, double > getCurrentMu() const
Definition: VWFrictionInteraction.cpp:117
Vec3
Definition: vec3.h:47
CFrictionInteraction::getSlipVelocity
std::pair< bool, double > getSlipVelocity() const
Definition: FrictionInteraction.cpp:310
CParticle::getVel
Vec3 getVel() const
Definition: Particle.h:114
CFrictionInteraction::getMuEffXY
std::pair< bool, double > getMuEffXY() const
Definition: FrictionInteraction.h:112
CFrictionInteraction::Count
virtual double Count() const
Definition: FrictionInteraction.cpp:395
CFrictionInteraction::m_ks
double m_ks
shear stiffness (Cundall)
Definition: FrictionInteraction.h:69
CFrictionInteraction::m_dt
double m_dt
time step
Definition: FrictionInteraction.h:70
CFrictionInteraction::getMuEffXZ
std::pair< bool, double > getMuEffXZ() const
Definition: FrictionInteraction.h:113
CVWFriction::getScalarFieldFunction
static ScalarFieldFunction getScalarFieldFunction(const string &)
Definition: VWFrictionInteraction.cpp:140
CVWFriction::CheckedScalarFieldFunction
pair< bool, double >(CVWFriction::* CheckedScalarFieldFunction)() const
Definition: VWFrictionInteraction.h:42
CFrictionInteraction::getSlipping
double getSlipping() const
Definition: FrictionInteraction.cpp:348
CVWFriction::getCheckedScalarFieldFunction
static CheckedScalarFieldFunction getCheckedScalarFieldFunction(const string &)
Definition: VWFrictionInteraction.cpp:160
CBasicParticle::getRad
double getRad() const
Definition: BasicParticle.h:64
VWFrictionIGP
Interaction parameters for velocity weakening frictional interaction.
Definition: VWFrictionInteraction.h:23
CBasicParticle::getPos
Vec3 getPos() const
Definition: BasicParticle.h:62
AInteraction::m_id
vector< int > m_id
id's of the particles involved
Definition: Interaction.h:39
CFrictionInteraction::m_cpos
Vec3 m_cpos
contact position
Definition: FrictionInteraction.h:73
CParticle
Class for a basic particle.
Definition: Particle.h:51
CVWFriction::calcForces
virtual void calcForces()
Definition: VWFrictionInteraction.cpp:48
CFrictionInteraction::m_normal_force
Vec3 m_normal_force
current normal force
Definition: FrictionInteraction.h:74
CVWFriction::CVWFriction
CVWFriction()
Definition: VWFrictionInteraction.cpp:28
CFrictionInteraction::m_Ffric
Vec3 m_Ffric
current frictional force
Definition: FrictionInteraction.h:71
CFrictionInteraction::getAbsMuFN
std::pair< bool, double > getAbsMuFN() const
Definition: FrictionInteraction.cpp:224