ESyS-Particle  2.3
FractalFriction.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 __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
friend ostream & operator<<(ostream &, const CFractalFriction &)
Definition: FractalFriction.cpp:214
double x0
Definition: FractalFriction.h:40
double y0
Definition: FractalFriction.h:40
virtual std::string getTypeString() const
Definition: FractalFriction.h:28
Definition: vec3.h:46
Abstract base class for InteractionGroup parameters.
Definition: IGParam.h:28
CFractalFriction()
Definition: FractalFriction.cpp:77
~FractalFrictionIGP()
Definition: FractalFriction.cpp:71
FractalFrictionIGP()
Definition: FractalFriction.cpp:17
double dx
Definition: FractalFriction.h:40
double(CFractalFriction::* ScalarFieldFunction)() const
Definition: FractalFriction.h:59
double mu_0
Definition: FractalFriction.h:36
double dt
Definition: FractalFriction.h:38
Vec3(CFractalFriction::* VectorFieldFunction)() const
Definition: FractalFriction.h:60
int nx
Definition: FractalFriction.h:41
virtual ~CFractalFriction()
Definition: FractalFriction.cpp:111
static string getType()
Definition: FractalFriction.h:69
boost::shared_ptr< double > mu
pointer to the array of friction coeff.
Definition: FractalFriction.h:39
Frictional+Elastic interaction between particles.
Definition: FrictionInteraction.h:52
int ny
array size
Definition: FractalFriction.h:41
Frictional+Elastic interaction between particles with fractal distribution of the coefficient of fric...
Definition: FractalFriction.h:54
FractalFrictionIGP & operator=(const FractalFrictionIGP &)
Definition: FractalFriction.cpp:49
static ScalarFieldFunction getScalarFieldFunction(const string &)
Definition: FractalFriction.cpp:119
double k_s
Definition: FractalFriction.h:37
static CheckedScalarFieldFunction getCheckedScalarFieldFunction(const string &)
Definition: FractalFriction.cpp:157
double dy
origin and grid spacing of the array
Definition: FractalFriction.h:40
void setTimeStepSize(double timeStepSize)
Definition: FractalFriction.h:30
Interaction parameters for frictional interaction with a fractal distribution of the coefficient of f...
Definition: FractalFriction.h:25
static VectorFieldFunction getVectorFieldFunction(const string &)
Definition: FractalFriction.cpp:142
Class for a basic particle.
Definition: Particle.h:50
double k
Definition: FractalFriction.h:35
FractalFrictionIGP ParameterType
Definition: FractalFriction.h:57
pair< bool, double >(CFractalFriction::* CheckedScalarFieldFunction)() const
Definition: FractalFriction.h:61
Abstract base/interface class for packed messages to be used in TML_Pack.
Definition: packed_message_interface.h:28