00001
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027 #ifndef thermodynamicTemperature_h
00028 #define thermodynamicTemperature_h
00029
00030
00031 #include "Quantities/Quantity/Variable.h"
00032 #include "Quantities/Quantity/Constant.h"
00033 #include "Quantities/Quantity/QuantityAggregates.h"
00034
00035 namespace quantity {
00036 namespace thermodynamicTemperature {
00037
00039 class Class;
00040
00042 class Unit;
00043
00044
00045 class KelvinUnits;
00046 class DegreeRankineUnit;
00047
00049 typedef unit::Prefixable<Unit, KelvinUnits> Kelvins;
00050
00052 typedef unit::Prefixed<Kelvins> Kelvin;
00053
00055 typedef unit::Prefixed<Kelvins, unit::Milli> MilliKelvin;
00056
00058 typedef unit::NonPrefixable<Unit, DegreeRankineUnit> DegreeRankine;
00059
00061 typedef Loki::Typelist<Kelvins,
00062 Loki::Typelist<DegreeRankine, Loki::NullType> > Units;
00063
00064
00065 typedef Kelvin K;
00066
00067
00068
00069 typedef Quantity<Class> Quantity;
00070
00071 class DerivedThermodynamicTemperature;
00072
00073 }
00074
00076 template<>
00077 struct QuantityTraits<thermodynamicTemperature::Class>
00078 {
00079 typedef
00080 dimension::Dimension<BSUtilities::Rational<0>,
00081 BSUtilities::Rational<0>, BSUtilities::Rational<0>,
00082 BSUtilities::Rational<0>, BSUtilities::Rational<1>,
00083 BSUtilities::Rational<0>, BSUtilities::Rational<0> > Dimension;
00084 typedef thermodynamicTemperature::Unit UnitType;
00085 typedef thermodynamicTemperature::Units UnitList;
00086 typedef thermodynamicTemperature::Kelvin DefaultUnit;
00087
00088 typedef thermodynamicTemperature::DerivedThermodynamicTemperature DefaultDerivedQuantityType;
00089
00090 static const std::string NameString ();
00091 static const std::string SymbolString ();
00092
00093 };
00094
00095
00096 template<>
00097 struct DerivedQuantityTraits<thermodynamicTemperature::Class,
00098 thermodynamicTemperature::DerivedThermodynamicTemperature>
00099 {
00100 static const bool OverwriteName = false;
00101 static const bool OverwriteSymbol = false;
00102
00103 static const std::string NameString ();
00104 static const std::string SymbolString ();
00105
00106 };
00107
00108
00110 typedef Variable<thermodynamicTemperature::Quantity> ThermodynamicTemperature;
00111
00113 typedef Constant<thermodynamicTemperature::Quantity>
00114 ThermodynamicTemperatureConstant;
00115
00117 typedef VariableVector<QuantityVector<thermodynamicTemperature::Class> >
00118 ThermodynamicTemperatureVector;
00119
00120 }
00121
00122 #endif