00001
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028 #ifndef _LoschmidtConstant_h
00029 #define _LoschmidtConstant_h
00030
00031
00032 #include "Quantities/Quantity/UniqueConstant.h"
00033 #include "Quantities/PhysicalQuantities/Length.h"
00034
00035 namespace quantity {
00036 namespace loschmidtConstant {
00037
00039 class Class;
00040
00042 class Unit;
00043
00044
00045
00046
00048 typedef unit::Component<length::Units, BSUtilities::Rational<-3> >
00049 LengthElement;
00050
00051 typedef
00052 unit::ComposeBase<Unit, Loki::Typelist<LengthElement,
00053 Loki::NullType> > LoschmidtConstantComposedUnit;
00054
00055 typedef unit::Composed<LoschmidtConstantComposedUnit,
00056 Loki::Typelist<length::Metre, Loki::NullType> > OnePerCubicMetre;
00057
00059 typedef Loki::Typelist<LoschmidtConstantComposedUnit, Loki::NullType> Units;
00060
00061
00062
00063 typedef Quantity<Class> Quantity;
00064
00065 class DerivedLoschmidtConstant;
00066
00067 }
00068
00070 template<>
00071 struct QuantityTraits<loschmidtConstant::Class>
00072 {
00073 typedef
00074 dimension::Dimension<BSUtilities::Rational<-3>,
00075 BSUtilities::Rational<0>, BSUtilities::Rational<0>,
00076 BSUtilities::Rational<0>, BSUtilities::Rational<0>,
00077 BSUtilities::Rational<0>, BSUtilities::Rational<0> > Dimension;
00078 typedef loschmidtConstant::Unit UnitType;
00079 typedef loschmidtConstant::Units UnitList;
00080 typedef loschmidtConstant::OnePerCubicMetre DefaultUnit;
00081
00082 typedef loschmidtConstant::DerivedLoschmidtConstant DefaultDerivedQuantityType;
00083
00084 static const std::string NameString ();
00085 static const std::string SymbolString ();
00086
00087 };
00088
00089
00090 template<>
00091 struct DerivedQuantityTraits<loschmidtConstant::Class, loschmidtConstant::DerivedLoschmidtConstant>
00092 {
00093 static const bool OverwriteName = false;
00094 static const bool OverwriteSymbol = false;
00095
00096 static const std::string NameString ();
00097 static const std::string SymbolString ();
00098
00099 };
00100
00102 typedef Loki::SingletonHolder<UniqueConstant
00103 <loschmidtConstant::Quantity> > LoschmidtConstant;
00104
00106 #define LOSCHMIDTCONSTANT LoschmidtConstant::Instance()
00107
00108 }
00109
00110 #endif