ESyS-Particle  2.3
VWFrictionInteraction.h
Go to the documentation of this file.
1 // //
3 // Copyright (c) 2003-2014 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.opensource.org/licenses/osl-3.0.php //
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
Definition: vec3.h:46
Interaction parameters for frictional interaction.
Definition: FrictionInteraction.h:27
virtual ~CVWFriction()
Definition: VWFrictionInteraction.cpp:40
pair< bool, double > getCurrentMu() const
Definition: VWFrictionInteraction.cpp:117
double m_alpha
Definition: VWFrictionInteraction.h:45
static string getType()
Definition: VWFrictionInteraction.h:52
Interaction parameters for velocity weakening frictional interaction.
Definition: VWFrictionInteraction.h:22
Vec3(CVWFriction::* VectorFieldFunction)() const
Definition: VWFrictionInteraction.h:41
static VectorFieldFunction getVectorFieldFunction(const string &)
Definition: VWFrictionInteraction.cpp:184
Frictional+Elastic interaction between particles.
Definition: FrictionInteraction.h:52
pair< bool, double >(CVWFriction::* CheckedScalarFieldFunction)() const
Definition: VWFrictionInteraction.h:42
VWFrictionIGP ParameterType
Definition: VWFrictionInteraction.h:38
double m_alpha
Definition: VWFrictionInteraction.h:25
static CheckedScalarFieldFunction getCheckedScalarFieldFunction(const string &)
Definition: VWFrictionInteraction.cpp:160
CVWFriction()
Definition: VWFrictionInteraction.cpp:28
double(CVWFriction::* ScalarFieldFunction)() const
Definition: VWFrictionInteraction.h:40
Frictional+Elastic interaction between particles with velocity weakening friction.
Definition: VWFrictionInteraction.h:35
static ScalarFieldFunction getScalarFieldFunction(const string &)
Definition: VWFrictionInteraction.cpp:140
VWFrictionIGP()
Definition: VWFrictionInteraction.cpp:16
virtual void calcForces()
Definition: VWFrictionInteraction.cpp:48
Class for a basic particle.
Definition: Particle.h:50
Abstract base/interface class for packed messages to be used in TML_Pack.
Definition: packed_message_interface.h:28