ESyS-Particle
4.0.1
|
00001 00002 // // 00003 // Copyright (c) 2003-2011 by The University of Queensland // 00004 // Earth Systems Science Computational Centre (ESSCC) // 00005 // http://www.uq.edu.au/esscc // 00006 // // 00007 // Primary Business: Brisbane, Queensland, Australia // 00008 // Licensed under the Open Software License version 3.0 // 00009 // http://www.opensource.org/licenses/osl-3.0.php // 00010 // // 00012 00013 #ifndef __THERMPARTICLE_H 00014 #define __THERMPARTICLE_H 00015 00016 // -- project includes -- 00017 #include "Foundation/vec3.h" 00018 00019 // --- STL includes --- 00020 #include <map> 00021 #include <utility> 00022 00023 00024 using std::map; 00025 using std::pair; 00026 using std::make_pair; 00027 00031 class CThermParticle 00032 { 00033 protected: 00034 00035 double m_temperature ; 00036 double m_temperature_ini ; 00037 double m_Cp ; 00038 // double m_density ;// ??? 00039 double m_heat_frict ; 00040 double m_heat_trans ; 00041 double m_therm_expansion0 ; 00042 double m_therm_expansion1 ; 00043 double m_therm_expansion2 ; 00044 double m_rad_ini ; 00045 00046 public: 00047 // static const CBasicParticle INVALID; 00048 00049 CThermParticle(); 00050 CThermParticle(double rad_ini); 00051 CThermParticle(double temperature, 00052 double m_temperature_ini, 00053 double Cp, 00054 double heat_frict, 00055 double heat_trans, 00056 double therm_expansion0, 00057 double therm_expansion1, 00058 double therm_expansion2, 00059 double rad_ini); 00060 // CThermParticle(const esys::lsm::SimpleParticleData &data); 00061 00062 virtual ~CThermParticle(){}; 00063 /* 00064 inline Vec3 & getPPos() {return m_pos;} 00065 inline Vec3 getPos() const {return m_pos;} 00066 inline double getRad() const {return m_rad;} 00067 inline int getID() const {return m_global_id;} 00068 00069 inline void moveBy(Vec3 v){m_pos+=v;} //!< move relative to current position 00070 inline void moveTo(Vec3 v){m_pos=v;} //!< move absolute 00071 inline void setRad(double r){m_rad=r;} 00072 00074 inline void setTag(int t){m_tag=t;} 00075 inline int getTag() const {return m_tag;} 00076 inline bool isValid() const {return (getID() >= 0);} 00077 }; 00078 */ 00079 00080 inline void setTemperature(double t){m_temperature=t;} 00081 inline double getTemperature() const {return m_temperature;} 00082 00083 inline void setEquilibTemperature(double t){m_temperature_ini=t;} 00084 inline double getEquilibTemperature() const {return m_temperature_ini;} 00085 00086 inline void setEquilibRadius(double r){m_rad_ini=r;} 00087 inline double getEquilibRadius() const {return m_rad_ini;} 00088 00089 // inline void setCp(double t){m_Cp = t;} 00090 inline double getCp() const {return m_Cp;} 00091 inline void setCp(double cp) {m_Cp = cp;} 00092 00093 inline double getThermExpansion0() const {return m_therm_expansion0 ;} 00094 inline void setThermExpansion0(double te0) {m_therm_expansion0 = te0;} 00095 00096 inline double getThermExpansion1() const {return m_therm_expansion1 ;} 00097 inline void setThermExpansion1(double te1) {m_therm_expansion1 = te1;} 00098 00099 inline double getThermExpansion2() const {return m_therm_expansion2 ;} 00100 inline void setThermExpansion2(double te2) {m_therm_expansion2 = te2;} 00101 // void integrate_therm(double) ; 00102 // void zeroHeat() ; 00103 // void applyHeatTrans(const double) ; 00104 friend ostream& operator<<(ostream& ost,const CThermParticle& p); 00105 }; 00106 00107 ostream& operator<<(ostream&,const CThermParticle&); 00108 00109 #endif //__THERMPARTICLE_H