ESyS-Particle  4.0.1
ThermParticle.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 __THERMPARTICLE_H
14 #define __THERMPARTICLE_H
15 
16 // -- project includes --
17 #include "Foundation/vec3.h"
18 
19 // --- STL includes ---
20 #include <map>
21 #include <utility>
22 
23 
24 using std::map;
25 using std::pair;
26 using std::make_pair;
27 
32 {
33 protected:
34 
35  double m_temperature ;
36  double m_temperature_ini ;
37  double m_Cp ;
38 // double m_density ;// ???
39  double m_heat_frict ;
40  double m_heat_trans ;
41  double m_therm_expansion0 ;
42  double m_therm_expansion1 ;
43  double m_therm_expansion2 ;
44  double m_rad_ini ;
45 
46 public:
47 // static const CBasicParticle INVALID;
48 
50  CThermParticle(double rad_ini);
51  CThermParticle(double temperature,
52  double m_temperature_ini,
53  double Cp,
54  double heat_frict,
55  double heat_trans,
56  double therm_expansion0,
57  double therm_expansion1,
58  double therm_expansion2,
59  double rad_ini);
60 // CThermParticle(const esys::lsm::SimpleParticleData &data);
61 
62  virtual ~CThermParticle(){};
63 /*
64  inline Vec3 & getPPos() {return m_pos;}
65  inline Vec3 getPos() const {return m_pos;}
66  inline double getRad() const {return m_rad;}
67  inline int getID() const {return m_global_id;}
68 
69  inline void moveBy(Vec3 v){m_pos+=v;} //!< move relative to current position
70  inline void moveTo(Vec3 v){m_pos=v;} //!< move absolute
71  inline void setRad(double r){m_rad=r;}
72 
74  inline void setTag(int t){m_tag=t;}
75  inline int getTag() const {return m_tag;}
76  inline bool isValid() const {return (getID() >= 0);}
77 };
78 */
79 
80  inline void setTemperature(double t){m_temperature=t;}
81  inline double getTemperature() const {return m_temperature;}
82 
83  inline void setEquilibTemperature(double t){m_temperature_ini=t;}
84  inline double getEquilibTemperature() const {return m_temperature_ini;}
85 
86  inline void setEquilibRadius(double r){m_rad_ini=r;}
87  inline double getEquilibRadius() const {return m_rad_ini;}
88 
89 // inline void setCp(double t){m_Cp = t;}
90  inline double getCp() const {return m_Cp;}
91  inline void setCp(double cp) {m_Cp = cp;}
92 
93  inline double getThermExpansion0() const {return m_therm_expansion0 ;}
94  inline void setThermExpansion0(double te0) {m_therm_expansion0 = te0;}
95 
96  inline double getThermExpansion1() const {return m_therm_expansion1 ;}
97  inline void setThermExpansion1(double te1) {m_therm_expansion1 = te1;}
98 
99  inline double getThermExpansion2() const {return m_therm_expansion2 ;}
100  inline void setThermExpansion2(double te2) {m_therm_expansion2 = te2;}
101 // void integrate_therm(double) ;
102 // void zeroHeat() ;
103 // void applyHeatTrans(const double) ;
104  friend ostream& operator<<(ostream& ost,const CThermParticle& p);
105 };
106 
107 ostream& operator<<(ostream&,const CThermParticle&);
108 
109 #endif //__THERMPARTICLE_H