ESyS-Particle  2.3.4
BWallInteractionGroup.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 
14 #ifndef __BWALLINTERACTIONGROUP_H
15 #define __BWALLINTERACTIONGROUP_H
16 
17 //--- project includes ---
18 #include "Model/BWallInteraction.h"
19 #include "Model/EWallInteraction.h"
20 #include "Model/WallIG.h"
22 
23 //--- STL includes ---
24 #include <map>
25 
26 using std::map;
27 
28 template <class T> class ParallelParticleArray;
29 
38 class CBWallIGP : public CEWallIGP
39 {
40  protected:
41  int m_tag;
42  int m_mask;
43 
44  public:
45  CBWallIGP(const std::string&,const std::string&,double,int,int);
46  virtual void packInto(CVarMPIBuffer*) const;
47  int getTag()const{return m_tag;};
48  int getMask()const{return m_mask;};
49 
50  friend ostream& operator<<(ostream&,const CBWallIGP&);
51 };
52 
54 
55 // --- Forward decl ---
56 template <class T> class CBWallInteractionGroup;
57 template <class T> ostream& operator<<(ostream &, const CBWallInteractionGroup<T> &);
58 
67 template<class T>
69 {
70  protected:
71  vector<CBondedWallInteraction<T> > m_bonded_interactions;
72  vector<CElasticWallInteraction<T> > m_elastic_interactions;
73  double m_k;
74  int m_tag;
75  int m_mask;
76 
77  public:
81 
82  virtual void calcForces();
83  virtual void applyForce(const Vec3&);
84  virtual void Update(ParallelParticleArray<T>*);
85 
86  friend ostream& operator<< <> (ostream &, const CBWallInteractionGroup &);
87 };
88 
90 
91 #endif //__BWALLINTERACTIONGROUP_H
CWall
base class for all walls
Definition: Wall.h:40
AMPIBuffer::pop_int
virtual int pop_int()=0
BWallInteractionGroup.h
CBWallIGP::operator<<
friend ostream & operator<<(ostream &, const CBWallIGP &)
Definition: BWallInteractionGroup.cpp:45
CBWallInteractionGroup::m_mask
int m_mask
Definition: BWallInteractionGroup.h:75
CBWallInteractionGroup::CBWallInteractionGroup
CBWallInteractionGroup(TML_Comm *)
Definition: BWallInteractionGroup.hpp:20
CVarMPIBuffer
MPI send/recv buffer with automagically adjusted size.
Definition: mpivbuf.h:35
AMPIBuffer::pop_double
virtual double pop_double()=0
CBWallInteractionGroup
Class for a group of bonded,elastic interactions between particles and a wall.
Definition: BWallInteractionGroup.h:69
console.h
extractBWallIGP
CBWallIGP * extractBWallIGP(AMPIBuffer *B)
Definition: BWallInteractionGroup.cpp:56
EWallInteraction.h
EWallInteractionGroup.h
CVarMPIBuffer::append
virtual void append(int)
Definition: mpivbuf.cpp:152
CBWallIGP::getMask
int getMask() const
Definition: BWallInteractionGroup.h:48
CEWallIGP::m_wallname
std::string m_wallname
Definition: brokenEWallInteractionGroup.h:35
CBWallIGP
Interaction group parameters for CBWallInteractionGroups.
Definition: BWallInteractionGroup.h:39
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
CBWallInteractionGroup::m_bonded_interactions
vector< CBondedWallInteraction< T > > m_bonded_interactions
bonded interactions for tagged particles
Definition: BWallInteractionGroup.h:71
CBWallIGP::getTag
int getTag() const
Definition: BWallInteractionGroup.h:47
CEWallIGP
Interaction group parameters for CEWallInteractionGroups.
Definition: brokenEWallInteractionGroup.h:33
CBWallInteractionGroup::~CBWallInteractionGroup
virtual ~CBWallInteractionGroup()
Definition: BWallInteractionGroup.h:80
CBWallInteractionGroup::m_tag
int m_tag
Definition: BWallInteractionGroup.h:74
ParallelParticleArray
parrallel particle storage array with neighborsearch and variable exchange
Definition: pp_array.h:75
Console::XDebug
Console & XDebug()
set verbose level of next message to "xdg"
WallIG.h
CElasticIGP::m_k
double m_k
Definition: ElasticInteraction.h:28
CBWallIGP::packInto
virtual void packInto(CVarMPIBuffer *) const
Definition: BWallInteractionGroup.cpp:36
CEWallIGP::packInto
virtual void packInto(CVarMPIBuffer *) const
Definition: EWallInteractionGroup.cpp:38
CBWallInteractionGroup::calcForces
virtual void calcForces()
Definition: BWallInteractionGroup.hpp:44
CBWallInteractionGroup::m_k
double m_k
spring constant
Definition: BWallInteractionGroup.h:73
Vec3
Definition: vec3.h:47
TML_Comm
abstract base class for communicator
Definition: comm.h:47
CBWallIGP::CBWallIGP
CBWallIGP(const std::string &, const std::string &, double, int, int)
Definition: BWallInteractionGroup.cpp:29
operator<<
ostream & operator<<(ostream &ost, const CBWallIGP &I)
Definition: BWallInteractionGroup.cpp:45
extractBWallIGP
CBWallIGP * extractBWallIGP(AMPIBuffer *)
Definition: BWallInteractionGroup.cpp:56
BWallInteractionGroup.hpp
CBWallIGP::m_tag
int m_tag
Definition: BWallInteractionGroup.h:41
operator<<
ostream & operator<<(ostream &, const CBWallInteractionGroup< T > &)
Definition: BWallInteractionGroup.hpp:191
CBWallInteractionGroup::m_elastic_interactions
vector< CElasticWallInteraction< T > > m_elastic_interactions
elastic interactions for the rest
Definition: BWallInteractionGroup.h:72
CBWallIGP::m_mask
int m_mask
Definition: BWallInteractionGroup.h:42
CBWallInteractionGroup::Update
virtual void Update(ParallelParticleArray< T > *)
Definition: BWallInteractionGroup.hpp:153
console
Console console
Definition: console.cpp:25
AMPIBuffer::pop_string
virtual std::string pop_string()=0
AIGParam::getName
const std::string & getName() const
Definition: IGParam.h:42
BWallInteraction.h
CBWallInteractionGroup::applyForce
virtual void applyForce(const Vec3 &)
Definition: BWallInteractionGroup.hpp:71