ESyS-Particle  4.0.1
WallInteraction.h
1 
2 // //
3 // Copyright (c) 2003-2011 by The University of Queensland //
4 // Earth Systems Science Computational Centre (ESSCC) //
5 // http://www.uq.edu.au/esscc //
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;
33  CWall *m_wall;
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