00001 00002 #ifndef _CODE_UNITS_H_ 00003 #define _CODE_UNITS_H_ 00004 00005 00006 #include "REAL.H" 00007 #include "MayDay.H" 00008 00009 00011 00015 class CodeUnits 00016 { 00017 public: 00019 CodeUnits(); 00020 00022 CodeUnits(const Real& a_unitTime, 00023 const Real& a_unitLength, 00024 const Real& a_unitDensity); 00025 00027 CodeUnits(const CodeUnits& a_input); 00028 00030 virtual ~CodeUnits(); 00031 00033 void define(); 00034 00036 void define(const Real& a_unitTime, 00037 const Real& a_unitLength, 00038 const Real& a_unitDensity); 00039 00041 void define(const CodeUnits& a_input); 00042 00044 void operator=(const CodeUnits& a_input); 00045 00047 Real length() const; 00048 00050 Real massDensity() const; 00051 00053 Real velocity() const; 00054 00056 Real time() const; 00057 00059 Real pressure() const; 00060 00062 Real temperature() const; 00063 00065 Real hydrogenMassFraction() const; 00066 00068 Real heliumMassFraction() const; 00069 00071 Real numDensityHydrogen() const; 00072 00074 Real numDensityHelium() const; 00075 00077 bool isDefined() const; 00078 00079 private: 00080 00081 bool m_isDefined; 00082 00083 Real m_unitLength; 00084 00085 Real m_unitMassDensity; 00086 00087 Real m_unitVelocity; 00088 00089 Real m_unitTime; 00090 00091 Real m_unitTemperature; 00092 00093 Real m_unitPressure; 00094 00095 Real m_unitNumDensHydrogen; 00096 00097 Real m_unitNumDensHelium; 00098 00099 Real m_hydrogenMassFraction; 00100 00101 Real m_heliumMassFraction; 00102 }; 00103 00104 #endif