ESyS-Particle  2.3.2
LsmMpiPy.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_LSM_LSMMPIPY_H
14 #define ESYS_LSM_LSMMPIPY_H
15 
16 // --- boost includes ---
17 #include <boost/python.hpp>
18 #include <boost/shared_ptr.hpp>
19 
20 // --- STL includes ---
21 #include <string>
22 #include <vector>
23 #include <map>
24 
25 // --- Project includes ---
26 #include "Parallel/LatticeMaster.h"
29 
30 using std::string;
31 
32 namespace esys
33 {
34  namespace lsm
35  {
36  void exportLsm();
37 
50  class NRotBondPrmsPy;
52  class NRotShortBondPrmsPy;
53  class NRotElasticPrmsPy;
57  class LinearDashpotPrmsPy;
58  class NRotFrictionPrmsPy;
59  class RotBondPrmsPy;
60  class RotThermBondPrmsPy;
61  class BrittleBeamPrmsPy;
62  class FrictionPrmsPy;
63  class RotFrictionPrmsPy;
65  class RotElasticPrmsPy;
67  class VWFrictionPrmsPy;
68  class DampingPrmsPy;
69  class LocalDampingPrmsPy;
71  class ABCDampingPrmsPy;
76  class CheckPointPrmsPy;
83  class RunnablePy;
84  class Vec3Py;
85  class BoundingBoxPy;
86  class GravityPrmsPy;
87  class BuoyancyPrmsPy;
88  class MaxTriggerPrmsPy;
89 
90 
91  void checkMpiDimensions(int numProcesses, const std::vector<int> &mpiDimVector);
92 
93  void checkMpiDimensionsPy(int numProcesses, const boost::python::list &mpiDimList);
94 
95  void checkParticleType(const std::string &particleType);
96 
100  class LsmMpiPy
101  {
102  public:
108 
109 
110 
111  LsmMpiPy(
112  int numWorkerProcesses,
113  const boost::python::list &mpiDimList
114  );
115 
116  virtual ~LsmMpiPy();
117 
118  int getNumWorkerProcesses() const;
119 
120  void initVerletModel(
121  const std::string &particleType,
122  double gridSpacing,
123  double verletDist
124  );
125 
126  double getTimeStepSize() const;
127 
128  void setTimeStepSize(double dt);
129 
130  void setTimingFileName(const std::string &fileNamePrefix);
131  void setSlaveTimingFileName(const std::string &fileNamePrefix);
132 
133  std::string getParticleType() const;
134  std::string getLsmVersion() const;
135  void readGeometry(const std::string &fileName);
136 
137  int getNumParticles();
138 
139  int getTimeStep() const;
140 
141  void createParticles(boost::python::object &iterable);
142 
143  void createParticle(boost::python::object &particle);
144 
145  void createConnections(boost::python::object &iterable);
146 
147  // --- interaction creation functions ---
149  void createNRotBondInteractGrp(const NRotBondPrmsPy &bondPrms);
153  void createRotBondInteractGrp(const RotBondPrmsPy &bondPrms);
155  void createBrittleBeamInteractGrp(const BrittleBeamPrmsPy &bondPrms);
156  void createFrictionInteractGrp(const FrictionPrmsPy &prms);
161  void createDamping(const DampingPrmsPy &prms);
162  void createLocalDamping(const LocalDampingPrmsPy &prms);
164  void createABCDamping(const ABCDampingPrmsPy &prms);
165  void createGravity(const GravityPrmsPy&);
166  void createBuoyancy(const BuoyancyPrmsPy&);
171  void createLinearDashpotIG(const LinearDashpotPrmsPy &prms);
172 
173 
174  // --- remove interactions ---
175  void removeInteractionGrp(const std::string&);
176 
177  // --- tagged interaction creation functions ---
178  void createRotFrictionInteractGrpTag(const RotFrictionPrmsPy &prms,int,int,int,int);
179  void createNRotFrictionInteractGrpTag(const NRotFrictionPrmsPy &prms,int,int,int,int);
180  void createLinearDashpotInteractGrpTag(const LinearDashpotPrmsPy &prms,int,int,int,int);
181  void createRotElasticInteractGrpTag(const RotElasticPrmsPy &prms,int,int,int,int);
182  void createElasticInteractGrpTag(const NRotElasticPrmsPy &prms,int,int,int,int);
183 
184 
185  void createExclusion(
186  const std::string &interactionName1,
187  const std::string &interactionName2
188  );
189 
190 
191  // --- particle property setting functions ---
192  void setParticleVel(int,const Vec3Py&);
193  void setParticleAngVel(int,const Vec3Py&);
194  void setParticleDensity(int,int,double);
195  void setTaggedParticleVel(int,const Vec3Py&);
196  void setVelocityOfWall(const std::string&,const Vec3Py&);
197  void tagParticleNearestTo(int,int,const Vec3Py&);
198  void setParticleNonDynamic(int);
199  void setParticleNonRot(int);
200  void setParticleNonTrans(int);
201 
202  // ---- checkpointing -----------
204  void createCheckPointerThroughMaster(const RestartCheckPointPrmsPy &prms); // write through master
205  void createSnapShots(const CheckPointPrmsPy &prms);
206  void loadCheckPoint(const std::string&);
207 
208  // ------------------------------
209  int getNumTimeSteps() const;
210 
211  void setNumTimeSteps(int numTimeSteps);
212 
213  // --- Mesh functions ---
214 
215  void readMeshWithTag(const std::string &fileName, const std::string &meshName, int tag);
216  void readMesh(const std::string &fileName, const std::string &meshName);
217  void createTriMesh(
218  const std::string &meshName,
219  const boost::python::object &nodeSequence,
220  const boost::python::object &triSequence
221  );
222  void translateMesh(const std::string&,const Vec3Py&);
223  void readMesh2D(const std::string &fileName, const std::string &meshName, int tag);
224 
226 
231 
232  void moveSingleMeshNodeBy(const std::string& meshname, int id, const Vec3Py& d);
233 
234  void addPreTimeStepRunnable(RunnablePy &runnable);
235 
236  void addPostTimeStepRunnable(RunnablePy &runnable);
237 
238  void force2dComputations(bool do2d);
239 
240  void setBBoxSpatialDomain(const BoundingBoxPy &domain);
241 
243  const BoundingBoxPy &domain,
244  const boost::python::list &circDimList
245  );
246 
247  void setSpatialDomain(const Vec3Py &minPt, const Vec3Py &maxPt);
248 
249  void getInitMinMaxPt(Vec3Py &initMinPt, Vec3Py &initMaxPt);
250 
251  void getCurMinMaxPt(Vec3Py &curMinPt, Vec3Py &curMaxPt);
252 
253  int findClosestParticle(const Vec3Py &pt);
254 
255  Vec3Py getParticlePosn(int particleId);
256 
257  // --- move particles ---
258  void moveTaggedParticlesTo(int tag, const Vec3Py &pt);
259  void moveTaggedParticlesBy(int tag, const Vec3Py &displacement);
260  void moveSingleParticleTo(int particleId, const Vec3Py &pt);
261 
262  // --- wall related functions ---
263  void createWall(const string &name, const Vec3Py &posn, const Vec3Py &normal);
264  void createSphereBody(const string &name, const Vec3Py &posn, const double &radius);
265  void createNRotBondedWall(const NRotBondedWallPrmsPy &prms);
269  void createNRotElasticWallTagged(const NRotElasticWallPrmsPy &prms, int tag, int mask);
270  void moveWallBy(const string&, const Vec3Py &disp);
271  void moveSphereBodyBy(const string&, const Vec3Py &disp);
272  void setWallNormal(const string&, const Vec3Py &wn);
273  void applyForceToWall(const string&, const Vec3Py&);
274  Vec3Py getWallPosition(const std::string&);
275  Vec3Py getWallForce(const std::string&);
276  Vec3Py getSphereBodyPosition(const std::string&);
277  Vec3Py getSphereBodyForce(const std::string&);
278 
279 
280  void runTimeStep();
281  void run();
282 
283  // Exit the simulation after running a series of single steps
284  // of the time-integration method.
285  void exit();
286 
287  // --- console related functions ---
288  void SetVerbosityPy(bool);
289  void SetVerbosityLevelPy(int);
290  void SetConsoleFilenamePy(const std::string&);
291  void SetConsoleBufferedPy(unsigned int);
292 
293  // --- field saving functions ---
296  );
297 
303 
307 
308  void addTaggedScalarParticleDistributionSaver(const string&,const string&,const string&,int,int,int,int,int,int,double,double,int);
312 
313  // --- fields with trigger ---
316 
317  void visitNodeRefs2d(const std::string &meshName, boost::python::object pyObject);
318 
319  void visitRefStressPairs2d(const std::string &meshName, boost::python::object pyObject);
320 
321  void visitRefForcePairs(const std::string &meshName, boost::python::object pyObject);
322 
324  const boost::python::list &idList,
325  boost::python::object &pyObject
326  );
327 
328  void visitParticles(
329  boost::python::object &pyObject
330  );
331 
332  boost::python::list getParticleList();
333 
334  boost::python::list getParticleWithIdList(
335  const boost::python::list &idList
336  );
337 
338  void createBonds(
339  const std::string &groupName,
340  const ParticleIdPairVector &idPairVector
341  );
342 
343  void updateInteractions();
344 
345  ParticleIdPairVector getBondGroupIdPairs(
346  const std::string &groupName
347  );
348  void setVerbosityPy(int);
349 
350 
351  protected:
352  typedef std::map<std::string, std::string> InteractionNameTypeMap;
353 
354  InteractionNameTypeMap &getNameTypeMap();
355  const InteractionNameTypeMap &getNameTypeMap() const;
356 
357  const CLatticeMaster &getLatticeMaster() const;
358 
360 
361  private:
362  class Impl;
363  typedef boost::shared_ptr<Impl> ImplPtr;
364  ImplPtr m_implPtr;
365  };
366 
367 
368  void setVerbosityPy(bool);
369  void setVerbosityLevelPy(int);
370  }
371 }
372 #endif
373 
class for bonded Mesh2D interactions in python interface
Definition: BondedMesh2DPrmsPy.h:29
void setNumTimeSteps(int numTimeSteps)
Definition: LsmMpiPy.cpp:727
Vec3Py getSphereBodyForce(const std::string &)
Definition: LsmMpiPy.cpp:1049
wrapper for CRotBondedIGP
Definition: InteractionParamsPy.h:267
void createInteractionVectorFieldSaver(const InteractionVectorFieldSaverPrmsPy &)
Definition: LsmMpiPy.cpp:1229
wrapper for CBondedIGP
Definition: InteractionParamsPy.h:146
void setVerbosityPy(bool verbose)
Definition: LsmMpiPy.cpp:1479
wrapper for CRotElasticIGP
Definition: InteractionParamsPy.h:458
void createRotFrictionInteractGrpTag(const RotFrictionPrmsPy &prms, int, int, int, int)
Definition: LsmMpiPy.cpp:613
Definition: InteractionFieldSaverPrmsPy.h:50
void setSpatialDomain(const Vec3Py &minPt, const Vec3Py &maxPt)
Definition: LsmMpiPy.cpp:930
Vec3Py getParticlePosn(int particleId)
Definition: LsmMpiPy.cpp:940
wrapper for CBWallIGP
Definition: WallPrmsPy.h:57
void createNRotElasticLinMeshInteractGrp(const NRotElasticLinMeshPrmsPy &prms)
Definition: LsmMpiPy.cpp:847
Definition: WallFieldSaverPrmsPy.h:77
void createNRotElasticInteractGrp(const NRotElasticPrmsPy &prms)
Definition: LsmMpiPy.cpp:378
Definition: ParticleFieldSaverPrmsPy.h:92
void visitNodeRefs2d(const std::string &meshName, boost::python::object pyObject)
Definition: LsmMpiPy.cpp:1529
void createNRotElasticWallTagged(const NRotElasticWallPrmsPy &prms, int tag, int mask)
Definition: LsmMpiPy.cpp:1024
void visitRefForcePairs(const std::string &meshName, boost::python::object pyObject)
void createFrictionInteractGrp(const FrictionPrmsPy &prms)
Definition: LsmMpiPy.cpp:517
wrapper for CESphereBodyIGP
Definition: SphereBodyPrmsPy.h:38
void createNRotElasticSphereBody(const NRotElasticSphereBodyPrmsPy &prms)
Definition: LsmMpiPy.cpp:1011
void addPostTimeStepRunnable(RunnablePy &runnable)
Definition: LsmMpiPy.cpp:883
CLatticeMaster::MeshNodeDataVector MeshNodeDataVector
Definition: LsmMpiPy.h:105
void createCheckPointerThroughMaster(const RestartCheckPointPrmsPy &prms)
Definition: LsmMpiPy.cpp:695
void setSlaveTimingFileName(const std::string &fileNamePrefix)
Definition: LsmMpiPy.cpp:277
Definition: InteractionFieldSaverPrmsPy.h:101
Definition: InteractionFieldSaverPrmsPy.h:64
std::string getParticleType() const
Definition: LsmMpiPy.cpp:340
void tagParticleNearestTo(int, int, const Vec3Py &)
Definition: LsmMpiPy.cpp:1080
Definition: InteractionParamsPy.h:531
wrapper for CEWallIGP
Definition: WallPrmsPy.h:40
int findClosestParticle(const Vec3Py &pt)
Definition: LsmMpiPy.cpp:935
ImplPtr m_implPtr
Definition: LsmMpiPy.h:364
$Revision$ $Date$
Definition: CheckPointParamsPy.h:34
wrapper for CRotThermFrictionIGP
Definition: InteractionParamsPy.h:491
void force2dComputations(bool do2d)
Definition: LsmMpiPy.cpp:905
Definition: ParticleFieldSaverPrmsPy.h:70
class for elastic triangular mesh interactions in python interface
Definition: ElasticTriMeshPrmsPy.h:30
Definition: ParticleFieldSaverPrmsPy.h:57
void setParticleNonRot(int)
Definition: LsmMpiPy.cpp:1090
Definition: BondInteractionGroupPy.h:36
void createNRotShortBondInteractGrp(const NRotShortBondPrmsPy &bondPrms)
Definition: LsmMpiPy.cpp:443
void createDamping(const DampingPrmsPy &prms)
Definition: LsmMpiPy.cpp:566
std::pair< MeshNodeDataVector, MeshTriDataVector > TriMeshDataPair
Definition: LatticeMaster.h:126
void addVectorWallField(const WallVectorFieldSaverPrmsPy &prms)
Definition: LsmMpiPy.cpp:1363
void setParticleDensity(int, int, double)
Definition: LsmMpiPy.cpp:1065
void setVerbosityLevelPy(int verbose)
Definition: LsmMpiPy.cpp:1492
std::vector< ParticleIdPair > ParticleIdPairVector
Definition: LatticeMaster.h:123
std::vector< MeshTriData > MeshTriDataVector
Definition: LatticeMaster.h:125
void createNRotFrictionInteractGrpTag(const NRotFrictionPrmsPy &prms, int, int, int, int)
Definition: LsmMpiPy.cpp:625
wrapper for CRotFrictionIGP
Definition: InteractionParamsPy.h:377
wrapper for CDampingIGP
Definition: InteractionParamsPy.h:66
void SetVerbosityLevelPy(int)
Definition: LsmMpiPy.cpp:1441
void exportLsm()
Definition: LsmMpiPy.cpp:1751
wrapper for CLinearDashpotIGP
Definition: InteractionParamsPy.h:234
Definition: CheckPointable.cpp:16
Definition: InteractionParamsPy.h:544
void setParticleVel(int, const Vec3Py &)
Definition: LsmMpiPy.cpp:1055
void createTaggedInteractionScalarFieldSaver(const TaggedInteractionScalarFieldSaverPrmsPy &)
Definition: LsmMpiPy.cpp:1193
void createLinearDashpotIG(const LinearDashpotPrmsPy &prms)
Definition: LsmMpiPy.cpp:413
Class for elastic piece-wise linear mesh interactions in the python interface.
Definition: ElasticMesh2DPrmsPy.h:43
void moveSingleParticleTo(int particleId, const Vec3Py &pt)
Definition: LsmMpiPy.cpp:958
wrapper for CRotThermElasticIGP
Definition: InteractionParamsPy.h:477
wrapper for CRotThermBondedIGP
Definition: InteractionParamsPy.h:508
void addTaggedScalarParticleDistributionSaver(const string &, const string &, const string &, int, int, int, int, int, int, double, double, int)
Definition: LsmMpiPy.cpp:1319
void setWallNormal(const string &, const Vec3Py &wn)
Definition: LsmMpiPy.cpp:992
void readGeometry(const std::string &fileName)
Definition: LsmMpiPy.cpp:361
wrapper for CHertzianViscoElasticIGP
Definition: InteractionParamsPy.h:224
InteractionNameTypeMap & getNameTypeMap()
Definition: LsmMpiPy.cpp:210
void createHertzianViscoElasticFrictionIG(const HertzianViscoElasticFrictionPrmsPy &prms)
Definition: LsmMpiPy.cpp:394
LsmMpiPy(int numWorkerProcesses, const boost::python::list &mpiDimList)
Definition: LsmMpiPy.cpp:194
Definition: RunnablePy.h:22
void setTimeStepSize(double dt)
Definition: LsmMpiPy.cpp:262
void checkMpiDimensions(int numProcesses, const std::vector< int > &mpiDimVector)
Definition: LsmMpiPy.cpp:116
void exit()
Definition: LsmMpiPy.cpp:900
void createInteractionScalarFieldSaver(const InteractionScalarFieldSaverPrmsPy &prms)
Definition: LsmMpiPy.cpp:1130
void createNRotFrictionInteractGrp(const NRotFrictionPrmsPy &prms)
Definition: LsmMpiPy.cpp:456
void createRotElasticInteractGrpTag(const RotElasticPrmsPy &prms, int, int, int, int)
Definition: LsmMpiPy.cpp:657
void moveTaggedParticlesTo(int tag, const Vec3Py &pt)
Definition: LsmMpiPy.cpp:948
wrapper for CRotBondedIGP
Definition: InteractionParamsPy.h:309
Definition: BoundingBoxPy.h:29
void createNRotElasticMesh2DInteractGrp(const NRotElasticMesh2DPrmsPy &prms)
Definition: LsmMpiPy.cpp:840
void getInitMinMaxPt(Vec3Py &initMinPt, Vec3Py &initMaxPt)
Definition: LsmMpiPy.cpp:1719
void createNRotElasticTriMeshInteractGrp(const NRotElasticTriMeshPrmsPy &prms)
Definition: LsmMpiPy.cpp:818
void createTaggedParticleVectorFieldSaver(const TaggedParticleVectorFieldSaverPrmsPy &)
Definition: LsmMpiPy.cpp:1306
const CLatticeMaster & getLatticeMaster() const
Definition: LsmMpiPy.cpp:1465
void SetConsoleFilenamePy(const std::string &)
Definition: LsmMpiPy.cpp:1449
CLatticeMaster::ParticleIdPairVector ParticleIdPairVector
Definition: LsmMpiPy.h:104
void createWall(const string &name, const Vec3Py &posn, const Vec3Py &normal)
Definition: LsmMpiPy.cpp:966
class for bonded TriMesh interactions in python interface
Definition: BondedTriMeshPrmsPy.h:36
void createParticles(boost::python::object &iterable)
Definition: LsmMpiPy.cpp:288
void visitParticles(boost::python::object &pyObject)
wrapper for CFrictionIGP
Definition: InteractionParamsPy.h:244
CLatticeMaster::MeshTriDataVector MeshTriDataVector
Definition: LsmMpiPy.h:106
void createRotBondInteractGrp(const RotBondPrmsPy &bondPrms)
Definition: LsmMpiPy.cpp:467
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
void createNRotBondInteractGrp(const NRotBondPrmsPy &bondPrms)
Definition: LsmMpiPy.cpp:421
void checkParticleType(const std::string &particleType)
void createHertzianElasticIG(const HertzianElasticPrmsPy &prms)
Definition: LsmMpiPy.cpp:386
wrapper for CCappedBondedIGP
Definition: InteractionParamsPy.h:157
std::map< std::string, std::string > InteractionNameTypeMap
Definition: LsmMpiPy.h:352
void createCheckPointer(const RestartCheckPointPrmsPy &prms)
Definition: LsmMpiPy.cpp:684
virtual ~LsmMpiPy()
Definition: LsmMpiPy.cpp:206
Vec3Py getSphereBodyPosition(const std::string &)
Definition: LsmMpiPy.cpp:1039
wrapper for CElasticIGP
Definition: InteractionParamsPy.h:177
void loadCheckPoint(const std::string &)
Definition: LsmMpiPy.cpp:717
void createNRotBondedLinMeshInteractGrp(const NRotBondedLinMeshPrmsPy &prms)
Definition: LsmMpiPy.cpp:854
void translateMesh(const std::string &, const Vec3Py &)
Definition: LsmMpiPy.cpp:810
void setBBoxSpatialDomain(const BoundingBoxPy &domain)
Definition: LsmMpiPy.cpp:910
void createRotLocalDamping(const RotLocalDampingPrmsPy &prms)
Definition: LsmMpiPy.cpp:580
class for elastic 2D mesh interactions in python interface. Deprecated: use NRotElasticLinMeshPrmsPy...
Definition: ElasticMesh2DPrmsPy.h:29
void createCheckedInteractionVectorFieldSaver(const CheckedInteractionVectorFieldSaverPrmsPy &prms)
Definition: LsmMpiPy.cpp:1261
void createNRotBondedWall(const NRotBondedWallPrmsPy &prms)
Definition: LsmMpiPy.cpp:997
void SetConsoleBufferedPy(unsigned int)
Definition: LsmMpiPy.cpp:1458
void createRotThermFrictionInteractGrp(const RotThermFrictionPrmsPy &prms)
Definition: LsmMpiPy.cpp:535
void createNRotSoftBondedWall(const NRotSoftBondedWallPrmsPy &prms)
Definition: LsmMpiPy.cpp:1018
void setParticleNonTrans(int)
Definition: LsmMpiPy.cpp:1095
void readMesh(const std::string &fileName, const std::string &meshName)
Definition: LsmMpiPy.cpp:746
boost::python::list getParticleList()
Definition: LsmMpiPy.cpp:1697
void setVerbosityPy(int)
CLatticeMaster::ParticleIdPair ParticleIdPair
Definition: LsmMpiPy.h:103
boost::python::list getParticleWithIdList(const boost::python::list &idList)
Definition: LsmMpiPy.cpp:1707
Definition: TriggerPrmsPy.h:29
void createTriMesh(const std::string &meshName, const boost::python::object &nodeSequence, const boost::python::object &triSequence)
Definition: LsmMpiPy.cpp:754
void createGravity(const GravityPrmsPy &)
Definition: LsmMpiPy.cpp:594
Definition: ParticleFieldSaverPrmsPy.h:44
void createLinearDashpotInteractGrpTag(const LinearDashpotPrmsPy &prms, int, int, int, int)
Definition: LsmMpiPy.cpp:637
wrapper for CHertzianElasticIGP
Definition: InteractionParamsPy.h:196
void createBonds(const std::string &groupName, const ParticleIdPairVector &idPairVector)
Definition: LsmMpiPy.cpp:1732
Parameter class for restart checkpointers, differs from CheckPointPrmsPy by having an additional "bin...
Definition: CheckPointParamsPy.h:58
Definition: Vec3Py.h:28
void addPreTimeStepRunnable(RunnablePy &runnable)
Definition: LsmMpiPy.cpp:878
Vec3Py getWallForce(const std::string &)
Definition: LsmMpiPy.cpp:1044
void updateInteractions()
Definition: LsmMpiPy.cpp:1544
Definition: InteractionFieldSaverPrmsPy.h:115
wrapper for CRotFrictionIGP
Definition: InteractionParamsPy.h:412
void createTaggedParticleVectorFieldSaverWithTrigger(const MaxTriggerPrmsPy &, const TaggedParticleVectorFieldSaverPrmsPy &)
Definition: LsmMpiPy.cpp:1403
void createABCDamping(const ABCDampingPrmsPy &prms)
Definition: LsmMpiPy.cpp:587
Wrapper to make LatticeMaster methods available in Python.
Definition: LsmMpiPy.h:100
wrapper for CSoftBWallIGP
Definition: WallPrmsPy.h:73
void createRotElasticInteractGrp(const RotElasticPrmsPy &prms)
Definition: LsmMpiPy.cpp:552
CLatticeMaster::TriMeshDataPair TriMeshDataPair
Definition: LsmMpiPy.h:107
void setTaggedParticleVel(int, const Vec3Py &)
Definition: LsmMpiPy.cpp:1070
void applyForceToWall(const string &, const Vec3Py &)
Definition: LsmMpiPy.cpp:1029
void createVWFrictionIG(const VWFrictionPrmsPy &)
Definition: LsmMpiPy.cpp:543
int getNumParticles()
Definition: LsmMpiPy.cpp:366
void addVectorTriangleSaveField(const TriangleVectorFieldSaverPrmsPy &)
Definition: LsmMpiPy.cpp:1334
void moveSingleMeshNodeBy(const std::string &meshname, int id, const Vec3Py &d)
Definition: LsmMpiPy.cpp:869
wrapper for ABCDampingIGP
Definition: InteractionParamsPy.h:127
std::pair< int, int > ParticleIdPair
Definition: LatticeMaster.h:122
void setBBoxSpatialDomainWithCirc(const BoundingBoxPy &domain, const boost::python::list &circDimList)
Definition: LsmMpiPy.cpp:918
void moveWallBy(const string &, const Vec3Py &disp)
Definition: LsmMpiPy.cpp:982
void visitParticlesWithId(const boost::python::list &idList, boost::python::object &pyObject)
Definition: LsmMpiPy.cpp:1685
Definition: TriangleFieldSaverPrmsPy.h:26
void createHertzianViscoElasticIG(const HertzianViscoElasticPrmsPy &prms)
Definition: LsmMpiPy.cpp:405
int getTimeStep() const
Definition: LsmMpiPy.cpp:371
void moveSphereBodyBy(const string &, const Vec3Py &disp)
Definition: LsmMpiPy.cpp:987
void setTimingFileName(const std::string &fileNamePrefix)
Definition: LsmMpiPy.cpp:272
void createParticleScalarFieldSaver(const ParticleScalarFieldSaverPrmsPy &prms)
Definition: LsmMpiPy.cpp:1104
wrapper for CLocalDampingIGP
Definition: InteractionParamsPy.h:101
void readMesh2D(const std::string &fileName, const std::string &meshName, int tag)
Definition: LsmMpiPy.cpp:801
void createRotThermElasticInteractGrp(const RotThermElasticPrmsPy &prms)
Definition: LsmMpiPy.cpp:558
void createParticleVectorFieldSaver(const ParticleVectorFieldSaverPrmsPy &)
Definition: LsmMpiPy.cpp:1118
void createLocalDamping(const LocalDampingPrmsPy &prms)
Definition: LsmMpiPy.cpp:573
void createCheckedInteractionScalarFieldSaver(const CheckedInteractionScalarFieldSaverPrmsPy &prms)
Definition: LsmMpiPy.cpp:1161
void createExclusion(const std::string &interactionName1, const std::string &interactionName2)
Definition: LsmMpiPy.cpp:674
void createBuoyancy(const BuoyancyPrmsPy &)
Definition: LsmMpiPy.cpp:599
wrapper for CHertzianViscoElasticFrictionIGP
Definition: InteractionParamsPy.h:206
void createNRotBondedTriMeshInteractGrp(const NRotBondedTriMeshPrmsPy &prms)
Definition: LsmMpiPy.cpp:825
Definition: LatticeMaster.h:118
void readMeshWithTag(const std::string &fileName, const std::string &meshName, int tag)
Definition: LsmMpiPy.cpp:738
std::string getLsmVersion() const
Definition: LsmMpiPy.cpp:267
double getTimeStepSize() const
Definition: LsmMpiPy.cpp:257
void createCappedNRotBondInteractGrp(const CappedNRotBondPrmsPy &bondPrms)
Definition: LsmMpiPy.cpp:429
void getCurMinMaxPt(Vec3Py &curMinPt, Vec3Py &curMaxPt)
Definition: LsmMpiPy.cpp:1724
std::vector< MeshNodeData > MeshNodeDataVector
Definition: LatticeMaster.h:124
void createBrittleBeamInteractGrp(const BrittleBeamPrmsPy &bondPrms)
Definition: LsmMpiPy.cpp:497
void checkMpiDimensionsPy(int numWorkerProcesses, const boost::python::list &mpiDimList)
Definition: LsmMpiPy.cpp:186
void createSnapShots(const CheckPointPrmsPy &prms)
Definition: LsmMpiPy.cpp:707
void moveTaggedParticlesBy(int tag, const Vec3Py &displacement)
Definition: LsmMpiPy.cpp:953
void createParticleVectorFieldSaverWithTrigger(const MaxTriggerPrmsPy &, const ParticleVectorFieldSaverPrmsPy &)
Definition: LsmMpiPy.cpp:1383
void removeInteractionGrp(const std::string &)
Definition: LsmMpiPy.cpp:604
Definition: TriangleFieldSaverPrmsPy.h:37
Definition: InteractionFieldSaverPrmsPy.h:78
void setVelocityOfWall(const std::string &, const Vec3Py &)
Definition: LsmMpiPy.cpp:1075
void setParticleNonDynamic(int)
Definition: LsmMpiPy.cpp:1085
ParticleIdPairVector getBondGroupIdPairs(const std::string &groupName)
Definition: LsmMpiPy.cpp:1741
void createSphereBody(const string &name, const Vec3Py &posn, const double &radius)
Definition: LsmMpiPy.cpp:974
void runTimeStep()
Definition: LsmMpiPy.cpp:888
void addScalarTriangleSaveField(const TriangleScalarFieldSaverPrmsPy &)
Definition: LsmMpiPy.cpp:1347
void initVerletModel(const std::string &particleType, double gridSpacing, double verletDist)
Definition: LsmMpiPy.cpp:225
void createParticle(boost::python::object &particle)
Definition: LsmMpiPy.cpp:333
void createConnections(boost::python::object &iterable)
Definition: LsmMpiPy.cpp:282
void run()
Definition: LsmMpiPy.cpp:893
void SetVerbosityPy(bool)
Definition: LsmMpiPy.cpp:1428
int getNumWorkerProcesses() const
Definition: LsmMpiPy.cpp:220
void createNRotElasticWall(const NRotElasticWallPrmsPy &prms)
Definition: LsmMpiPy.cpp:1004
boost::shared_ptr< Impl > ImplPtr
Definition: LsmMpiPy.h:362
void createTaggedParticleScalarFieldSaver(const TaggedParticleScalarFieldSaverPrmsPy &)
Definition: LsmMpiPy.cpp:1293
void setParticleAngVel(int, const Vec3Py &)
Definition: LsmMpiPy.cpp:1060
BondInteractionGroupPy createRotThermBondInteractGrp(const RotThermBondPrmsPy &bondPrms)
Definition: LsmMpiPy.cpp:487
void createRotFrictionInteractGrp(const RotFrictionPrmsPy &prms)
Definition: LsmMpiPy.cpp:526
Vec3Py getWallPosition(const std::string &)
Definition: LsmMpiPy.cpp:1034
void visitRefStressPairs2d(const std::string &meshName, boost::python::object pyObject)
Definition: LsmMpiPy.cpp:1535
Definition: LsmMpiPy.cpp:61
void createElasticInteractGrpTag(const NRotElasticPrmsPy &prms, int, int, int, int)
Definition: LsmMpiPy.cpp:647
int getNumTimeSteps() const
Definition: LsmMpiPy.cpp:722