ESyS-Particle  2.3.4
InteractionParamsPy.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 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"
44 
45 //--- STL includes ---
46 #include <string>
47 
48 namespace esys
49 {
50  namespace lsm
51  {
52  class Vec3Py;
53 
59  {
60  public:
62  };
63 
68  class DampingPrmsPy : public CDampingIGP
69  {
70  public:
72  const std::string &type,
73  const std::string &name,
74  double viscosity,
75  int maxIterations
76  );
77  };
78 
80  {
81  public:
83  const std::string &name,
84  double viscosity,
85  int maxIterations
86  );
87  };
88 
90  {
91  public:
93  const std::string &name,
94  double viscosity,
95  int maxIterations
96  );
97  };
98 
104  {
105  public:
107  const std::string &name,
108  double viscosity
109  );
110  };
111 
117  {
118  public:
120  const std::string &name,
121  double viscosity
122  );
123  };
124 
130  {
131  public:
133  const std::string &type,
134  const std::string &name,
135  double viscosity,
136  int maxIterations,
137  const Vec3& vref,
138  const Vec3& pos,
139  const Vec3& normal,
140  double c1
141  );
142  };
143 
148  class NRotBondPrmsPy : public CBondedIGP
149  {
150  public:
151  NRotBondPrmsPy(const std::string&,double,double,int);
152  NRotBondPrmsPy(const std::string&,double,double,int,bool);
153  };
154 
160  {
161  public:
162  CappedNRotBondPrmsPy(const std::string&,double,double,double,int);
163  };
164 
170  {
171  public:
172  NRotShortBondPrmsPy(const std::string&,double,double,int);
173  };
174 
180  {
181  public:
183  const std::string &name,
184  double normalK
185  );
186 
188  const std::string &name,
189  double normalK,
190  bool scaling
191  );
192  };
193 
199  {
200  public:
201  HertzianElasticPrmsPy(const std::string&,double,double);
202  };
203 
210  {
211  public:
213  const std::string&,
214  double,
215  double,
216  double,
217  double,
218  double
219  );
220  };
221 
227  {
228  public:
229  HertzianViscoElasticPrmsPy(const std::string&,double,double,double);
230  };
231 
237  : public CHertzMindlinIGP
238  {
239  public:
241  const std::string&,
242  double,
243  double,
244  double
245  );
246  };
247 
253  : public CHertzMindlinViscoIGP
254  {
255  public:
257  const std::string&,
258  double,
259  double,
260  double,
261  double
262  );
263  };
264 
270  {
271  public:
272  LinearDashpotPrmsPy(const std::string&,double,double);
273  };
274 
280  {
281  public:
283  const std::string &name,
284  double normalK,
285  double dynamicMu,
286  double shearK,
287  bool scaling
288  );
289 
291  const std::string &name,
292  double normalK,
293  double dynamicMu,
294  double shearK
295  );
296  };
297 
303  {
304  private:
305  std::string m_name; // unused ??
306  public:
308  const std::string &name,
309  double youngsModulus,
310  double poissonsRatio,
311  double cohesion,
312  double tanAngle,
313  int aTag
314  );
315 
317  const std::string &name,
318  double youngsModulus,
319  double poissonsRatio,
320  double cohesion,
321  double tanAngle,
322  int aTag,
323  bool meanR_scaling
324  );
325 
327  const std::string &name,
328  double youngsModulus,
329  double poissonsRatio,
330  double cohesion,
331  double tanAngle,
332  int aTag,
333  bool meanR_scaling,
334  double truncated,
335  double beta1,
336  double beta2
337  );
338  };
339 
345  {
346  private:
347  std::string m_name; // unused ??
348  public:
350  const std::string &name,
351  double normalK,
352  double shearK,
353  double torsionK,
354  double bendingK,
355  double normalBrkForce,
356  double shearBrkForce,
357  double torsionBrkForce,
358  double bendingBrkForce,
359  int aTag
360  );
361 
363  const std::string &name,
364  double normalK,
365  double shearK,
366  double torsionK,
367  double bendingK,
368  double normalBrkForce,
369  double shearBrkForce,
370  double torsionBrkForce,
371  double bendingBrkForce,
372  int aTag,
373  bool scaling
374  );
375 
377  const std::string &name,
378  double normalK,
379  double shearK,
380  double torsionK,
381  double bendingK,
382  double normalBrkForce,
383  double shearBrkForce,
384  double torsionBrkForce,
385  double bendingBrkForce,
386  int aTag,
387  bool scaling,
388  bool meanR_scaling
389  );
390 
392  const std::string &name,
393  double normalK,
394  double shearK,
395  double torsionK,
396  double bendingK,
397  double normalBrkForce,
398  double shearBrkForce,
399  double torsionBrkForce,
400  double bendingBrkForce,
401  int aTag,
402  bool scaling,
403  bool meanR_scaling,
404  double truncated
405  );
406  };
407 
413  {
414  public:
416  const std::string &name,
417  double youngsModulus,
418  double poissonsRatio,
419  double dynamicMu, // sliding frictional coefficient
420  double staticMu, // max static frictional coefficient
421  bool rigid,
422  bool meanR_scaling
423  );
424 
426  const std::string &name,
427  double youngsModulus,
428  double poissonsRatio,
429  double dynamicMu, // sliding frictional coefficient
430  double staticMu // max static frictional coefficient
431  );
432 
434  const std::string &name,
435  double youngsModulus,
436  double poissonsRatio,
437  double dynamicMu, // sliding frictional coefficient
438  double staticMu, // max static frictional coefficient
439  bool rigid
440  );
441  };
442 
448  {
449  public:
451  const std::string &name,
452  double normalK,
453  double dynamicMu, // sliding frictional coefficient
454  double staticMu, // max static frictional coefficient
455  double shearK
456  );
457 
459  const std::string &name,
460  double normalK,
461  double dynamicMu, // sliding frictional coefficient
462  double staticMu, // max static frictional coefficient
463  double shearK,
464  bool scaling
465  );
466 
468  const std::string &name,
469  double normalK,
470  double dynamicMu, // sliding frictional coefficient
471  double staticMu, // max static frictional coefficient
472  double shearK,
473  bool scaling,
474  bool rigid
475  );
476 
478  const std::string &name,
479  double normalK,
480  double dynamicMu, // sliding frictional coefficient
481  double staticMu, // max static frictional coefficient
482  double shearK,
483  bool scaling,
484  bool rigid,
485  bool meanR_scaling
486  );
487  };
488 
494  {
495  public:
497  const std::string& name,
498  double normalK
499  );
500 
502  const std::string& name,
503  double normalK,
504  bool scaling
505  );
506  };
507 
513  {
514  public:
516  const std::string &name,
517  double normalK,
518  double diffusivity
519  );
520  };
521 
527  {
528  public:
530  const std::string &name,
531  double normalK,
532  double dynamicMu, // sliding frictional coefficient
533  double staticMu, // max static frictional coefficient
534  double shearK,
535  double diffusivity
536  );
537  };
538 
544  {
545  public:
546  static const int INVALID_BOND_TAG;
548  const std::string &name,
549  double normalK,
550  double shearK,
551  double torsionK,
552  double bendingK,
553  double normalBrkForce,
554  double shearBrkForce,
555  double torsionBrkForce,
556  double bendingBrkForce,
557  double diffusivity,
558  int aTag
559  );
560  };
561 
566  class GravityPrmsPy : public GravityIGP
567  {
568  public:
570  const std::string &name,
571  const Vec3Py &acceleration
572  );
573  };
574 
580  {
581  public:
583  const std::string &name,
584  const Vec3Py &acceleration,
585  const double &fluidDensity,
586  const double &fluidHeight
587  );
588  };
589 
595  {
596  public:
598  const std::string &name,
599  double normalK,
600  double dynamicMu,
601  double shearK,
602  double alpha
603  );
604  };
605 
606  void exportInteractionPrms();
607 
608  } // namespace lsm
609 } // namespace esys
610 
611 #endif // ESYS_LSMINTERACTIONPARAMSPY_H
CCappedBondedIGP
Interaction parameters for bonded interaction with a force limit.
Definition: CappedBondedInteraction.h:41
ABCDampingIGP.h
RotFricInteraction.h
esys::lsm::BodyForceIGP::getName
const std::string & getName() const
Definition: BodyForceGroup.cpp:39
esys::lsm::NRotShortBondPrmsPy::NRotShortBondPrmsPy
NRotShortBondPrmsPy(const std::string &, double, double, int)
Definition: InteractionParamsPy.cpp:178
HertzianViscoElasticFrictionInteraction.h
InteractionParamsPy.h
HertzianViscoElasticInteraction.h
esys::lsm::BuoyancyPrmsPy
Definition: InteractionParamsPy.h:580
CLinearDashpotIGP
Interaction group parameters for Linear Dashpot interactions.
Definition: LinearDashpotInteraction.h:25
esys::lsm::BrittleBeamPrmsPy::m_name
std::string m_name
Definition: InteractionParamsPy.h:305
esys::lsm::GravityPrmsPy::GravityPrmsPy
GravityPrmsPy(const std::string &name, const Vec3Py &acceleration)
Definition: InteractionParamsPy.cpp:840
esys::lsm::RotBondPrmsPy::RotBondPrmsPy
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:394
CRotFrictionIGP
Interaction parameters for frictional interaction between rotational particles.
Definition: RotFricInteraction.h:38
esys::lsm::LocalDampingPrmsPy
wrapper for CLocalDampingIGP
Definition: InteractionParamsPy.h:104
CHertzianViscoElasticIGP
Interaction group parameters for Hertzian viscoelastic interactions.
Definition: HertzianViscoElasticInteraction.h:25
esys::lsm::BuoyancyIGP
Definition: BodyForceGroup.h:68
CRotThermElasticIGP
Definition: RotThermElasticInteraction.h:24
esys::lsm::RotFrictionPrmsPy::RotFrictionPrmsPy
RotFrictionPrmsPy(const std::string &name, double normalK, double dynamicMu, double staticMu, double shearK)
Definition: InteractionParamsPy.cpp:690
esys::lsm::LinDampingPrmsPy
Definition: InteractionParamsPy.h:80
esys::lsm::RotLocalDampingPrmsPy
wrapper for CLocalDampingIGP
Definition: InteractionParamsPy.h:117
Vec3Py.h
esys::lsm::NRotFrictionPrmsPy
wrapper for CFrictionIGP
Definition: InteractionParamsPy.h:280
CFrictionIGP
Interaction parameters for frictional interaction.
Definition: FrictionInteraction.h:28
esys::lsm::RotThermBondPrmsPy::INVALID_BOND_TAG
static const int INVALID_BOND_TAG
Definition: InteractionParamsPy.h:546
CRotThermElasticIGP::diffusivity
double diffusivity
Definition: RotThermElasticInteraction.h:36
esys::lsm::CappedNRotBondPrmsPy::CappedNRotBondPrmsPy
CappedNRotBondPrmsPy(const std::string &, double, double, double, int)
Definition: InteractionParamsPy.cpp:159
FrictionInteraction.h
LocalDampingIGP.h
esys::lsm::RotDampingPrmsPy
Definition: InteractionParamsPy.h:90
esys::lsm::GravityIGP
Definition: BodyForceGroup.h:51
HertzianElasticInteraction.h
esys::lsm::Vec3Py
Definition: Vec3Py.h:29
esys::lsm::RotBondPrmsPy::m_name
std::string m_name
Definition: InteractionParamsPy.h:347
esys::lsm::NRotElasticPrmsPy
wrapper for CElasticIGP
Definition: InteractionParamsPy.h:180
RotBondedInteraction.h
RotThermElasticInteraction.h
CRotThermFrictionIGP::diffusivity
double diffusivity
Definition: RotThermFricInteraction.h:53
BondedInteraction.h
esys::lsm::HertzianViscoElasticFrictionPrmsPy
wrapper for CHertzianViscoElasticFrictionIGP
Definition: InteractionParamsPy.h:210
esys::lsm::HertzianElasticPrmsPy::HertzianElasticPrmsPy
HertzianElasticPrmsPy(const std::string &, double, double)
Definition: InteractionParamsPy.cpp:235
esys::lsm::exportInteractionPrms
void exportInteractionPrms()
Definition: InteractionParamsPy.cpp:882
esys::lsm::ABCDampingPrmsPy
wrapper for ABCDampingIGP
Definition: InteractionParamsPy.h:130
esys::lsm::HertzianViscoElasticFrictionPrmsPy::HertzianViscoElasticFrictionPrmsPy
HertzianViscoElasticFrictionPrmsPy(const std::string &, double, double, double, double, double)
Definition: InteractionParamsPy.cpp:253
esys::lsm::RotElasticPrmsPy
wrapper for CRotElasticIGP
Definition: InteractionParamsPy.h:494
esys::lsm::BrittleBeamPrmsPy::BrittleBeamPrmsPy
BrittleBeamPrmsPy(const std::string &name, double youngsModulus, double poissonsRatio, double cohesion, double tanAngle, int aTag)
Definition: InteractionParamsPy.cpp:580
esys::lsm::GravityPrmsPy
Definition: InteractionParamsPy.h:567
CRotBondedIGP
Interaction parameters for bonded interaction between rotational particles.
Definition: RotBondedInteraction.h:38
HertzMindlinViscoInteraction.h
CElasticIGP
Interaction group parameters for CElasticInteractionGroups.
Definition: ElasticInteraction.h:25
esys::lsm::RotDampingPrmsPy::RotDampingPrmsPy
RotDampingPrmsPy(const std::string &name, double viscosity, int maxIterations)
Definition: InteractionParamsPy.cpp:55
esys::lsm::RotBondPrmsPy
wrapper for CRotBondedIGP
Definition: InteractionParamsPy.h:345
CHertzMindlinViscoIGP
Interaction group parameters for Hertz-Mindlin interactions.
Definition: HertzMindlinViscoInteraction.h:28
esys::lsm::RotElasticPrmsPy::RotElasticPrmsPy
RotElasticPrmsPy(const std::string &name, double normalK)
Definition: InteractionParamsPy.cpp:784
CRotThermFrictionIGP
Definition: RotThermFricInteraction.h:35
esys::lsm::HertzianElasticPrmsPy
wrapper for CHertzianElasticIGP
Definition: InteractionParamsPy.h:199
esys::lsm::InteractionPrmsPy
Definition: InteractionParamsPy.h:59
esys
Definition: CheckPointable.cpp:17
esys::lsm::CappedNRotBondPrmsPy
wrapper for CCappedBondedIGP
Definition: InteractionParamsPy.h:160
CRotBondedIGP::truncated
double truncated
Definition: RotBondedInteraction.h:82
CRotFrictionIGP::scaling
bool scaling
Definition: RotFricInteraction.h:77
RotThermFricInteraction.h
esys::lsm::BuoyancyPrmsPy::BuoyancyPrmsPy
BuoyancyPrmsPy(const std::string &name, const Vec3Py &acceleration, const double &fluidDensity, const double &fluidHeight)
Definition: InteractionParamsPy.cpp:851
esys::lsm::DampingPrmsPy::DampingPrmsPy
DampingPrmsPy(const std::string &type, const std::string &name, double viscosity, int maxIterations)
Definition: InteractionParamsPy.cpp:36
esys::lsm::NRotElasticPrmsPy::NRotElasticPrmsPy
NRotElasticPrmsPy(const std::string &name, double normalK)
Definition: InteractionParamsPy.cpp:211
VWFrictionInteraction.h
CRotThermBondedIGP
Definition: RotThermBondedInteraction.h:35
CRotFrictionIGP::meanR_scaling
bool meanR_scaling
Definition: RotFricInteraction.h:79
esys::lsm::DampingPrmsPy
wrapper for CDampingIGP
Definition: InteractionParamsPy.h:69
esys::lsm::ABCDampingPrmsPy::ABCDampingPrmsPy
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
esys::lsm::HertzMindlinViscoPrmsPy::HertzMindlinViscoPrmsPy
HertzMindlinViscoPrmsPy(const std::string &, double, double, double, double)
Definition: InteractionParamsPy.cpp:307
esys::lsm::LinDampingPrmsPy::LinDampingPrmsPy
LinDampingPrmsPy(const std::string &name, double viscosity, int maxIterations)
Definition: InteractionParamsPy.cpp:46
RotElasticInteraction.h
esys::lsm::HertzMindlinPrmsPy::HertzMindlinPrmsPy
HertzMindlinPrmsPy(const std::string &, double, double, double)
Definition: InteractionParamsPy.cpp:289
CappedBondedInteraction.h
esys::lsm::RotThermBondPrmsPy::RotThermBondPrmsPy
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:546
CRotBondedIGP::meanR_scaling
bool meanR_scaling
Definition: RotBondedInteraction.h:81
CRotThermBondedIGP::diffusivity
double diffusivity
Definition: RotThermBondedInteraction.h:53
CHertzianViscoElasticFrictionIGP
Interaction group parameters for Hertzian viscoelastic interactions with friction.
Definition: HertzianViscoElasticFrictionInteraction.h:28
esys::lsm::LinearDashpotPrmsPy::LinearDashpotPrmsPy
LinearDashpotPrmsPy(const std::string &, double, double)
Definition: InteractionParamsPy.cpp:324
esys::lsm::FrictionPrmsPy
wrapper for CRotFrictionIGP
Definition: InteractionParamsPy.h:413
Vec3
Definition: vec3.h:47
CHertzianElasticIGP
Interaction group parameters for Hertzian elastic interactions.
Definition: HertzianElasticInteraction.h:25
DampingIGP.h
CRotElasticIGP
Interaction group parameters for CRotElasticInteractionGroups.
Definition: RotElasticInteraction.h:25
esys::lsm::HertzMindlinPrmsPy
wrapper for CHertzMindlinIGP
Definition: InteractionParamsPy.h:238
esys::lsm::HertzianViscoElasticPrmsPy
wrapper for CHertzianViscoElasticIGP
Definition: InteractionParamsPy.h:227
esys::lsm::HertzMindlinViscoPrmsPy
wrapper for CHertzMindlinViscoIGP
Definition: InteractionParamsPy.h:254
esys::lsm::InteractionPrmsPy::InteractionPrmsPy
InteractionPrmsPy()
Definition: InteractionParamsPy.cpp:23
esys::lsm::VWFrictionPrmsPy
wrapper for VWFrictionIGP
Definition: InteractionParamsPy.h:595
esys::lsm::RotThermBondPrmsPy
wrapper for CRotThermBondedIGP
Definition: InteractionParamsPy.h:544
CHertzMindlinIGP
Interaction group parameters for Hertz-Mindlin interactions.
Definition: HertzMindlinInteraction.h:28
esys::lsm::NRotShortBondPrmsPy
wrapper for CBondedIGP (used in construction of short bonded IG)
Definition: InteractionParamsPy.h:170
CLocalDampingIGP
Interaction group parameters for CLocalDampingGroup.
Definition: LocalDampingIGP.h:28
esys::lsm::NRotFrictionPrmsPy::NRotFrictionPrmsPy
NRotFrictionPrmsPy(const std::string &name, double normalK, double dynamicMu, double shearK, bool scaling)
Definition: InteractionParamsPy.cpp:341
esys::lsm::RotThermFrictionPrmsPy::RotThermFrictionPrmsPy
RotThermFrictionPrmsPy(const std::string &name, double normalK, double dynamicMu, double staticMu, double shearK, double diffusivity)
Definition: InteractionParamsPy.cpp:763
BodyForceGroup.h
esys::lsm::BrittleBeamPrmsPy
wrapper for CRotBondedIGP
Definition: InteractionParamsPy.h:303
esys::lsm::RotLocalDampingPrmsPy::RotLocalDampingPrmsPy
RotLocalDampingPrmsPy(const std::string &name, double viscosity)
Definition: InteractionParamsPy.cpp:72
LinearDashpotInteraction.h
RotThermBondedInteraction.h
esys::lsm::VWFrictionPrmsPy::VWFrictionPrmsPy
VWFrictionPrmsPy(const std::string &name, double normalK, double dynamicMu, double shearK, double alpha)
Definition: InteractionParamsPy.cpp:865
esys::lsm::FrictionPrmsPy::FrictionPrmsPy
FrictionPrmsPy(const std::string &name, double youngsModulus, double poissonsRatio, double dynamicMu, double staticMu, bool rigid, bool meanR_scaling)
Definition: InteractionParamsPy.cpp:649
ElasticInteraction.h
ABCDampingIGP
Definition: ABCDampingIGP.h:24
HertzMindlinInteraction.h
esys::lsm::HertzianViscoElasticPrmsPy::HertzianViscoElasticPrmsPy
HertzianViscoElasticPrmsPy(const std::string &, double, double, double)
Definition: InteractionParamsPy.cpp:272
VWFrictionIGP
Interaction parameters for velocity weakening frictional interaction.
Definition: VWFrictionInteraction.h:23
CDampingIGP
Interaction group parameters for CDampingGroup.
Definition: DampingIGP.h:28
CRotBondedIGP::scaling
bool scaling
Definition: RotBondedInteraction.h:80
CRotBondedIGP::beta1
double beta1
Definition: RotBondedInteraction.h:83
esys::lsm::NRotBondPrmsPy::NRotBondPrmsPy
NRotBondPrmsPy(const std::string &, double, double, int)
Definition: InteractionParamsPy.cpp:131
CBondedIGP
Interaction parameters for bonded interaction.
Definition: BondedInteraction.h:40
esys::lsm::LocalDampingPrmsPy::LocalDampingPrmsPy
LocalDampingPrmsPy(const std::string &name, double viscosity)
Definition: InteractionParamsPy.cpp:64
AIGParam::getName
const std::string & getName() const
Definition: IGParam.h:42
esys::lsm::LinearDashpotPrmsPy
wrapper for CLinearDashpotIGP
Definition: InteractionParamsPy.h:270
esys::lsm::RotFrictionPrmsPy
wrapper for CRotFrictionIGP
Definition: InteractionParamsPy.h:448
CRotBondedIGP::beta2
double beta2
Definition: RotBondedInteraction.h:84
esys::lsm::RotThermElasticPrmsPy
wrapper for CRotThermElasticIGP
Definition: InteractionParamsPy.h:513
CRotFrictionIGP::rigid
bool rigid
Definition: RotFricInteraction.h:78
esys::lsm::NRotBondPrmsPy
wrapper for CBondedIGP
Definition: InteractionParamsPy.h:149
esys::lsm::RotThermElasticPrmsPy::RotThermElasticPrmsPy
RotThermElasticPrmsPy(const std::string &name, double normalK, double diffusivity)
Definition: InteractionParamsPy.cpp:822
esys::lsm::RotThermFrictionPrmsPy
wrapper for CRotThermFrictionIGP
Definition: InteractionParamsPy.h:527