ESyS-Particle  2.3
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  );
301  };
302 
308  {
309  private:
310  std::string m_name; // unused ??
311  public:
313  const std::string &name,
314  double normalK,
315  double shearK,
316  double torsionK,
317  double bendingK,
318  double normalBrkForce,
319  double shearBrkForce,
320  double torsionBrkForce,
321  double bendingBrkForce,
322  int aTag
323  );
324 
326  const std::string &name,
327  double normalK,
328  double shearK,
329  double torsionK,
330  double bendingK,
331  double normalBrkForce,
332  double shearBrkForce,
333  double torsionBrkForce,
334  double bendingBrkForce,
335  int aTag,
336  bool scaling
337  );
338 
340  const std::string &name,
341  double normalK,
342  double shearK,
343  double torsionK,
344  double bendingK,
345  double normalBrkForce,
346  double shearBrkForce,
347  double torsionBrkForce,
348  double bendingBrkForce,
349  int aTag,
350  bool scaling,
351  bool meanR_scaling
352  );
353 
355  const std::string &name,
356  double normalK,
357  double shearK,
358  double torsionK,
359  double bendingK,
360  double normalBrkForce,
361  double shearBrkForce,
362  double torsionBrkForce,
363  double bendingBrkForce,
364  int aTag,
365  bool scaling,
366  bool meanR_scaling,
367  double truncated
368  );
369  };
370 
376  {
377  public:
379  const std::string &name,
380  double youngsModulus,
381  double poissonsRatio,
382  double dynamicMu, // sliding frictional coefficient
383  double staticMu, // max static frictional coefficient
384  bool rigid,
385  bool meanR_scaling
386  );
387 
389  const std::string &name,
390  double youngsModulus,
391  double poissonsRatio,
392  double dynamicMu, // sliding frictional coefficient
393  double staticMu // max static frictional coefficient
394  );
395 
397  const std::string &name,
398  double youngsModulus,
399  double poissonsRatio,
400  double dynamicMu, // sliding frictional coefficient
401  double staticMu, // max static frictional coefficient
402  bool rigid
403  );
404  };
405 
411  {
412  public:
414  const std::string &name,
415  double normalK,
416  double dynamicMu, // sliding frictional coefficient
417  double staticMu, // max static frictional coefficient
418  double shearK
419  );
420 
422  const std::string &name,
423  double normalK,
424  double dynamicMu, // sliding frictional coefficient
425  double staticMu, // max static frictional coefficient
426  double shearK,
427  bool scaling
428  );
429 
431  const std::string &name,
432  double normalK,
433  double dynamicMu, // sliding frictional coefficient
434  double staticMu, // max static frictional coefficient
435  double shearK,
436  bool scaling,
437  bool rigid
438  );
439 
441  const std::string &name,
442  double normalK,
443  double dynamicMu, // sliding frictional coefficient
444  double staticMu, // max static frictional coefficient
445  double shearK,
446  bool scaling,
447  bool rigid,
448  bool meanR_scaling
449  );
450  };
451 
457  {
458  public:
460  const std::string& name,
461  double normalK
462  );
463 
465  const std::string& name,
466  double normalK,
467  bool scaling
468  );
469  };
470 
476  {
477  public:
479  const std::string &name,
480  double normalK,
481  double diffusivity
482  );
483  };
484 
490  {
491  public:
493  const std::string &name,
494  double normalK,
495  double dynamicMu, // sliding frictional coefficient
496  double staticMu, // max static frictional coefficient
497  double shearK,
498  double diffusivity
499  );
500  };
501 
507  {
508  public:
509  static const int INVALID_BOND_TAG;
511  const std::string &name,
512  double normalK,
513  double shearK,
514  double torsionK,
515  double bendingK,
516  double normalBrkForce,
517  double shearBrkForce,
518  double torsionBrkForce,
519  double bendingBrkForce,
520  double diffusivity,
521  int aTag
522  );
523  };
524 
529  class GravityPrmsPy : public GravityIGP
530  {
531  public:
533  const std::string &name,
534  const Vec3Py &acceleration
535  );
536  };
537 
543  {
544  public:
546  const std::string &name,
547  const Vec3Py &acceleration,
548  const double &fluidDensity,
549  const double &fluidHeight
550  );
551  };
552 
558  {
559  public:
561  const std::string &name,
562  double normalK,
563  double dynamicMu,
564  double shearK,
565  double alpha
566  );
567  };
568 
569  void exportInteractionPrms();
570 
571  } // namespace lsm
572 } // namespace esys
573 
574 #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:456
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:780
RotElasticPrmsPy(const std::string &name, double normalK)
Definition: InteractionParamsPy.cpp:742
Definition: InteractionParamsPy.h:529
wrapper for CRotThermFrictionIGP
Definition: InteractionParamsPy.h:489
std::string m_name
Definition: InteractionParamsPy.h:310
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:375
bool meanR_scaling
Definition: RotBondedInteraction.h:77
wrapper for CDampingIGP
Definition: InteractionParamsPy.h:66
wrapper for CLinearDashpotIGP
Definition: InteractionParamsPy.h:234
Definition: CheckPointable.cpp:16
Definition: InteractionParamsPy.h:542
wrapper for CRotThermElasticIGP
Definition: InteractionParamsPy.h:475
wrapper for CRotThermBondedIGP
Definition: InteractionParamsPy.h:506
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:307
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:557
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:823
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:809
static const int INVALID_BOND_TAG
Definition: InteractionParamsPy.h:509
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:508
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:542
void exportInteractionPrms()
Definition: InteractionParamsPy.cpp:840
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
Definition: InteractionParamsPy.h:77
wrapper for CRotFrictionIGP
Definition: InteractionParamsPy.h:410
bool scaling
Definition: RotBondedInteraction.h:76
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:721
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:607
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:648
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:798
Definition: BodyForceGroup.h:50
double truncated
Definition: RotBondedInteraction.h:78
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