ESyS-Particle  2.3.4
SoftBWallInteractionGroup.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 __SOFTBWALLINTERACTIONGROUP_H
14 #define __SOFTBWALLINTERACTIONGROUP_H
15 
16 //--- project includes ---
18 #include "Model/WallIG.h"
20 
21 //--- STL includes ---
22 #include <map>
23 
24 using std::map;
25 
26 template <class T> class ParallelParticleArray;
27 
31 class CSoftBWallIGP : public CBWallIGP
32 {
33  protected:
34  double m_shearK;
35  bool m_scaling;
36  public:
37  CSoftBWallIGP(const std::string&,const std::string&,double,double,int,int,bool);
38  virtual void packInto(CVarMPIBuffer*) const;
39  double getNormalK()const{return m_k;};
40  double getShearK()const{return m_shearK;};
41  bool getScaling()const{return m_scaling;};
42 
43  friend ostream& operator<<(ostream&,const CSoftBWallIGP&);
44 };
45 
47 
48 // --- Forward decl ---
49 template <class T> class CSoftBWallInteractionGroup;
50 template <class T> ostream& operator<<(ostream &, const CSoftBWallInteractionGroup<T> &);
51 
52 
57 template<class T>
59 {
60  protected:
61  vector<CSoftBondedWallInteraction<T> > m_interactions;
63  int m_tag;
64  int m_mask;
65  bool m_scaling;
66 
67  public:
71 
75  virtual void setTimeStepSize(double dt)
76  {
77  }
78 
79  virtual void calcForces();
80  virtual void applyForce(const Vec3&);
81  virtual void Update(ParallelParticleArray<T>*);
82 
83  friend ostream& operator<< <>(ostream &, const CSoftBWallInteractionGroup &);
84 };
85 
87 
88 #endif //__BSOFTWALLINTERACTIONGROUP_H
CWall
base class for all walls
Definition: Wall.h:40
AMPIBuffer::pop_int
virtual int pop_int()=0
CSoftBWallIGP::operator<<
friend ostream & operator<<(ostream &, const CSoftBWallIGP &)
Definition: SoftBWallInteractionGroup.cpp:55
CSoftBWallInteractionGroup::applyForce
virtual void applyForce(const Vec3 &)
Definition: SoftBWallInteractionGroup.hpp:67
CSoftBWallIGP::m_shearK
double m_shearK
Definition: SoftBWallInteractionGroup.h:34
CSoftBWallInteractionGroup::calcForces
virtual void calcForces()
Definition: SoftBWallInteractionGroup.hpp:46
BWallInteractionGroup.h
CSoftBWallIGP::packInto
virtual void packInto(CVarMPIBuffer *) const
Definition: SoftBWallInteractionGroup.cpp:39
CVarMPIBuffer
MPI send/recv buffer with automagically adjusted size.
Definition: mpivbuf.h:35
CSoftBWallIGP::getScaling
bool getScaling() const
Definition: SoftBWallInteractionGroup.h:41
CSoftBWallInteractionGroup::m_tag
int m_tag
Definition: SoftBWallInteractionGroup.h:63
SoftBWallInteractionGroup.h
AMPIBuffer::pop_double
virtual double pop_double()=0
CSoftBWallInteractionGroup::m_scaling
bool m_scaling
Definition: SoftBWallInteractionGroup.h:65
console.h
CVarMPIBuffer::append
virtual void append(int)
Definition: mpivbuf.cpp:152
operator<<
ostream & operator<<(ostream &, const CSoftBWallInteractionGroup< T > &)
Definition: SoftBWallInteractionGroup.hpp:152
CBWallIGP
Interaction group parameters for CBWallInteractionGroups.
Definition: BWallInteractionGroup.h:39
CSoftBWallInteractionGroup::Update
virtual void Update(ParallelParticleArray< T > *)
Definition: SoftBWallInteractionGroup.hpp:130
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
extractSoftBWallIGP
CSoftBWallIGP * extractSoftBWallIGP(AMPIBuffer *)
Definition: SoftBWallInteractionGroup.cpp:64
CSoftBWallIGP::getShearK
double getShearK() const
Definition: SoftBWallInteractionGroup.h:40
CSoftBWallIGP
Interaction group parameters for CSoftBWallInteractionGroups.
Definition: SoftBWallInteractionGroup.h:32
extractSoftBWallIGP
CSoftBWallIGP * extractSoftBWallIGP(AMPIBuffer *B)
Definition: SoftBWallInteractionGroup.cpp:64
CSoftBWallIGP::m_scaling
bool m_scaling
Definition: SoftBWallInteractionGroup.h:35
ParallelParticleArray
parrallel particle storage array with neighborsearch and variable exchange
Definition: pp_array.h:75
CSoftBWallInteractionGroup::m_normalK
double m_normalK
Definition: SoftBWallInteractionGroup.h:62
SoftBWallInteraction.h
Console::XDebug
Console & XDebug()
set verbose level of next message to "xdg"
CSoftBWallInteractionGroup::m_interactions
vector< CSoftBondedWallInteraction< T > > m_interactions
Definition: SoftBWallInteractionGroup.h:61
WallIG.h
CElasticIGP::m_k
double m_k
Definition: ElasticInteraction.h:28
CBWallIGP::packInto
virtual void packInto(CVarMPIBuffer *) const
Definition: BWallInteractionGroup.cpp:36
CSoftBWallInteractionGroup::m_shearK
double m_shearK
spring constants for each direction
Definition: SoftBWallInteractionGroup.h:62
CSoftBWallInteractionGroup::setTimeStepSize
virtual void setTimeStepSize(double dt)
Definition: SoftBWallInteractionGroup.h:75
CSoftBWallIGP::getNormalK
double getNormalK() const
Definition: SoftBWallInteractionGroup.h:39
Vec3
Definition: vec3.h:47
TML_Comm
abstract base class for communicator
Definition: comm.h:47
CSoftBWallInteractionGroup::~CSoftBWallInteractionGroup
virtual ~CSoftBWallInteractionGroup()
Definition: SoftBWallInteractionGroup.h:70
CSoftBWallInteractionGroup::m_mask
int m_mask
Definition: SoftBWallInteractionGroup.h:64
CSoftBWallInteractionGroup::CSoftBWallInteractionGroup
CSoftBWallInteractionGroup(TML_Comm *)
Definition: SoftBWallInteractionGroup.hpp:20
CBWallIGP::m_tag
int m_tag
Definition: BWallInteractionGroup.h:41
operator<<
ostream & operator<<(ostream &ost, const CSoftBWallIGP &I)
Definition: SoftBWallInteractionGroup.cpp:55
console
Console console
Definition: console.cpp:25
AMPIBuffer::pop_string
virtual std::string pop_string()=0
SoftBWallInteractionGroup.hpp
CSoftBWallIGP::CSoftBWallIGP
CSoftBWallIGP(const std::string &, const std::string &, double, double, int, int, bool)
Definition: SoftBWallInteractionGroup.cpp:32
CSoftBWallInteractionGroup
Class for a group of bonded, elastic interactions with per-direction spring constants between particl...
Definition: SoftBWallInteractionGroup.h:59