ESyS-Particle  2.3.2
InteractionParamsPy.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 ESYS_LSMINTERACTIONPARAMSPY_H
14 #define ESYS_LSMINTERACTIONPARAMSPY_H
15 
16 /*---------------------------------------------------
17  *
18  * wrapper classes for interaction parameters
19  *
20  *--------------------------------------------------*/
21 
22 //--- project includes ---
34 #include "Model/DampingIGP.h"
35 #include "Model/LocalDampingIGP.h"
36 #include "Model/ABCDampingIGP.h"
37 #include "Model/BodyForceGroup.h"
42 
43 //--- STL includes ---
44 #include <string>
45 
46 namespace esys
47 {
48  namespace lsm
49  {
50  class Vec3Py;
51 
57  {
58  public:
60  };
61 
66  class DampingPrmsPy : public CDampingIGP
67  {
68  public:
70  const std::string &type,
71  const std::string &name,
72  double viscosity,
73  int maxIterations
74  );
75  };
76 
78  {
79  public:
81  const std::string &name,
82  double viscosity,
83  int maxIterations
84  );
85  };
86 
88  {
89  public:
91  const std::string &name,
92  double viscosity,
93  int maxIterations
94  );
95  };
96 
102  {
103  public:
105  const std::string &name,
106  double viscosity
107  );
108  };
109 
115  {
116  public:
118  const std::string &name,
119  double viscosity
120  );
121  };
122 
128  {
129  public:
131  const std::string &type,
132  const std::string &name,
133  double viscosity,
134  int maxIterations,
135  const Vec3& vref,
136  const Vec3& pos,
137  const Vec3& normal,
138  double c1
139  );
140  };
141 
146  class NRotBondPrmsPy : public CBondedIGP
147  {
148  public:
149  NRotBondPrmsPy(const std::string&,double,double,int);
150  NRotBondPrmsPy(const std::string&,double,double,int,bool);
151  };
152 
158  {
159  public:
160  CappedNRotBondPrmsPy(const std::string&,double,double,double,int);
161  };
162 
168  {
169  public:
170  NRotShortBondPrmsPy(const std::string&,double,double,int);
171  };
172 
178  {
179  public:
181  const std::string &name,
182  double normalK
183  );
184 
186  const std::string &name,
187  double normalK,
188  bool scaling
189  );
190  };
191 
197  {
198  public:
199  HertzianElasticPrmsPy(const std::string&,double,double);
200  };
201 
208  {
209  public:
211  const std::string&,
212  double,
213  double,
214  double,
215  double,
216  double
217  );
218  };
219 
225  {
226  public:
227  HertzianViscoElasticPrmsPy(const std::string&,double,double,double);
228  };
229 
235  {
236  public:
237  LinearDashpotPrmsPy(const std::string&,double,double);
238  };
239 
245  {
246  public:
248  const std::string &name,
249  double normalK,
250  double dynamicMu,
251  double shearK,
252  bool scaling
253  );
254 
256  const std::string &name,
257  double normalK,
258  double dynamicMu,
259  double shearK
260  );
261  };
262 
268  {
269  private:
270  std::string m_name; // unused ??
271  public:
273  const std::string &name,
274  double youngsModulus,
275  double poissonsRatio,
276  double cohesion,
277  double tanAngle,
278  int aTag
279  );
280 
282  const std::string &name,
283  double youngsModulus,
284  double poissonsRatio,
285  double cohesion,
286  double tanAngle,
287  int aTag,
288  bool meanR_scaling
289  );
290 
292  const std::string &name,
293  double youngsModulus,
294  double poissonsRatio,
295  double cohesion,
296  double tanAngle,
297  int aTag,
298  bool meanR_scaling,
299  double truncated,
300  double beta1,
301  double beta2
302  );
303  };
304 
310  {
311  private:
312  std::string m_name; // unused ??
313  public:
315  const std::string &name,
316  double normalK,
317  double shearK,
318  double torsionK,
319  double bendingK,
320  double normalBrkForce,
321  double shearBrkForce,
322  double torsionBrkForce,
323  double bendingBrkForce,
324  int aTag
325  );
326 
328  const std::string &name,
329  double normalK,
330  double shearK,
331  double torsionK,
332  double bendingK,
333  double normalBrkForce,
334  double shearBrkForce,
335  double torsionBrkForce,
336  double bendingBrkForce,
337  int aTag,
338  bool scaling
339  );
340 
342  const std::string &name,
343  double normalK,
344  double shearK,
345  double torsionK,
346  double bendingK,
347  double normalBrkForce,
348  double shearBrkForce,
349  double torsionBrkForce,
350  double bendingBrkForce,
351  int aTag,
352  bool scaling,
353  bool meanR_scaling
354  );
355 
357  const std::string &name,
358  double normalK,
359  double shearK,
360  double torsionK,
361  double bendingK,
362  double normalBrkForce,
363  double shearBrkForce,
364  double torsionBrkForce,
365  double bendingBrkForce,
366  int aTag,
367  bool scaling,
368  bool meanR_scaling,
369  double truncated
370  );
371  };
372 
378  {
379  public:
381  const std::string &name,
382  double youngsModulus,
383  double poissonsRatio,
384  double dynamicMu, // sliding frictional coefficient
385  double staticMu, // max static frictional coefficient
386  bool rigid,
387  bool meanR_scaling
388  );
389 
391  const std::string &name,
392  double youngsModulus,
393  double poissonsRatio,
394  double dynamicMu, // sliding frictional coefficient
395  double staticMu // max static frictional coefficient
396  );
397 
399  const std::string &name,
400  double youngsModulus,
401  double poissonsRatio,
402  double dynamicMu, // sliding frictional coefficient
403  double staticMu, // max static frictional coefficient
404  bool rigid
405  );
406  };
407 
413  {
414  public:
416  const std::string &name,
417  double normalK,
418  double dynamicMu, // sliding frictional coefficient
419  double staticMu, // max static frictional coefficient
420  double shearK
421  );
422 
424  const std::string &name,
425  double normalK,
426  double dynamicMu, // sliding frictional coefficient
427  double staticMu, // max static frictional coefficient
428  double shearK,
429  bool scaling
430  );
431 
433  const std::string &name,
434  double normalK,
435  double dynamicMu, // sliding frictional coefficient
436  double staticMu, // max static frictional coefficient
437  double shearK,
438  bool scaling,
439  bool rigid
440  );
441 
443  const std::string &name,
444  double normalK,
445  double dynamicMu, // sliding frictional coefficient
446  double staticMu, // max static frictional coefficient
447  double shearK,
448  bool scaling,
449  bool rigid,
450  bool meanR_scaling
451  );
452  };
453 
459  {
460  public:
462  const std::string& name,
463  double normalK
464  );
465 
467  const std::string& name,
468  double normalK,
469  bool scaling
470  );
471  };
472 
478  {
479  public:
481  const std::string &name,
482  double normalK,
483  double diffusivity
484  );
485  };
486 
492  {
493  public:
495  const std::string &name,
496  double normalK,
497  double dynamicMu, // sliding frictional coefficient
498  double staticMu, // max static frictional coefficient
499  double shearK,
500  double diffusivity
501  );
502  };
503 
509  {
510  public:
511  static const int INVALID_BOND_TAG;
513  const std::string &name,
514  double normalK,
515  double shearK,
516  double torsionK,
517  double bendingK,
518  double normalBrkForce,
519  double shearBrkForce,
520  double torsionBrkForce,
521  double bendingBrkForce,
522  double diffusivity,
523  int aTag
524  );
525  };
526 
531  class GravityPrmsPy : public GravityIGP
532  {
533  public:
535  const std::string &name,
536  const Vec3Py &acceleration
537  );
538  };
539 
545  {
546  public:
548  const std::string &name,
549  const Vec3Py &acceleration,
550  const double &fluidDensity,
551  const double &fluidHeight
552  );
553  };
554 
560  {
561  public:
563  const std::string &name,
564  double normalK,
565  double dynamicMu,
566  double shearK,
567  double alpha
568  );
569  };
570 
571  void exportInteractionPrms();
572 
573  } // namespace lsm
574 } // namespace esys
575 
576 #endif // ESYS_LSMINTERACTIONPARAMSPY_H
wrapper for CRotBondedIGP
Definition: InteractionParamsPy.h:267
wrapper for CBondedIGP
Definition: InteractionParamsPy.h:146
HertzianViscoElasticPrmsPy(const std::string &, double, double, double)
Definition: InteractionParamsPy.cpp:272
wrapper for CRotElasticIGP
Definition: InteractionParamsPy.h:458
RotDampingPrmsPy(const std::string &name, double viscosity, int maxIterations)
Definition: InteractionParamsPy.cpp:55
Definition: vec3.h:46
Interaction parameters for frictional interaction.
Definition: FrictionInteraction.h:27
double diffusivity
Definition: RotThermElasticInteraction.h:36
Interaction parameters for bonded interaction.
Definition: BondedInteraction.h:39
Interaction group parameters for CRotElasticInteractionGroups.
Definition: RotElasticInteraction.h:24
RotThermElasticPrmsPy(const std::string &name, double normalK, double diffusivity)
Definition: InteractionParamsPy.cpp:786
RotElasticPrmsPy(const std::string &name, double normalK)
Definition: InteractionParamsPy.cpp:748
Definition: InteractionParamsPy.h:531
wrapper for CRotThermFrictionIGP
Definition: InteractionParamsPy.h:491
std::string m_name
Definition: InteractionParamsPy.h:312
Definition: RotThermFricInteraction.h:34
Interaction parameters for frictional interaction between rotational particles.
Definition: RotFricInteraction.h:37
Definition: BodyForceGroup.h:67
Definition: InteractionParamsPy.h:87
wrapper for CRotFrictionIGP
Definition: InteractionParamsPy.h:377
bool meanR_scaling
Definition: RotBondedInteraction.h:81
wrapper for CDampingIGP
Definition: InteractionParamsPy.h:66
wrapper for CLinearDashpotIGP
Definition: InteractionParamsPy.h:234
Definition: CheckPointable.cpp:16
Definition: InteractionParamsPy.h:544
wrapper for CRotThermElasticIGP
Definition: InteractionParamsPy.h:477
wrapper for CRotThermBondedIGP
Definition: InteractionParamsPy.h:508
NRotElasticPrmsPy(const std::string &name, double normalK)
Definition: InteractionParamsPy.cpp:211
wrapper for CHertzianViscoElasticIGP
Definition: InteractionParamsPy.h:224
Interaction group parameters for Hertzian elastic interactions.
Definition: HertzianElasticInteraction.h:24
CappedNRotBondPrmsPy(const std::string &, double, double, double, int)
Definition: InteractionParamsPy.cpp:159
Definition: InteractionParamsPy.h:56
Definition: ABCDampingIGP.h:23
NRotShortBondPrmsPy(const std::string &, double, double, int)
Definition: InteractionParamsPy.cpp:178
wrapper for CRotBondedIGP
Definition: InteractionParamsPy.h:309
Interaction parameters for velocity weakening frictional interaction.
Definition: VWFrictionInteraction.h:22
LinearDashpotPrmsPy(const std::string &, double, double)
Definition: InteractionParamsPy.cpp:288
HertzianElasticPrmsPy(const std::string &, double, double)
Definition: InteractionParamsPy.cpp:235
wrapper for CFrictionIGP
Definition: InteractionParamsPy.h:244
bool meanR_scaling
Definition: RotFricInteraction.h:79
wrapper for CLocalDampingIGP
Definition: InteractionParamsPy.h:114
wrapper for VWFrictionIGP
Definition: InteractionParamsPy.h:559
wrapper for CBondedIGP (used in construction of short bonded IG)
Definition: InteractionParamsPy.h:167
double diffusivity
Definition: RotThermBondedInteraction.h:53
VWFrictionPrmsPy(const std::string &name, double normalK, double dynamicMu, double shearK, double alpha)
Definition: InteractionParamsPy.cpp:829
wrapper for CCappedBondedIGP
Definition: InteractionParamsPy.h:157
bool scaling
Definition: RotFricInteraction.h:77
wrapper for CElasticIGP
Definition: InteractionParamsPy.h:177
Interaction group parameters for CElasticInteractionGroups.
Definition: ElasticInteraction.h:24
BuoyancyPrmsPy(const std::string &name, const Vec3Py &acceleration, const double &fluidDensity, const double &fluidHeight)
Definition: InteractionParamsPy.cpp:815
static const int INVALID_BOND_TAG
Definition: InteractionParamsPy.h:511
RotThermBondPrmsPy(const std::string &name, double normalK, double shearK, double torsionK, double bendingK, double normalBrkForce, double shearBrkForce, double torsionBrkForce, double bendingBrkForce, double diffusivity, int aTag)
Definition: InteractionParamsPy.cpp:510
RotLocalDampingPrmsPy(const std::string &name, double viscosity)
Definition: InteractionParamsPy.cpp:72
BrittleBeamPrmsPy(const std::string &name, double youngsModulus, double poissonsRatio, double cohesion, double tanAngle, int aTag)
Definition: InteractionParamsPy.cpp:544
double beta2
Definition: RotBondedInteraction.h:84
void exportInteractionPrms()
Definition: InteractionParamsPy.cpp:846
double diffusivity
Definition: RotThermFricInteraction.h:53
Interaction parameters for bonded interaction with a force limit.
Definition: CappedBondedInteraction.h:40
RotBondPrmsPy(const std::string &name, double normalK, double shearK, double torsionK, double bendingK, double normalBrkForce, double shearBrkForce, double torsionBrkForce, double bendingBrkForce, int aTag)
Definition: InteractionParamsPy.cpp:358
Interaction group parameters for CLocalDampingGroup.
Definition: LocalDampingIGP.h:27
Interaction group parameters for CDampingGroup.
Definition: DampingIGP.h:27
wrapper for CHertzianElasticIGP
Definition: InteractionParamsPy.h:196
bool rigid
Definition: RotFricInteraction.h:78
Definition: Vec3Py.h:28
NRotBondPrmsPy(const std::string &, double, double, int)
Definition: InteractionParamsPy.cpp:131
double beta1
Definition: RotBondedInteraction.h:83
Definition: InteractionParamsPy.h:77
wrapper for CRotFrictionIGP
Definition: InteractionParamsPy.h:412
bool scaling
Definition: RotBondedInteraction.h:80
HertzianViscoElasticFrictionPrmsPy(const std::string &, double, double, double, double, double)
Definition: InteractionParamsPy.cpp:253
Interaction parameters for bonded interaction between rotational particles.
Definition: RotBondedInteraction.h:37
InteractionPrmsPy()
Definition: InteractionParamsPy.cpp:23
RotThermFrictionPrmsPy(const std::string &name, double normalK, double dynamicMu, double staticMu, double shearK, double diffusivity)
Definition: InteractionParamsPy.cpp:727
LinDampingPrmsPy(const std::string &name, double viscosity, int maxIterations)
Definition: InteractionParamsPy.cpp:46
std::string m_name
Definition: InteractionParamsPy.h:270
wrapper for ABCDampingIGP
Definition: InteractionParamsPy.h:127
FrictionPrmsPy(const std::string &name, double youngsModulus, double poissonsRatio, double dynamicMu, double staticMu, bool rigid, bool meanR_scaling)
Definition: InteractionParamsPy.cpp:613
wrapper for CLocalDampingIGP
Definition: InteractionParamsPy.h:101
LocalDampingPrmsPy(const std::string &name, double viscosity)
Definition: InteractionParamsPy.cpp:64
wrapper for CHertzianViscoElasticFrictionIGP
Definition: InteractionParamsPy.h:206
RotFrictionPrmsPy(const std::string &name, double normalK, double dynamicMu, double staticMu, double shearK)
Definition: InteractionParamsPy.cpp:654
Interaction group parameters for Hertzian viscoelastic interactions with friction.
Definition: HertzianViscoElasticFrictionInteraction.h:27
Definition: RotThermBondedInteraction.h:34
Interaction group parameters for Hertzian viscoelastic interactions.
Definition: HertzianViscoElasticInteraction.h:24
GravityPrmsPy(const std::string &name, const Vec3Py &acceleration)
Definition: InteractionParamsPy.cpp:804
Definition: BodyForceGroup.h:50
double truncated
Definition: RotBondedInteraction.h:82
DampingPrmsPy(const std::string &type, const std::string &name, double viscosity, int maxIterations)
Definition: InteractionParamsPy.cpp:36
Interaction group parameters for Linear Dashpot interactions.
Definition: LinearDashpotInteraction.h:24
ABCDampingPrmsPy(const std::string &type, const std::string &name, double viscosity, int maxIterations, const Vec3 &vref, const Vec3 &pos, const Vec3 &normal, double c1)
Definition: InteractionParamsPy.cpp:88
Definition: RotThermElasticInteraction.h:23
NRotFrictionPrmsPy(const std::string &name, double normalK, double dynamicMu, double shearK, bool scaling)
Definition: InteractionParamsPy.cpp:305