ESyS-Particle  2.3
WallInteraction.h
Go to the documentation of this file.
1 // //
3 // Copyright (c) 2003-2014 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.opensource.org/licenses/osl-3.0.php //
10 // //
12 
13 #ifndef __WALLINTERACTION_H
14 #define __WALLINTERACTION_H
15 
16 #include "Wall.h"
17 #include "Interaction.h"
18 #include "Particle.h"
19 
28 template <class T>
30 {
31 protected:
32  T *m_p;
38  bool m_inner_flag;
39 
40 public:
41 
42  AWallInteraction(T*,CWall*,bool iflag=true);
43 
44  virtual ~AWallInteraction(){};
45 
46  virtual bool hasTag(int,int) const;
47  virtual Vec3 getPosFirst() const {return m_p->getPos();};
48 
49  inline bool isInner(){return m_inner_flag;};
50  virtual void calcForces()=0;
51  virtual double getStiffness(){return 0.0;};
52 };
53 
54 #include "WallInteraction.hpp"
55 
56 #endif //__WALLINTERACTION_H
AWallInteraction(T *, CWall *, bool iflag=true)
Definition: WallInteraction.hpp:17
Definition: vec3.h:46
T * m_p
Definition: WallInteraction.h:32
CWall * m_wall
Definition: WallInteraction.h:33
virtual ~AWallInteraction()
Definition: WallInteraction.h:44
Abstract base for all interactions between a particle and a wall.
Definition: WallInteraction.h:29
base class for all walls
Definition: Wall.h:39
Abstract base class for interactions.
Definition: Interaction.h:36
bool isInner()
Definition: WallInteraction.h:49
virtual bool hasTag(int, int) const
Definition: WallInteraction.hpp:32
virtual void calcForces()=0
virtual Vec3 getPosFirst() const
Definition: WallInteraction.h:47
virtual double getStiffness()
Definition: WallInteraction.h:51
bool m_inner_flag
Definition: WallInteraction.h:38