ESyS-Particle  2.3.4
RotPairInteraction.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 __ROTPAIRINTERCTION_H
14 #define __ROTPAIRINTERCTION_H
15 
16 // -- project includes --
17 #include "Model/RotParticle.h"
18 #include "Model/Interaction.h"
19 
29 {
30  protected:
32 
33  public:
34  // functions
37  virtual ~ARotPairInteraction();
38 
39  inline const CParticle* first()const {return m_p1;};
40  inline const CParticle* second()const {return m_p2;};
41  inline CRotParticle* first() {return m_p1;};
42  inline CRotParticle* second() {return m_p2;};
43  inline pair<int,int> getPairID() const {return make_pair(m_p1->getID(),m_p2->getID());}
44  virtual Vec3 getPos() const = 0;
45  virtual void calcForces()=0;
46  void checkIDs();
47  virtual bool hasTag(int,int) const;
48  virtual Vec3 getPosFirst() const {return m_p1->getPos();}
49  virtual Vec3 getPosSecond() const {return m_p2->getPos();}
51  void setPP(const vector<CRotParticle*>);
52 
54  {
55  return
57  m_p1->getPos(),
58  m_p1->getRad(),
59  m_p2->getPos(),
60  m_p2->getRad(),
61  getPos()
62  );
63  }
64 
65  virtual void calcHeatTrans() {}
66  virtual void calcHeatFrict() {}
67 
68  // dummy implementations for save/load of restart parameters
69  virtual void saveRestartData(std::ostream &oStream){};
70  virtual void loadRestartData(std::istream &iStream){};
71 };
72 
73 #endif // __ROTPAIRINTERCTION_H
RotPairInteraction.h
ARotPairInteraction::getPos
virtual Vec3 getPos() const =0
ARotPairInteraction::getPosSecond
virtual Vec3 getPosSecond() const
Definition: RotPairInteraction.h:49
ARotPairInteraction::calcForces
virtual void calcForces()=0
ARotPairInteraction::~ARotPairInteraction
virtual ~ARotPairInteraction()
Definition: RotPairInteraction.cpp:16
ARotPairInteraction::getPosFirst
virtual Vec3 getPosFirst() const
Definition: RotPairInteraction.h:48
ARotPairInteraction::calcHeatTrans
virtual void calcHeatTrans()
Definition: RotPairInteraction.h:65
ARotPairInteraction::getPairID
pair< int, int > getPairID() const
Definition: RotPairInteraction.h:43
RotParticle.h
ARotPairInteraction::second
CRotParticle * second()
Definition: RotPairInteraction.h:42
AInteraction
Abstract base class for interactions.
Definition: Interaction.h:37
ARotPairInteraction::loadRestartData
virtual void loadRestartData(std::istream &iStream)
Definition: RotPairInteraction.h:70
AInteraction::m_init
bool m_init
Definition: Interaction.h:41
ARotPairInteraction::ARotPairInteraction
ARotPairInteraction()
Definition: RotPairInteraction.cpp:20
Interaction.h
ARotPairInteraction::hasTag
virtual bool hasTag(int, int) const
Definition: RotPairInteraction.cpp:65
ARotPairInteraction::getRaw2Data
esys::lsm::quintuple< Vec3, double, Vec3, double, Vec3 > getRaw2Data() const
Definition: RotPairInteraction.h:53
ARotPairInteraction::m_p2
CRotParticle * m_p2
Definition: RotPairInteraction.h:31
ARotPairInteraction::first
const CParticle * first() const
Definition: RotPairInteraction.h:39
ARotPairInteraction::setPP
void setPP(CRotParticle *, CRotParticle *)
Definition: RotPairInteraction.cpp:35
CBasicParticle::getTag
int getTag() const
Definition: BasicParticle.h:74
NULL
#define NULL
Definition: t_list.h:17
ARotPairInteraction
Abstract base class interactions between 2 rotational particles.
Definition: RotPairInteraction.h:29
ARotPairInteraction::saveRestartData
virtual void saveRestartData(std::ostream &oStream)
Definition: RotPairInteraction.h:69
ARotPairInteraction::m_p1
CRotParticle * m_p1
Definition: RotPairInteraction.h:31
ARotPairInteraction::calcHeatFrict
virtual void calcHeatFrict()
Definition: RotPairInteraction.h:66
Vec3
Definition: vec3.h:47
ARotPairInteraction::first
CRotParticle * first()
Definition: RotPairInteraction.h:41
ARotPairInteraction::second
const CParticle * second() const
Definition: RotPairInteraction.h:40
CBasicParticle::getID
int getID() const
Definition: BasicParticle.h:65
CBasicParticle::getRad
double getRad() const
Definition: BasicParticle.h:64
CBasicParticle::getPos
Vec3 getPos() const
Definition: BasicParticle.h:62
ARotPairInteraction::checkIDs
void checkIDs()
Definition: RotPairInteraction.cpp:49
esys::lsm::quintuple
Definition: quintuple.h:25
AInteraction::m_id
vector< int > m_id
id's of the particles involved
Definition: Interaction.h:39
CParticle
Class for a basic particle.
Definition: Particle.h:51
CRotParticle
Class for a rotational particle.
Definition: RotParticle.h:54