ESyS-Particle  2.3.4
pi_storage_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 __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:
32  vector<AParallelInteractionStorage*> m_exIG; //<! if an interaction is in m_exIG, it can't be in m_interactions
33 
34  set<pair<int,int> > m_set; // evil hack, should be vector<int>, not pair<int,int>
35  typename I::ParameterType m_param;
36 
37  bool isExcluded(const vector<int>); //<! check if a particle pair is in one of the excluding IGs
38 
39  public:
40  ParallelInteractionStorage_NE(AParallelParticleArray*,const typename I::ParameterType&);
41 
42  virtual void addExIG(AParallelInteractionStorage*);
43  virtual bool update();
44  virtual void exchange(){};
45  virtual void rebuild(){};
46  virtual void tryInsert(const vector<int>&){};
47  virtual bool isIn(const vector<int>&);
48  virtual void calcForces();
49  virtual void setTimeStepSize(double dt)
50  {
51  }
52  virtual void calcHeatTrans();
53 };
54 
55 #include "pis/pi_storage_ne.hpp"
56 
57 #endif // __PARALLEL_INTERACTION_STORAGE_NE_H
pi_storage.h
ParallelInteractionStorage_NE::rebuild
virtual void rebuild()
do nothing
Definition: pi_storage_ne.h:45
pi_storage_ne.hpp
ParallelInteractionStorage_NE::exchange
virtual void exchange()
Definition: pi_storage_ne.h:44
ParallelInteractionStorage_NE::tryInsert
virtual void tryInsert(const vector< int > &)
do nothing
Definition: pi_storage_ne.h:46
ParallelInteractionStorage_NE::isIn
virtual bool isIn(const vector< int > &)
do nothing
Definition: pi_storage_ne.hpp:109
ParallelInteractionStorage_NE::ParallelInteractionStorage_NE
ParallelInteractionStorage_NE(AParallelParticleArray *, const typename I::ParameterType &)
Definition: pi_storage_ne.hpp:14
AParallelInteractionStorage
abstract base class for parallel interaction storage array
Definition: pi_storage.h:45
ParallelInteractionStorage_NE::m_exIG
vector< AParallelInteractionStorage * > m_exIG
Definition: pi_storage_ne.h:32
ParallelInteractionStorage_NE::m_param
I::ParameterType m_param
Definition: pi_storage_ne.h:35
ParallelInteractionStorage_NE::update
virtual bool update()
Definition: pi_storage_ne.hpp:49
ParallelInteractionStorage_NE::calcForces
virtual void calcForces()
Definition: pi_storage_ne.hpp:122
AParallelParticleArray
abstract base class for parallel particle storage array
Definition: pp_array.h:42
ParallelInteractionStorage_NE
parallel storage array without exchange for dynamically created interactions (elastic)
Definition: pi_storage_ne.h:29
ParallelInteractionStorage_NE::setTimeStepSize
virtual void setTimeStepSize(double dt)
Definition: pi_storage_ne.h:49
TParallelInteractionStorage
templated abstract base class for parallel interaction storage array. Adds the vector of interactions...
Definition: pi_storage.h:91
ParallelInteractionStorage_NE::m_update_timestamp
int m_update_timestamp
Definition: pi_storage_ne.h:31
ParallelInteractionStorage_NE::calcHeatTrans
virtual void calcHeatTrans()
Definition: pi_storage_ne.hpp:139
ParallelInteractionStorage_NE::m_set
set< pair< int, int > > m_set
Definition: pi_storage_ne.h:34
ParallelInteractionStorage_NE::isExcluded
bool isExcluded(const vector< int >)
Definition: pi_storage_ne.hpp:32
ParallelInteractionStorage_NE::addExIG
virtual void addExIG(AParallelInteractionStorage *)
Definition: pi_storage_ne.hpp:21