ESyS-Particle  2.3.4
trimesh_pis_ne.h
Go to the documentation of this file.
1 // //
3 // Copyright (c) 2003-2017 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.apache.org/licenses/LICENSE-2.0 //
10 // //
12 
13 #ifndef __TRIMESH_PIS_NE_H
14 #define __TRIMESH_PIS_NE_H
15 
16 // --- project includes ---
17 #include "pis/trimesh_pis.h"
18 
29 template<class ParticleType,class IType>
30 class TriMesh_PIS_NE : public TriMesh_PIS<ParticleType>
31 {
32  protected:
33  typename IType::ParameterType m_param;
34 
35  set<pair<int,int> > m_tri_int_set; // for isIn
36  set<pair<int,int> > m_edge_int_set; // for isIn
37  set<pair<int,int> > m_corner_int_set; // for isIn
38  vector<typename IType::TriIntType> m_triangle_interactions;
39  vector<typename IType::EdgeIntType> m_edge_interactions;
40  vector<typename IType::CornerIntType> m_corner_interactions;
41 
42  public:
43  TriMesh_PIS_NE(TriMesh*,ParallelParticleArray<ParticleType>*,typename IType::ParameterType);
45 
46  virtual bool isIn(const vector<int>&);
47 
51  virtual void setTimeStepSize(double dt)
52  {
53  }
54 
55  virtual void calcForces();
56  virtual bool update();
57  virtual void exchange(){};
58  virtual void rebuild(){};
59  virtual void tryInsert(const vector<int>&){};
60 };
61 
62 #include "trimesh_pis_ne.hpp"
63 
64 #endif // __TRIMESH_PIS_NE_H
TriMesh_PIS_NE::m_tri_int_set
set< pair< int, int > > m_tri_int_set
Definition: trimesh_pis_ne.h:35
TriMesh_PIS_NE::calcForces
virtual void calcForces()
Definition: trimesh_pis_ne.hpp:69
TriMesh_PIS
Abstract base class for parallel storage of interactions between a triangle mesh and particles.
Definition: trimesh_pis.h:29
TriMesh_PIS_NE::m_corner_int_set
set< pair< int, int > > m_corner_int_set
Definition: trimesh_pis_ne.h:37
TriMesh_PIS_NE
Class for parallel storage of interactions between a triangle mesh and particles which doesn't requir...
Definition: trimesh_pis_ne.h:31
TriMesh_PIS_NE::m_corner_interactions
vector< typename IType::CornerIntType > m_corner_interactions
Definition: trimesh_pis_ne.h:40
trimesh_pis.h
TriMesh_PIS_NE::update
virtual bool update()
Definition: trimesh_pis_ne.hpp:99
TriMesh_PIS_NE::setTimeStepSize
virtual void setTimeStepSize(double dt)
Definition: trimesh_pis_ne.h:51
TriMesh_PIS_NE::m_param
IType::ParameterType m_param
Definition: trimesh_pis_ne.h:33
TriMesh_PIS_NE::isIn
virtual bool isIn(const vector< int > &)
Definition: trimesh_pis_ne.hpp:47
ParallelParticleArray
parrallel particle storage array with neighborsearch and variable exchange
Definition: pp_array.h:75
TriMesh_PIS_NE::exchange
virtual void exchange()
Definition: trimesh_pis_ne.h:57
TriMesh_PIS_NE::m_edge_int_set
set< pair< int, int > > m_edge_int_set
Definition: trimesh_pis_ne.h:36
TriMesh_PIS_NE::m_edge_interactions
vector< typename IType::EdgeIntType > m_edge_interactions
Definition: trimesh_pis_ne.h:39
TriMesh_PIS_NE::rebuild
virtual void rebuild()
do nothing
Definition: trimesh_pis_ne.h:58
TriMesh_PIS_NE::tryInsert
virtual void tryInsert(const vector< int > &)
do nothing
Definition: trimesh_pis_ne.h:59
TriMesh_PIS_NE::m_triangle_interactions
vector< typename IType::TriIntType > m_triangle_interactions
Definition: trimesh_pis_ne.h:38
TriMesh_PIS_NE::TriMesh_PIS_NE
TriMesh_PIS_NE(TriMesh *, ParallelParticleArray< ParticleType > *, typename IType::ParameterType)
Definition: trimesh_pis_ne.hpp:23
TriMesh
class for a triangle mesh
Definition: TriMesh.h:51
TriMesh_PIS_NE::~TriMesh_PIS_NE
~TriMesh_PIS_NE()
Definition: trimesh_pis_ne.hpp:34
trimesh_pis_ne.hpp