ESyS-Particle  4.0.1
pi_storage_ne.h
1 
2 // //
3 // Copyright (c) 2003-2011 by The University of Queensland //
4 // Earth Systems Science Computational Centre (ESSCC) //
5 // http://www.uq.edu.au/esscc //
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 __PARALLEL_INTERACTION_STORAGE_NE_H
14 #define __PARALLEL_INTERACTION_STORAGE_NE_H
15 
16 //--- project includes ---
17 #include "pis/pi_storage.h"
18 
19 //--- STL includes ---
20 #include <vector>
21 
22 //--- IO includes ---
23 
27 template<typename P,typename I>
29 {
30  protected:
31  int m_update_timestamp;
32  AParallelInteractionStorage* m_exIG; //<! if an interaction is in m_exIG, it can't be in m_interactions
33  set<pair<int,int> > m_set; // evil hack, should be vector<int>, not pair<int,int>
34  typename I::ParameterType m_param;
35 
36  public:
37  ParallelInteractionStorage_NE(AParallelParticleArray*,const typename I::ParameterType&);
38 
39  virtual void addExIG(AParallelInteractionStorage*);
40  virtual bool update();
41  virtual void exchange(){};
42  virtual void rebuild(){};
43  virtual void tryInsert(const vector<int>&){};
44  virtual bool isIn(const vector<int>&);
45  virtual void calcForces();
46  virtual void setTimeStepSize(double dt)
47  {
48  }
49  virtual void calcHeatTrans();
50 };
51 
52 #include "pis/pi_storage_ne.hpp"
53 
54 #endif // __PARALLEL_INTERACTION_STORAGE_NE_H