13 #ifndef __PARALLEL_INTERACTION_STORAGE_H
14 #define __PARALLEL_INTERACTION_STORAGE_H
30 #include "Foundation/vec3.h"
31 #include "Foundation/quintuple.h"
32 #include "Foundation/triplet.h"
33 #include "Parallel/CheckPointable.h"
34 #include "tml/comm/comm.h"
53 virtual void exchange()=0;
54 virtual void rebuild()=0;
55 virtual bool update()=0;
57 virtual bool isIn(
const vector<int>&)=0;
58 virtual void calcForces()=0;
59 virtual void calcHeatFrict() {}
60 virtual void calcHeatTrans() {}
61 virtual void setTimeStepSize(
double dt)=0;
63 virtual AFieldSlave* generateNewScalarFieldSlave(
TML_Comm*,
const string&,
int,
int,
int,
int)=0;
64 virtual AFieldSlave* generateNewVectorFieldSlave(
TML_Comm*,
const string&,
int,
int,
int,
int)=0;
66 virtual void saveCheckPointData(std::ostream &oStream)
68 throw std::runtime_error(
"saveCheckPointData not implemented in subclass.");
71 virtual void loadCheckPointData(std::istream &iStream)
73 throw std::runtime_error(
"loadCheckPointData not implemented in subclass.");
76 virtual void saveSnapShotData(std::ostream&)
78 throw std::runtime_error(
" saveSnapShotData not implemented in subclass.");
81 virtual bool willSave(){
return false;};
93 typedef I interaction_type;
96 list<I> m_interactions;
104 typedef I Interaction;
105 typedef typename list<I>::iterator Iterator;
113 int getNumRemaining();
116 bool isInner(
const Iterator &it);
149 #include "pis/pi_storage.hpp"
151 #endif //__PARALLEL_INTERACTION_STORAGE_H