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