ESyS-Particle  2.3.4
RotThermElasticInteraction.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 __ROTTHERMELASTICINTERACTION_H
14 #define __ROTTHERMELASTICINTERACTION_H
15 
17 #include "Model/RotThermParticle.h"
18 #include "Model/IGParam.h"
19 
24 {
25  protected:
26  public:
28 
30  const std::string &name,
31  double normalK,
32  double diffusivity
33  );
34 
35  double m_kr;
36  double diffusivity ;
37 
38  virtual void packInto(CVarMPIBuffer*) const;
39  void setSpringConst(double k){m_kr=k;};
40  double getSpringConst() const{return m_kr;};
41 
42 
43  void setDiffusivity(double d){diffusivity = d;};
44  double getDiffusivity() const{return diffusivity ; };
45 
46 
47  friend ostream& operator<<(ostream&,const CRotThermElasticIGP&);
48 
49  virtual std::string getTypeString() const
50  {
51  return "RotThermElastic";
52  }
53 };
54 
57 
62 {
63 public:
64  typedef double (CRotThermElasticInteraction::* ScalarFieldFunction)() const;
65  typedef pair<bool,double> (CRotThermElasticInteraction::* CheckedScalarFieldFunction)() const;
67 
68  static ScalarFieldFunction getScalarFieldFunction(const string&);
70  static VectorFieldFunction getVectorFieldFunction(const string&);
71 
72 private:
73  double m_kr;
75  double m_nForce;
78  double m_diffusivity;
79 
80 public:
82 
86 
87  virtual Vec3 getPos() const {return m_cpos;};
88 
89  static string getType(){return "RotThermElastic";}
90 
91  virtual void calcForces();
92  void calcHeatTrans() ;
93 // void calcHeatFrict(){} ;
94 
95  Vec3 getForce() const;
96  double getPotentialEnergy() const;
97 //26/Mar added
99 
100  friend ostream& operator<<(ostream&,const CRotThermElasticInteraction&);
101 
102  // save/load of restart parameters
103  virtual void saveRestartData(std::ostream &oStream);
104  virtual void loadRestartData(std::istream &iStream);
105 };
106 #endif //__ELASTICINTERACTION_H
CRotThermElasticInteraction::m_diffusivity
double m_diffusivity
thermal diffusivity
Definition: RotThermElasticInteraction.h:78
CRotThermElasticIGP::CRotThermElasticIGP
CRotThermElasticIGP()
Definition: RotThermElasticInteraction.cpp:17
CRotThermElasticInteraction::getScalarFieldFunction
static ScalarFieldFunction getScalarFieldFunction(const string &)
Definition: RotThermElasticInteraction.cpp:160
CRotThermElasticIGP
Definition: RotThermElasticInteraction.h:24
CVarMPIBuffer
MPI send/recv buffer with automagically adjusted size.
Definition: mpivbuf.h:35
CThermParticle::getTemperature
double getTemperature() const
Definition: ThermParticle.h:81
CRotThermElasticInteraction::VectorFieldFunction
Vec3(CRotThermElasticInteraction::* VectorFieldFunction)() const
Definition: RotThermElasticInteraction.h:66
CRotThermElasticIGP::diffusivity
double diffusivity
Definition: RotThermElasticInteraction.h:36
AInteraction::Count
double Count() const
Definition: Interaction.h:56
CRotThermElasticIGP::packInto
virtual void packInto(CVarMPIBuffer *) const
Definition: RotThermElasticInteractionGroup.cpp:20
CRotThermParticle::applyHeatTrans
void applyHeatTrans(const double)
Definition: RotThermParticle.cpp:516
console.h
CRotThermElasticInteraction::m_kr
double m_kr
spring constant
Definition: RotThermElasticInteraction.h:73
CRotThermElasticIGP::setSpringConst
void setSpringConst(double k)
Definition: RotThermElasticInteraction.h:39
Vec3::unit
VEC3_INLINE Vec3 unit() const
Definition: vec3.hpp:225
CRotThermElasticInteraction::ParameterType
CRotThermElasticIGP ParameterType
Definition: RotThermElasticInteraction.h:81
RotThermElasticInteraction.h
CRotThermElasticIGP::getSpringConst
double getSpringConst() const
Definition: RotThermElasticInteraction.h:40
AInteraction::m_init
bool m_init
Definition: Interaction.h:41
AMPIBuffer
Abstract base class for MPI send/recv buffer.
Definition: mpibuf.h:34
CRotThermElasticInteraction::CRotThermElasticInteraction
CRotThermElasticInteraction()
Definition: RotThermElasticInteraction.cpp:35
CRotThermElasticInteraction::getVectorFieldFunction
static VectorFieldFunction getVectorFieldFunction(const string &)
Definition: RotThermElasticInteraction.cpp:196
CRotThermElasticIGP::getDiffusivity
double getDiffusivity() const
Definition: RotThermElasticInteraction.h:44
CRotThermElasticIGP::operator<<
friend ostream & operator<<(ostream &, const CRotThermElasticIGP &)
Definition: RotThermElasticInteractionGroup.cpp:49
CRotThermElasticInteraction::saveRestartData
virtual void saveRestartData(std::ostream &oStream)
Definition: RotThermElasticInteraction.cpp:215
RotThermParticle.h
CRotThermElasticInteraction::getCheckedScalarFieldFunction
static CheckedScalarFieldFunction getCheckedScalarFieldFunction(const string &)
Definition: RotThermElasticInteraction.cpp:182
CParticle::applyForce
void applyForce(const Vec3 &, const Vec3 &)
Definition: Particle.cpp:384
ARotThermPairInteraction
Definition: RotThermPairInteraction.h:24
CRotThermElasticInteraction::m_nForce
double m_nForce
normal force, always >= 0
Definition: RotThermElasticInteraction.h:75
CRotThermElasticIGP::setDiffusivity
void setDiffusivity(double d)
Definition: RotThermElasticInteraction.h:43
CRotThermElasticInteraction::loadRestartData
virtual void loadRestartData(std::istream &iStream)
Definition: RotThermElasticInteraction.cpp:230
CRotThermElasticIGP::getTypeString
virtual std::string getTypeString() const
Definition: RotThermElasticInteraction.h:49
NULL
#define NULL
Definition: t_list.h:17
CRotThermElasticInteraction::m_D
Vec3 m_D
initial positions of the particles
Definition: RotThermElasticInteraction.h:77
CRotThermParticle
Definition: RotThermParticle.h:55
CRotThermElasticIGP::m_kr
double m_kr
Definition: RotThermElasticInteraction.h:35
CRotThermElasticInteraction::getPotentialEnergy
double getPotentialEnergy() const
Definition: RotThermElasticInteraction.cpp:148
CRotThermElasticInteraction::getBondedVector
Vec3 getBondedVector() const
ARotThermPairInteraction::m_p1
CRotThermParticle * m_p1
Definition: RotThermPairInteraction.h:26
Vec3
Definition: vec3.h:47
CParticle::getDo2dCalculations
static bool getDo2dCalculations()
Definition: Particle.h:181
AIGParam
Abstract base class for InteractionGroup parameters.
Definition: IGParam.h:29
CRotThermElasticInteraction::~CRotThermElasticInteraction
virtual ~CRotThermElasticInteraction()
Definition: RotThermElasticInteraction.h:85
ARotThermPairInteraction::m_p2
CRotThermParticle * m_p2
Definition: RotThermPairInteraction.h:26
Vec3::norm2
VEC3_INLINE double norm2() const
Definition: vec3.hpp:218
CRotThermElasticInteraction::calcForces
virtual void calcForces()
Definition: RotThermElasticInteraction.cpp:96
extractRotThermElasticIGP
CRotThermElasticIGP * extractRotThermElasticIGP(AMPIBuffer *)
Definition: RotThermElasticInteractionGroup.cpp:27
CRotThermElasticInteraction
Definition: RotThermElasticInteraction.h:62
CBasicParticle::getID
int getID() const
Definition: BasicParticle.h:65
CRotThermElasticInteraction::calcHeatTrans
void calcHeatTrans()
Definition: RotThermElasticInteraction.cpp:131
CBasicParticle::getRad
double getRad() const
Definition: BasicParticle.h:64
CRotThermElasticInteraction::operator<<
friend ostream & operator<<(ostream &, const CRotThermElasticInteraction &)
Definition: RotThermElasticInteraction.cpp:240
CRotThermElasticInteraction::getPos
virtual Vec3 getPos() const
Definition: RotThermElasticInteraction.h:87
CBasicParticle::getPos
Vec3 getPos() const
Definition: BasicParticle.h:62
CRotThermElasticInteraction::m_force
Vec3 m_force
caching force for E_pot
Definition: RotThermElasticInteraction.h:74
CRotThermElasticInteraction::getForce
Vec3 getForce() const
Definition: RotThermElasticInteraction.cpp:77
RotThermPairInteraction.h
AInteraction::m_id
vector< int > m_id
id's of the particles involved
Definition: Interaction.h:39
CRotThermElasticInteraction::getType
static string getType()
Definition: RotThermElasticInteraction.h:89
extractRotThermElasticIGP_p
CRotThermElasticIGP * extractRotThermElasticIGP_p(AMPIBuffer *)
Definition: RotThermElasticInteractionGroup.cpp:40
CRotThermElasticInteraction::ScalarFieldFunction
double(CRotThermElasticInteraction::* ScalarFieldFunction)() const
Definition: RotThermElasticInteraction.h:64
IGParam.h
operator<<
ostream & operator<<(ostream &ost, const CRotThermElasticInteraction &BI)
Definition: RotThermElasticInteraction.cpp:240
CRotThermElasticInteraction::m_cpos
Vec3 m_cpos
current position
Definition: RotThermElasticInteraction.h:76
CRotThermElasticInteraction::CheckedScalarFieldFunction
pair< bool, double >(CRotThermElasticInteraction::* CheckedScalarFieldFunction)() const
Definition: RotThermElasticInteraction.h:65