ESyS-Particle  2.3.4
AdhesiveFriction.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 __ADHESIVEFRICTION_H
14 #define __ADHESIVEFRICTION_H
15 
17 
22 {
23 public:
24  virtual std::string getTypeString() const {return "AdhesiveFriction";}
25 
26  void setTimeStepSize(double timeStepSize)
27  {
28  this->dt = timeStepSize;
29  }
30 
31  double k;
32  double mu;
33  double k_s;
34  double dt;
35  double r_cut;
36 };
37 
42 {
43 public: // types
45 
46  typedef double (CAdhesiveFriction::* ScalarFieldFunction)() const;
47  typedef pair<bool,double> (CAdhesiveFriction::* CheckedScalarFieldFunction)() const;
49 
50 protected:
51  double m_r_cut;
52  double m_r_cut_h;
53 
54 public:
57  virtual ~CAdhesiveFriction();
58 
59  static string getType() {return "AdhesiveFriction";};
60 
61  virtual void calcForces();
62 
64 };
65 
66 #endif // __ADHESIVEFRICTION_H
CFrictionInteraction::m_mu
double m_mu
coefficient of friction
Definition: FrictionInteraction.h:68
CAdhesiveFriction::ScalarFieldFunction
double(CAdhesiveFriction::* ScalarFieldFunction)() const
Definition: AdhesiveFriction.h:46
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
CAdhesiveFrictionIGP::getTypeString
virtual std::string getTypeString() const
Definition: AdhesiveFriction.h:24
CFrictionInteraction::m_k
double m_k
spring constant
Definition: FrictionInteraction.h:66
CFrictionInteraction
Frictional+Elastic interaction between particles.
Definition: FrictionInteraction.h:53
CAdhesiveFriction::~CAdhesiveFriction
virtual ~CAdhesiveFriction()
Definition: AdhesiveFriction.cpp:51
CAdhesiveFrictionIGP::r_cut
double r_cut
Definition: AdhesiveFriction.h:35
CAdhesiveFriction::CheckedScalarFieldFunction
pair< bool, double >(CAdhesiveFriction::* CheckedScalarFieldFunction)() const
Definition: AdhesiveFriction.h:47
CAdhesiveFriction::m_r_cut_h
double m_r_cut_h
Definition: AdhesiveFriction.h:52
FrictionInteraction.h
CAdhesiveFriction::ParameterType
CAdhesiveFrictionIGP ParameterType
Definition: AdhesiveFriction.h:44
CAdhesiveFrictionIGP::k_s
double k_s
Definition: AdhesiveFriction.h:33
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
CAdhesiveFriction::m_r_cut
double m_r_cut
Definition: AdhesiveFriction.h:51
CParticle::applyForce
void applyForce(const Vec3 &, const Vec3 &)
Definition: Particle.cpp:384
CAdhesiveFriction::CAdhesiveFriction
CAdhesiveFriction()
Definition: AdhesiveFriction.cpp:21
TML_PackedMessageInterface::pop_double
virtual double pop_double()=0
CAdhesiveFriction::VectorFieldFunction
Vec3(CAdhesiveFriction::* VectorFieldFunction)() const
Definition: AdhesiveFriction.h:48
packed_message_interface.h
CAdhesiveFriction::calcForces
virtual void calcForces()
Definition: AdhesiveFriction.cpp:54
TML_PackedMessageInterface::append
virtual void append(int)=0
CAdhesiveFriction::getType
static string getType()
Definition: AdhesiveFriction.h:59
CAdhesiveFrictionIGP::k
double k
Definition: AdhesiveFriction.h:31
CAdhesiveFrictionIGP::setTimeStepSize
void setTimeStepSize(double timeStepSize)
Definition: AdhesiveFriction.h:26
CAdhesiveFrictionIGP::dt
double dt
Definition: AdhesiveFriction.h:34
Vec3
Definition: vec3.h:47
AIGParam
Abstract base class for InteractionGroup parameters.
Definition: IGParam.h:29
CAdhesiveFrictionIGP
Interaction parameters for adhesive frictional interaction.
Definition: AdhesiveFriction.h:22
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
AdhesiveFriction.h
CFrictionInteraction::calcForces
virtual void calcForces()
Definition: FrictionInteraction.cpp:93
CAdhesiveFrictionIGP::mu
double mu
Definition: AdhesiveFriction.h:32
CBasicParticle::getRad
double getRad() const
Definition: BasicParticle.h:64
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
CParticle
Class for a basic particle.
Definition: Particle.h:51
CFrictionInteraction::m_normal_force
Vec3 m_normal_force
current normal force
Definition: FrictionInteraction.h:74
CFrictionInteraction::m_Ffric
Vec3 m_Ffric
current frictional force
Definition: FrictionInteraction.h:71
CAdhesiveFriction
Frictional+adhesive Elastic interaction between particles.
Definition: AdhesiveFriction.h:42