00001
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028 #ifndef _FaradayConstant_h
00029 #define _FaradayConstant_h
00030
00031 #include "Quantity/UniqueConstant.h"
00032
00033 #include "PhysicalQuantities/AmountOfSubstance.h"
00034 #include "PhysicalQuantities/ElectricCharge.h"
00035
00036 namespace quantity {
00037 namespace faradayConstant {
00038
00039
00040 typedef BSUtilities::Rational<0> LE;
00041 typedef BSUtilities::Rational<0> M;
00042 typedef BSUtilities::Rational<1> TI;
00043 typedef BSUtilities::Rational<1> E;
00044 typedef BSUtilities::Rational<0> TE;
00045 typedef BSUtilities::Rational<-1> A;
00046 typedef BSUtilities::Rational<0> LU;
00047
00048 typedef dimension::Dimension<LE, M, TI, E, TE, A, LU> Dimension;
00049
00051 class Unit;
00052
00053
00054
00055 typedef LOKI_TYPELIST_2(electricCharge::Coulomb,
00056 electricCharge::MilliCoulomb) ElectricChargeList;
00057
00058 typedef unit::ComposeElement<Unit,
00059 ElectricChargeList, BSUtilities::Rational<1> > ElectricChargeElement;
00060
00061 typedef LOKI_TYPELIST_2(amountOfSubstance::Mole,
00062 amountOfSubstance::MilliMole) AmountOfSubstanceList;
00063
00064 typedef unit::ComposeElement<Unit,
00065 AmountOfSubstanceList, BSUtilities::Rational<-1> >
00066 AmountOfSubstanceElement;
00067
00068 typedef
00069 unit::ComposeBase<Unit,
00070 LOKI_TYPELIST_2(ElectricChargeElement, AmountOfSubstanceElement)>
00071 FaradayConstantComposedUnit;
00072
00073 typedef unit::Composed<FaradayConstantComposedUnit,
00074 LOKI_TYPELIST_2(electricCharge::Coulomb,
00075 amountOfSubstance::Mole)> CoulombPerMole;
00076 typedef unit::Composed<FaradayConstantComposedUnit,
00077 LOKI_TYPELIST_2(electricCharge::Coulomb,
00078 amountOfSubstance::MilliMole)> CoulombPerMilliMole;
00079
00080
00082 typedef LOKI_TYPELIST_2(CoulombPerMole, CoulombPerMilliMole) Units;
00083
00084
00085
00086 typedef Quantity<Dimension, Unit, Units, CoulombPerMole> Quantity;
00087
00088 }
00089
00090 typedef Loki::SingletonHolder<UniqueConstant
00091 <faradayConstant::Quantity> > FaradayConstant;
00092
00093 #define FARADAYCONSTANT FaradayConstant::Instance()
00094
00095 }
00096
00097 #endif