ESyS-Particle  2.3.4
Wall.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 __WALL_H
14 #define __WALL_H
15 
16 //--- project includes ---
18 #include "Foundation/vec3.h"
19 #include "Foundation/console.h"
20 
21 
22 //--- IO includes ---
23 #include <iostream>
24 
25 using std::ostream;
26 using std::endl;
27 using std::flush;
28 
29 class TML_comm;
30 
39 class CWall
40 {
41 protected:
46 
47 public:
48  typedef Vec3 (CWall::* VectorFieldFunction)() const;
49 
50  CWall();
51  CWall(const Vec3&,const Vec3&);
52  virtual ~CWall(){};
53 
54  void moveBy(const Vec3& v)
55  {
56  console.XDebug() << "CWall::moveBy: v = " << v << "\n";
57  console.XDebug() << "CWall::moveBy: oldpos = " << m_oldpos << "\n";
58  console.XDebug() << "CWall::moveBy: pre move origin = " << m_origin << "\n";
59  m_origin += v;
60  console.XDebug() << "CWall::moveBy: post move origin = " << m_origin << "\n";
61  };
62  void moveTo(const Vec3& v){m_origin=v;};
63  void setNormal(const Vec3& v){m_normal=v;};
64  void setVel(const Vec3& v){m_vel=v;};
65  Vec3 getVel(){return m_vel;};
66  inline const Vec3& getOrigin()const {return m_origin;};
67  inline const Vec3& getNormal()const {return m_normal;};
68  inline void addForce(const Vec3& force){m_force-=force;};
69  inline void zeroForce(){m_force=Vec3(0.0,0.0,0.0);};
70  inline const Vec3& getForce(){return m_force;};
71  inline const Vec3& getPos(){return m_origin;};
72  Vec3 getPos() const {return m_origin;};
73  Vec3 getForce() const {return m_force;};
74  inline double getDisplacement(){return (m_origin-m_oldpos).norm();};
77 
78  static VectorFieldFunction getVectorFieldFunction(const string&);
80  int getFieldSummationFlag(const string&);
81 
82  virtual void writeCheckPoint(ostream&,const string&) const;
83  virtual void loadCheckPoint(istream&);
84 
85  friend ostream& operator<<(ostream&,const CWall&);
86 };
87 
88 #endif //__WALL_H
CWall
base class for all walls
Definition: Wall.h:40
CWall::getPos
const Vec3 & getPos()
Definition: Wall.h:71
CWall::m_force
Vec3 m_force
Definition: Wall.h:43
CWall::addForce
void addForce(const Vec3 &force)
Definition: Wall.h:68
CWall::moveBy
void moveBy(const Vec3 &v)
Definition: Wall.h:54
CWall::m_normal
Vec3 m_normal
Definition: Wall.h:42
CWall::getPos
Vec3 getPos() const
Definition: Wall.h:72
Console::Error
Console & Error()
set verbose level of next message to "err"
console.h
CWall::getFieldSummationFlag
int getFieldSummationFlag(const string &)
Definition: Wall.cpp:95
CWall::getForce
const Vec3 & getForce()
Definition: Wall.h:70
AWallFieldSlave::addWall
void addWall(CWall *)
Definition: WallFieldSlave.cpp:31
CWall::getForce
Vec3 getForce() const
Definition: Wall.h:73
CWall::getNormal
const Vec3 & getNormal() const
Definition: Wall.h:67
CWall::zeroForce
void zeroForce()
Definition: Wall.h:69
VectorWallFieldSlave
Class for slave part of vector valued field defined on a Wall.
Definition: VectorWallFieldSlave.h:29
CWall::VectorFieldFunction
Vec3(CWall::* VectorFieldFunction)() const
Definition: Wall.h:48
Wall.h
CWall::setNormal
void setNormal(const Vec3 &v)
Definition: Wall.h:63
Console::XDebug
Console & XDebug()
set verbose level of next message to "xdg"
CWall::writeCheckPoint
virtual void writeCheckPoint(ostream &, const string &) const
Definition: Wall.cpp:118
NULL
#define NULL
Definition: t_list.h:17
VectorWallFieldSlave.h
CWall::setVel
void setVel(const Vec3 &v)
Definition: Wall.h:64
CWall::getVel
Vec3 getVel()
Definition: Wall.h:65
CWall::m_origin
Vec3 m_origin
Definition: Wall.h:42
CWall::m_oldpos
Vec3 m_oldpos
Definition: Wall.h:44
CWall::getVectorFieldFunction
static VectorFieldFunction getVectorFieldFunction(const string &)
Definition: Wall.cpp:72
CWall::moveTo
void moveTo(const Vec3 &v)
Definition: Wall.h:62
CWall::loadCheckPoint
virtual void loadCheckPoint(istream &)
Definition: Wall.cpp:128
Vec3
Definition: vec3.h:47
TML_Comm
abstract base class for communicator
Definition: comm.h:47
CWall::generateVectorFieldSlave
VectorWallFieldSlave< CWall > * generateVectorFieldSlave(TML_Comm *, const string &)
Definition: Wall.cpp:50
vec3.h
CWall::operator<<
friend ostream & operator<<(ostream &, const CWall &)
Definition: Wall.cpp:135
operator<<
ostream & operator<<(ostream &ost, const CWall &w)
Definition: Wall.cpp:135
Vec3::ZERO
static const Vec3 ZERO
Definition: vec3.h:52
CWall::getOrigin
const Vec3 & getOrigin() const
Definition: Wall.h:66
CWall::getTotalDisplacement
Vec3 getTotalDisplacement()
Definition: Wall.h:75
CWall::CWall
CWall()
Definition: Wall.cpp:20
CWall::~CWall
virtual ~CWall()
Definition: Wall.h:52
CWall::getDisplacement
double getDisplacement()
Definition: Wall.h:74
console
Console console
Definition: console.cpp:25
CWall::resetDisplacement
void resetDisplacement()
Definition: Wall.h:76
CWall::m_vel
Vec3 m_vel
Definition: Wall.h:45