ESyS-Particle  2.3.4
brokenEWallInteractionGroup.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 __EWALLINTERACTIONGROUP_H
14 #define __EWALLINTERACTIONGROUP_H
15 
16 //--- project includes ---
17 #include "Model/EWallInteraction.h"
18 #include "Model/WallIG.h"
20 #include "Model/IGParam.h"
21 
22 template <class T> class ParallelParticleArray;
23 
24 //--- STL includes ---
25 #include <map>
26 
27 using std::map;
28 
32 class CEWallIGP : public CElasticIGP
33 {
34 protected:
35  std::string m_wallname;
36 public:
37 
38  CEWallIGP(const std::string&,const std::string&,double);
39  virtual void packInto(CVarMPIBuffer*) const;
40  std::string getWallName() const {return m_wallname;};
41  friend ostream& operator<<(ostream&,const CEWallIGP&);
42 };
43 
45 
46 
47 // --- Forward decl ---
48 template <class T> class CEWallInteractionGroup;
49 template <class T> ostream& operator<< (ostream &, const CEWallInteractionGroup<T> &);
50 
54 template<class T>
56 {
57  protected:
58  vector<CElasticWallInteraction<T> > m_interactions;
59  double m_k;
60  double m_k_global;
61 
62  public:
66 
70  virtual void setTimeStepSize(double dt)
71  {
72  }
73 
74  virtual void calcForces();
75  virtual void applyForce(const Vec3&);
76  virtual void Update(ParallelParticleArray<T>*);
77 
78  friend ostream& operator<< <>(ostream &, const CEWallInteractionGroup &);
79 };
80 
82 
83 #endif //__EWALLINTERACTIONGROUP_H
CWall
base class for all walls
Definition: Wall.h:40
CEWallInteractionGroup::applyForce
virtual void applyForce(const Vec3 &)
Definition: brokenEWallInteractionGroup.hpp:102
ElasticInteractionGroup.h
operator<<
ostream & operator<<(ostream &, const CEWallInteractionGroup< T > &)
Definition: brokenEWallInteractionGroup.hpp:137
CEWallInteractionGroup::CEWallInteractionGroup
CEWallInteractionGroup(TML_Comm *)
Definition: brokenEWallInteractionGroup.hpp:21
EWallInteractionGroup.hpp
extractEWallIGP
CEWallIGP * extractEWallIGP(AMPIBuffer *)
Definition: EWallInteractionGroup.cpp:53
CVarMPIBuffer
MPI send/recv buffer with automagically adjusted size.
Definition: mpivbuf.h:35
CEWallIGP::CEWallIGP
CEWallIGP(const std::string &, const std::string &, double)
Definition: EWallInteractionGroup.cpp:28
CEWallInteractionGroup
Class for a group of unbonded,elastic interactions between particles and a wall.
Definition: EWallInteractionGroup.h:56
CEWallInteractionGroup::setTimeStepSize
virtual void setTimeStepSize(double dt)
Definition: brokenEWallInteractionGroup.h:70
CEWallInteractionGroup::m_k_global
double m_k_global
total wall stiffness
Definition: brokenEWallInteractionGroup.h:60
EWallInteraction.h
CEWallInteractionGroup::Update
virtual void Update(ParallelParticleArray< T > *)
Definition: brokenEWallInteractionGroup.hpp:57
CEWallIGP::m_wallname
std::string m_wallname
Definition: brokenEWallInteractionGroup.h:35
AMPIBuffer
Abstract base class for MPI send/recv buffer.
Definition: mpibuf.h:34
AWallInteractionGroup
Abstract Base class for a group of interactions between particles and a wall.
Definition: WallIG.h:31
CEWallIGP
Interaction group parameters for CEWallInteractionGroups.
Definition: brokenEWallInteractionGroup.h:33
CEWallInteractionGroup::m_k
double m_k
Elastic modulus.
Definition: brokenEWallInteractionGroup.h:59
CElasticIGP
Interaction group parameters for CElasticInteractionGroups.
Definition: ElasticInteraction.h:25
ParallelParticleArray
parrallel particle storage array with neighborsearch and variable exchange
Definition: pp_array.h:75
WallIG.h
CEWallInteractionGroup::m_interactions
vector< CElasticWallInteraction< T > > m_interactions
Definition: brokenEWallInteractionGroup.h:58
CEWallInteractionGroup::~CEWallInteractionGroup
virtual ~CEWallInteractionGroup()
Definition: brokenEWallInteractionGroup.h:65
CEWallIGP::packInto
virtual void packInto(CVarMPIBuffer *) const
Definition: EWallInteractionGroup.cpp:38
Vec3
Definition: vec3.h:47
TML_Comm
abstract base class for communicator
Definition: comm.h:47
CEWallIGP::getWallName
std::string getWallName() const
Definition: brokenEWallInteractionGroup.h:40
CEWallInteractionGroup::calcForces
virtual void calcForces()
Definition: brokenEWallInteractionGroup.hpp:42
CEWallIGP::operator<<
friend ostream & operator<<(ostream &, const CEWallIGP &)
Definition: EWallInteractionGroup.cpp:46
IGParam.h