00001
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025 #ifndef _ThermodynamicTemperature_h
00026 #define _ThermodynamicTemperature_h
00027
00028 #include "Quantity/Variable.h"
00029 #include "Quantity/Constant.h"
00030 #include "Quantity/QuantityCluster.h"
00031
00032 namespace Quantities {
00033
00034
00035 typedef BSUtilities::Rational<0> ThermodynamicTemperature_LE;
00036 typedef BSUtilities::Rational<0> ThermodynamicTemperature_M;
00037 typedef BSUtilities::Rational<0> ThermodynamicTemperature_TI;
00038 typedef BSUtilities::Rational<0> ThermodynamicTemperature_E;
00039 typedef BSUtilities::Rational<1> ThermodynamicTemperature_TE;
00040 typedef BSUtilities::Rational<0> ThermodynamicTemperature_A;
00041 typedef BSUtilities::Rational<0> ThermodynamicTemperature_LU;
00042 class ThermodynamicTemperatureGroup
00043 {
00044 public:
00045 typedef TYPELIST_7(ThermodynamicTemperature_LE,
00046 ThermodynamicTemperature_M,
00047 ThermodynamicTemperature_TI,
00048 ThermodynamicTemperature_E,
00049 ThermodynamicTemperature_TE,
00050 ThermodynamicTemperature_A,
00051 ThermodynamicTemperature_LU) DimTL;
00052 };
00053
00055 namespace ThermodynamicTemperatureUnits {
00056
00057
00058 typedef Units::Unit<ThermodynamicTemperatureGroup>
00059 ThermodynamicTemperatureUnit;
00060
00061
00062 class KelvinUnits;
00063 class DegreeRankineUnit;
00064
00065
00066
00067 typedef Units::Prefixable<ThermodynamicTemperatureGroup, KelvinUnits>
00068 Kelvins;
00069
00070 typedef Units::Prefixed<Kelvins> Kelvin;
00071 typedef Units::Prefixed<Kelvins, Units::Milli> MilliKelvin;
00072
00073
00074
00075 typedef Units::NonPrefixable<ThermodynamicTemperatureGroup,
00076 DegreeRankineUnit> DegreeRankine;
00077
00079 typedef Loki::TL::Append<Kelvins::Units,
00080 TYPELIST_1(DegreeRankine)>::Result ThermodynamicTemperatureUnits;
00081
00082
00083
00084 typedef Kelvin K;
00085
00086 }
00087
00088
00089
00090 typedef Dimensions::Dimension<ThermodynamicTemperatureGroup>
00091 ThermodynamicTemperatureDimension;
00092
00093
00094
00095 typedef Quantity<ThermodynamicTemperatureGroup,
00096 ThermodynamicTemperatureUnits::ThermodynamicTemperatureUnits,
00097 ThermodynamicTemperatureUnits::Kelvin>
00098 ThermodynamicTemperatureQuantities;
00099
00100 typedef Variable<ThermodynamicTemperatureQuantities>
00101 ThermodynamicTemperature;
00102 typedef Constant<ThermodynamicTemperatureQuantities>
00103 ThermodynamicTemperatureConstant;
00104
00105 typedef VariableVector<ThermodynamicTemperatureQuantities>
00106 ThermodynamicTemperatureVector;
00107
00108 }
00109
00110 #endif