ESyS-Particle  4.0.1
mesh2d_pis_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 #ifndef __MESH2D_PIS_NE_H
13 #define __MESH2D_PIS_NE_H
14 
15 // --- project includes ---
16 #include "pis/mesh2d_pis.h"
17 
28 template<class ParticleType,class IType>
29 class Mesh2D_PIS_NE : public Mesh2D_PIS<ParticleType>
30 {
31  protected:
32  typename IType::ParameterType m_param;
33 
34  set<pair<int,int> > m_edge_int_set; // for isIn
35  set<pair<int,int> > m_corner_int_set; // for isIn
36  vector<typename IType::EdgeIntType> m_edge_interactions;
37  vector<typename IType::CornerIntType> m_corner_interactions;
38 
39  public:
40  Mesh2D_PIS_NE(Mesh2D*,ParallelParticleArray<ParticleType>*,typename IType::ParameterType);
42 
43  virtual bool isIn(const vector<int>&);
44 
48  virtual void setTimeStepSize(double dt)
49  {
50  }
51 
52  virtual void calcForces();
53  virtual bool update();
54  virtual void exchange(){};
55  virtual void rebuild(){};
56  virtual void tryInsert(const vector<int>&){};
57 };
58 
59 #include "mesh2d_pis_ne.hpp"
60 
61 #endif // __MESH2D_PIS_NE_H