00001
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027 #ifndef _LangmuirEquilibriumConstant_h
00028 #define _LangmuirEquilibriumConstant_h
00029
00030
00031 #include "Quantities/Quantity/Variable.h"
00032 #include "Quantities/Quantity/Constant.h"
00033 #include "Quantities/Quantity/QuantityAggregates.h"
00034 #include "Quantities/PhysicalQuantities/Volume.h"
00035 #include "Quantities/PhysicalQuantities/AmountOfSubstance.h"
00036
00037 namespace quantity {
00038 namespace langmuirEquilibriumConstant {
00039
00041 class Class;
00042
00044 class Unit;
00045
00046
00047
00048
00049
00051 typedef unit::Component<volume::Units, BSUtilities::Rational<1> >
00052 VolumeComponent;
00053
00055 typedef unit::Component<amountOfSubstance::Units, BSUtilities::Rational<-1> >
00056 AmountOfSubstanceComponent;
00057
00058 typedef unit::ComposeBase<Unit,
00059 Loki::Typelist<VolumeComponent, Loki::Typelist<AmountOfSubstanceComponent,
00060 Loki::NullType> > > LangmuirEquilibriumConstantComposedUnit;
00061
00062 typedef unit::Composed<LangmuirEquilibriumConstantComposedUnit,
00063 Loki::Typelist<volume::CubicCentiMetre,
00064 Loki::Typelist<amountOfSubstance::Mole, Loki::NullType> > >
00065 CubicCentiMetrePerMole;
00066
00068 typedef Loki::Typelist<LangmuirEquilibriumConstantComposedUnit,
00069 Loki::NullType> Units;
00070
00071
00072
00073 typedef Quantity<Class> Quantity;
00074
00075 class DerivedLangmuirEquilibriumConstant;
00076
00077 }
00078
00080 template<>
00081 struct QuantityTraits<langmuirEquilibriumConstant::Class>
00082 {
00083 typedef
00084 dimension::Dimension<BSUtilities::Rational<3>,
00085 BSUtilities::Rational<0>, BSUtilities::Rational<0>,
00086 BSUtilities::Rational<0>, BSUtilities::Rational<0>,
00087 BSUtilities::Rational<-1>, BSUtilities::Rational<0> > Dimension;
00088 typedef langmuirEquilibriumConstant::Unit UnitType;
00089 typedef langmuirEquilibriumConstant::Units UnitList;
00090 typedef langmuirEquilibriumConstant::CubicCentiMetrePerMole DefaultUnit;
00091
00092 typedef langmuirEquilibriumConstant::DerivedLangmuirEquilibriumConstant DefaultDerivedQuantityType;
00093
00094 static const std::string NameString ();
00095 static const std::string SymbolString ();
00096
00097 };
00098
00099
00100 template<>
00101 struct DerivedQuantityTraits<langmuirEquilibriumConstant::Class,
00102 langmuirEquilibriumConstant::DerivedLangmuirEquilibriumConstant>
00103 {
00104 static const bool OverwriteName = false;
00105 static const bool OverwriteSymbol = false;
00106
00107 static const std::string NameString ();
00108 static const std::string SymbolString ();
00109
00110 };
00111
00113 typedef Variable<langmuirEquilibriumConstant::Quantity>
00114 LangmuirEquilibriumConstant;
00115
00117 typedef Constant<langmuirEquilibriumConstant::Quantity>
00118 LangmuirEquilibriumConstantConstant;
00119
00121 typedef VariableVector<QuantityVector<langmuirEquilibriumConstant::Class> >
00122 LangmuirEquilibriumConstantVector;
00123
00124 }
00125
00126 #endif