ESyS-Particle  2.3.4
FractalFriction.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 __FRACTALFRICTION_H
14 #define __FRACTALFRICTION_H
15 
16 // -- project includes --
18 
19 #include <boost/shared_ptr.hpp>
20 
26 {
27 public:
28  virtual std::string getTypeString() const {return "FractalFriction";}
29 
30  void setTimeStepSize(double timeStepSize)
31  {
32  this->dt = timeStepSize;
33  }
34 
35  double k;
36  double mu_0;
37  double k_s;
38  double dt;
39  boost::shared_ptr<double> mu;
40  double x0,y0,dx,dy;
41  int nx,ny;
42 
46 
48 };
49 
55 {
56  public: // types
58 
59  typedef double (CFractalFriction::* ScalarFieldFunction)() const;
60  typedef Vec3 (CFractalFriction::* VectorFieldFunction)() const;
61  typedef pair<bool,double> (CFractalFriction::* CheckedScalarFieldFunction)() const;
62  private:
63 
64  public:
67  virtual ~CFractalFriction();
68 
69  static string getType() {return "FractalFriction";};
70 
71  static ScalarFieldFunction getScalarFieldFunction(const string&);
72  static VectorFieldFunction getVectorFieldFunction(const string&);
74  friend ostream& operator<<(ostream&,const CFractalFriction&);
76 };
77 
78 #endif //__FRACTALFRICTION_H
FractalFrictionIGP::k_s
double k_s
Definition: FractalFriction.h:37
CFrictionInteraction::m_mu
double m_mu
coefficient of friction
Definition: FrictionInteraction.h:68
CFractalFriction
Frictional+Elastic interaction between particles with fractal distribution of the coefficient of fric...
Definition: FractalFriction.h:55
FractalFrictionIGP::operator=
FractalFrictionIGP & operator=(const FractalFrictionIGP &)
Definition: FractalFriction.cpp:49
CFractalFriction::ScalarFieldFunction
double(CFractalFriction::* ScalarFieldFunction)() const
Definition: FractalFriction.h:59
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
CFrictionInteraction::m_k
double m_k
spring constant
Definition: FrictionInteraction.h:66
CFrictionInteraction
Frictional+Elastic interaction between particles.
Definition: FrictionInteraction.h:53
CFractalFriction::getScalarFieldFunction
static ScalarFieldFunction getScalarFieldFunction(const string &)
Definition: FractalFriction.cpp:119
CFractalFriction::getCheckedScalarFieldFunction
static CheckedScalarFieldFunction getCheckedScalarFieldFunction(const string &)
Definition: FractalFriction.cpp:157
CFractalFriction::VectorFieldFunction
Vec3(CFractalFriction::* VectorFieldFunction)() const
Definition: FractalFriction.h:60
FrictionInteraction.h
FractalFrictionIGP::getTypeString
virtual std::string getTypeString() const
Definition: FractalFriction.h:28
console.h
CFractalFriction::CheckedScalarFieldFunction
pair< bool, double >(CFractalFriction::* CheckedScalarFieldFunction)() const
Definition: FractalFriction.h:61
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
FractalFrictionIGP::mu_0
double mu_0
Definition: FractalFriction.h:36
CFractalFriction::getVectorFieldFunction
static VectorFieldFunction getVectorFieldFunction(const string &)
Definition: FractalFriction.cpp:142
Vec3::X
VEC3_INLINE double & X()
Definition: vec3.h:119
FractalFrictionIGP::x0
double x0
Definition: FractalFriction.h:40
TML_PackedMessageInterface::pop_double
virtual double pop_double()=0
CFractalFriction::operator<<
friend ostream & operator<<(ostream &, const CFractalFriction &)
Definition: FractalFriction.cpp:214
FractalFrictionIGP::y0
double y0
Definition: FractalFriction.h:40
NULL
#define NULL
Definition: t_list.h:17
CFractalFriction::ParameterType
FractalFrictionIGP ParameterType
Definition: FractalFriction.h:57
FractalFriction.h
FractalFrictionIGP::dy
double dy
origin and grid spacing of the array
Definition: FractalFriction.h:40
FractalFrictionIGP::k
double k
Definition: FractalFriction.h:35
CFrictionInteraction::getAbsFrictionalForce
std::pair< bool, double > getAbsFrictionalForce() const
Definition: FrictionInteraction.cpp:173
packed_message_interface.h
TML_PackedMessageInterface::append
virtual void append(int)=0
Vec3::Y
VEC3_INLINE double & Y()
Definition: vec3.h:120
FractalFrictionIGP::setTimeStepSize
void setTimeStepSize(double timeStepSize)
Definition: FractalFriction.h:30
FractalFrictionIGP::ny
int ny
array size
Definition: FractalFriction.h:41
Vec3
Definition: vec3.h:47
FractalFrictionIGP::FractalFrictionIGP
FractalFrictionIGP()
Definition: FractalFriction.cpp:17
AIGParam
Abstract base class for InteractionGroup parameters.
Definition: IGParam.h:29
CFrictionInteraction::getSlipVelocity
std::pair< bool, double > getSlipVelocity() const
Definition: FrictionInteraction.cpp:310
CFractalFriction::CFractalFriction
CFractalFriction()
Definition: FractalFriction.cpp:77
FractalFrictionIGP::~FractalFrictionIGP
~FractalFrictionIGP()
Definition: FractalFriction.cpp:71
CFrictionInteraction::getMuEffXY
std::pair< bool, double > getMuEffXY() const
Definition: FrictionInteraction.h:112
FractalFrictionIGP::dx
double dx
Definition: FractalFriction.h:40
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
FractalFrictionIGP
Interaction parameters for frictional interaction with a fractal distribution of the coefficient of f...
Definition: FractalFriction.h:26
CFrictionInteraction::getMuEffXZ
std::pair< bool, double > getMuEffXZ() const
Definition: FrictionInteraction.h:113
operator<<
ostream & operator<<(ostream &ost, const CFractalFriction &FI)
Definition: FractalFriction.cpp:214
FractalFrictionIGP::dt
double dt
Definition: FractalFriction.h:38
CFrictionInteraction::getSlipping
double getSlipping() const
Definition: FrictionInteraction.cpp:348
CBasicParticle::getID
int getID() const
Definition: BasicParticle.h:65
CBasicParticle::getRad
double getRad() const
Definition: BasicParticle.h:64
FractalFrictionIGP::nx
int nx
Definition: FractalFriction.h:41
FractalFrictionIGP::mu
boost::shared_ptr< double > mu
pointer to the array of friction coeff.
Definition: FractalFriction.h:39
CFractalFriction::getType
static string getType()
Definition: FractalFriction.h:69
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
CFrictionInteraction::getAbsMuFN
std::pair< bool, double > getAbsMuFN() const
Definition: FrictionInteraction.cpp:224
CFractalFriction::~CFractalFriction
virtual ~CFractalFriction()
Definition: FractalFriction.cpp:111