00001
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024 #ifndef _SurfaceConcentration_h
00025 #define _SurfaceConcentration_h
00026
00027 #include "Quantity/Variable.h"
00028 #include "Quantity/Constant.h"
00029 #include "Quantity/QuantityCluster.h"
00030
00031 #include "PhysicalQuantities/AmountOfSubstance.h"
00032 #include "PhysicalQuantities/Volume.h"
00033
00034 namespace quantity {
00035 namespace surfaceConcentration {
00036
00037
00038 typedef BSUtilities::Rational<-2> LE;
00039 typedef BSUtilities::Rational<0> M;
00040 typedef BSUtilities::Rational<0> TI;
00041 typedef BSUtilities::Rational<0> E;
00042 typedef BSUtilities::Rational<0> TE;
00043 typedef BSUtilities::Rational<1> 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_2(amountOfSubstance::Mole,
00054 amountOfSubstance::MilliMole) AmountOfSubstanceList;
00055
00056 typedef unit::ComposeElement<Unit,
00057 AmountOfSubstanceList, BSUtilities::Rational<1> >
00058 AmountOfSubstanceElement;
00059
00060 typedef LOKI_TYPELIST_2(length::Metre, length::CentiMetre) LengthList;
00061
00062 typedef unit::ComposeElement<Unit, LengthList,
00063 BSUtilities::Rational<-2> > LengthElement;
00064
00065 typedef unit::ComposeBase<Unit,
00066 LOKI_TYPELIST_2(AmountOfSubstanceElement, LengthElement)>
00067 SurfaceConcentrationComposedUnit;
00068
00069 typedef unit::Composed<SurfaceConcentrationComposedUnit,
00070 LOKI_TYPELIST_2(amountOfSubstance::Mole, length::Metre)>
00071 MolePerSquareMetre;
00072
00073 typedef unit::Composed<SurfaceConcentrationComposedUnit,
00074 LOKI_TYPELIST_2(amountOfSubstance::Mole, length::CentiMetre)>
00075 MolePerSquareCentiMetre;
00076
00077
00078 typedef unit::Composed<SurfaceConcentrationComposedUnit,
00079 LOKI_TYPELIST_2(amountOfSubstance::MilliMole, length::Metre)>
00080 MilliMolePerSquareMetre;
00081
00082 typedef unit::Composed<SurfaceConcentrationComposedUnit,
00083 LOKI_TYPELIST_2(amountOfSubstance::MilliMole,
00084 length::CentiMetre)> MilliMolePerSquareCentiMetre;
00085
00087 typedef LOKI_TYPELIST_4(MolePerSquareMetre, MolePerSquareCentiMetre,
00088 MilliMolePerSquareMetre, MilliMolePerSquareCentiMetre) Units;
00089
00090
00091
00092 typedef Quantity<Dimension, Unit, Units, MolePerSquareMetre> Quantity;
00093
00094 }
00095
00096 typedef Variable<surfaceConcentration::Quantity> SurfaceConcentration;
00097 typedef Constant<surfaceConcentration::Quantity>
00098 SurfaceConcentrationConstant;
00099
00100 typedef VariableVector<surfaceConcentration::Quantity>
00101 SurfaceConcentrationVector;
00102
00103 }
00104
00105 #endif