00001
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025 #ifndef _FirstOrderRateConstant_h
00026 #define _FirstOrderRateConstant_h
00027
00028 #include "Quantity/Variable.h"
00029 #include "Quantity/Constant.h"
00030 #include "Quantity/QuantityCluster.h"
00031
00032 #include "PhysicalQuantities/Time.h"
00033
00034 namespace Quantities {
00035
00036
00037 typedef BSUtilities::Rational<0> FirstOrderRateConstant_LE;
00038 typedef BSUtilities::Rational<0> FirstOrderRateConstant_M;
00039 typedef BSUtilities::Rational<-1> FirstOrderRateConstant_TI;
00040 typedef BSUtilities::Rational<0> FirstOrderRateConstant_E;
00041 typedef BSUtilities::Rational<0> FirstOrderRateConstant_TE;
00042 typedef BSUtilities::Rational<0> FirstOrderRateConstant_A;
00043 typedef BSUtilities::Rational<0> FirstOrderRateConstant_LU;
00044 class FirstOrderRateConstantGroup
00045 {
00046 public:
00047 typedef TYPELIST_7(FirstOrderRateConstant_LE,
00048 FirstOrderRateConstant_M,
00049 FirstOrderRateConstant_TI,
00050 FirstOrderRateConstant_E,
00051 FirstOrderRateConstant_TE,
00052 FirstOrderRateConstant_A,
00053 FirstOrderRateConstant_LU) DimTL;
00054 };
00055
00056 namespace FirstOrderRateConstantUnits {
00057
00058
00059 typedef
00060 Units::Unit<FirstOrderRateConstantGroup> FirstOrderRateConstantUnit;
00061
00062
00063
00064
00065
00066
00067 typedef TYPELIST_3(TimeUnits::Minute, TimeUnits::Second,
00068 TimeUnits::MilliSecond) TimeList;
00069
00070 typedef Units::CompoundElement<FirstOrderRateConstantGroup, TimeList,
00071 BSUtilities::Rational<-1> > TimeElement;
00072 typedef TYPELIST_1(TimeElement) FirstOrderRateConstantCompositeList;
00073 typedef Units::Compound<FirstOrderRateConstantGroup,
00074 FirstOrderRateConstantCompositeList>
00075 FirstOrderRateConstantCompositeUnits;
00076
00077 typedef Units::Composed<FirstOrderRateConstantCompositeUnits,
00078 TYPELIST_1(TimeUnits::Minute)> OnePerMinute;
00079
00080 typedef Units::Composed<FirstOrderRateConstantCompositeUnits,
00081 TYPELIST_1(TimeUnits::Second)> OnePerSecond;
00082
00083 typedef Units::Composed<FirstOrderRateConstantCompositeUnits,
00084 TYPELIST_1(TimeUnits::MilliSecond)> OnePerMilliSecond;
00085
00086
00088 typedef TYPELIST_3(OnePerMinute, OnePerSecond, OnePerMilliSecond)
00089 FirstOrderRateConstantUnits;
00090 }
00091
00092
00093
00094 typedef Dimensions::Dimension<FirstOrderRateConstantGroup>
00095 FirstOrderRateConstantDimension;
00096
00097
00098
00099 typedef Quantity<FirstOrderRateConstantGroup,
00100 FirstOrderRateConstantUnits::FirstOrderRateConstantUnits,
00101 FirstOrderRateConstantUnits::OnePerSecond>
00102 FirstOrderRateConstantQuantities;
00103
00104 typedef Variable<FirstOrderRateConstantQuantities>
00105 FirstOrderRateConstant;
00106 typedef Constant<FirstOrderRateConstantQuantities>
00107 FirstOrderRateConstantConstant;
00108
00109 typedef VariableVector<FirstOrderRateConstantQuantities>
00110 FirstOrderRateConstantVector;
00111
00112 }
00113
00114 #endif