13 #ifndef __SUBLATTICE_H
14 #define __SUBLATTICE_H
18 #include "Parallel/mpibuf.h"
19 #include "Parallel/mpivbuf.h"
20 #include "Parallel/ASubLattice.h"
21 #include "Parallel/LatticeParam.h"
23 #include "Foundation/Timer.h"
25 #include "Model/TriMesh.h"
26 #include "Model/Mesh2D.h"
29 #include "Model/Interaction.h"
30 #include "Model/EWallInteractionGroup.h"
31 #include "Model/BWallInteractionGroup.h"
32 #include "Model/ViscWallIG.h"
33 #include "Model/SoftBWallInteractionGroup.h"
35 #include "Model/RotBondedInteraction.h"
36 #include "Model/RotElasticInteraction.h"
37 #include "Model/RotFricInteraction.h"
40 #include "Fields/FieldSlave.h"
41 #include "Fields/ScalarParticleFieldSlave.h"
42 #include "Fields/VectorParticleFieldSlave.h"
43 #include "Fields/ScalarInteractionFieldSlave.h"
46 #include "tml/comm/comm.h"
47 #include "tml/comm/comm_world.h"
76 map<string,AParallelInteractionStorage*> m_dpis;
77 map<string,AParallelInteractionStorage*>
m_bpis;
84 map<string,AWallInteractionGroup<T>*> m_WIG;
85 map<string,CWall*> m_walls;
86 map<string,TriMesh*> m_mesh;
87 map<string,Mesh2D*> m_mesh2d;
98 map<int, vector<int> > m_temp_conn;
111 esys::lsm::CLatticeParam::ProcessDims
m_dims;
122 map<int,AFieldSlave*> m_field_slaves;
132 void thermExpansion();
134 void calcHeatTrans();
146 virtual vector<int> getCommCoords()
const {
return m_ppa->getCommCoords();};
147 virtual vector<int> getCommDims()
const {
return m_ppa->getCommDims();};
152 virtual const MPI_Comm &getWorkerComm()
const {
return m_worker_comm;}
173 virtual void addRotBondedIG();
174 virtual void addRotThermBondedIG();
184 void setTimeStep(
double dt){m_dt=dt;};
193 virtual void do2dCalculations(
bool do2d);
194 virtual int getNumParticles();
196 std::pair<double, int> findParticleNearestTo(
const Vec3 &pt);
204 template <
typename TmplPis>
205 ParticleIdPairVector getBondGroupIdPairs(TmplPis *pBondPis);
209 virtual void moveSingleParticleTo(
int particleId,
const Vec3 &posn);
229 virtual void printData();
230 virtual void printTimes();
245 virtual void loadCheckPointData(std::istream &iStream);
248 virtual void setTimer(
MpiWTimers &timers) {m_pTimers = &timers;}
258 #include "Parallel/SubLattice.hpp"