00001
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025 #ifndef _HeterogeneousRateConstant_h
00026 #define _HeterogeneousRateConstant_h
00027
00028 #include "Quantity/Variable.h"
00029 #include "Quantity/Constant.h"
00030 #include "Quantity/QuantityCluster.h"
00031
00032 #include "PhysicalQuantities/Length.h"
00033 #include "PhysicalQuantities/Time.h"
00034
00035 namespace quantity {
00036 namespace heterogeneousRateConstant {
00037
00038
00039 typedef BSUtilities::Rational<1> LE;
00040 typedef BSUtilities::Rational<0> M;
00041 typedef BSUtilities::Rational<-1> TI;
00042 typedef BSUtilities::Rational<0> E;
00043 typedef BSUtilities::Rational<0> TE;
00044 typedef BSUtilities::Rational<0> A;
00045 typedef BSUtilities::Rational<0> LU;
00046
00047 typedef dimension::Dimension<LE, M, TI, E, TE, A, LU> Dimension;
00048
00050 class Unit;
00051
00052
00053
00054 typedef LOKI_TYPELIST_3(length::Metre, length::CentiMetre,
00055 length::MilliMetre) LengthList;
00056
00057 typedef
00058 unit::ComposeElement<Unit, LengthList,
00059 BSUtilities::Rational<1> > LengthElement;
00060
00061 typedef LOKI_TYPELIST_3(time::Second, time::MilliSecond,
00062 time::MicroSecond) TimeList;
00063
00064 typedef unit::ComposeElement<Unit, TimeList,
00065 BSUtilities::Rational<-1> > TimeElement;
00066
00067 typedef unit::ComposeBase<Unit,
00068 LOKI_TYPELIST_2(LengthElement, TimeElement)>
00069 HeterogeneousRateConstantComposedUnit;
00070
00071 typedef unit::Composed<HeterogeneousRateConstantComposedUnit,
00072 LOKI_TYPELIST_2(length::Metre, time::Second)> MetrePerSecond;
00073 typedef unit::Composed<HeterogeneousRateConstantComposedUnit,
00074 LOKI_TYPELIST_2(length::CentiMetre, time::Second)>
00075 CentiMetrePerSecond;
00076
00078 typedef LOKI_TYPELIST_2(MetrePerSecond, CentiMetrePerSecond) Units;
00079
00080
00081
00082 typedef Quantity<Dimension, Unit, Units, MetrePerSecond> Quantity;
00083
00084 }
00085
00086 typedef Variable<heterogeneousRateConstant::Quantity>
00087 HeterogeneousRateConstant;
00088 typedef Constant<heterogeneousRateConstant::Quantity>
00089 HeterogeneousRateConstantConstant;
00090
00091 typedef VariableVector<heterogeneousRateConstant::Quantity>
00092 HeterogeneousRateConstantVector;
00093
00094 }
00095
00096 #endif