13 #ifndef __INTERACTION_H
14 #define __INTERACTION_H
17 #include "Model/Particle.h"
18 #include "Foundation/quintuple.h"
47 bool initialized()
const;
48 virtual void calcForces()=0;
49 virtual void calcHeatTrans() {};
50 virtual void calcHeatFrict() {};
51 vector<int> getAllID()
const;
52 int getID(){
return m_iid;};
53 virtual bool hasTag(
int,
int)
const=0;
54 virtual Vec3 getPosFirst()
const=0;
55 virtual Vec3 getPosSecond()
const{
return Vec3(0.0,0.0,0.0);};
56 inline double Count()
const {
return 1.0;};
79 inline const CParticle* first()
const {
return m_p1;}
80 inline const CParticle* second()
const {
return m_p2;}
84 inline pair<int,int> getPairID()
const {
return make_pair(m_p1->getID(),m_p2->getID());};
85 virtual Vec3 getPos()
const = 0;
86 virtual void calcForces() = 0;
89 virtual bool hasTag(
int,
int)
const;
90 virtual Vec3 getPosFirst()
const {
return m_p1->getPos();};
91 virtual Vec3 getPosSecond()
const{
return m_p2->getPos();};
105 template <
class TmplParticle>
void setPP(
const vector<TmplParticle *> &pp)
110 m_id.push_back(m_p1->getID());
111 m_id.push_back(m_p2->getID());
115 virtual void saveRestartData(std::ostream &oStream){};
116 virtual void loadRestartData(std::istream &iStream){};