00001
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027 #ifndef _Mass_h
00028 #define _Mass_h
00029
00030 #include "Quantity/Variable.h"
00031 #include "Quantity/Constant.h"
00032 #include "Quantity/QuantityCluster.h"
00033
00034 namespace quantity {
00035 namespace mass {
00036
00037
00038 typedef BSUtilities::Rational<0> LE;
00039 typedef BSUtilities::Rational<1> M;
00040 typedef BSUtilities::Rational<0> 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 class GramUnits;
00053 class ElectronMassUnit;
00054 class DaltonUnit;
00055 class UUnit;
00056 class GammaUnit;
00057 class TonneUnits;
00058 class PoundUnit;
00059 class OunceUnit;
00060 class TroyOunceUnit;
00061 class GrainUnit;
00062
00063
00064
00065 typedef unit::Prefixable<Unit, GramUnits> Grams;
00066
00067 typedef unit::Prefixed<Grams> Gram;
00068 typedef unit::Prefixed<Grams, unit::Milli> MilliGram;
00069 typedef unit::Prefixed<Grams, unit::Micro> MicroGram;
00070 typedef unit::Prefixed<Grams, unit::Nano> NanoGram;
00071 typedef unit::Prefixed<Grams, unit::Pico> PicoGram;
00072 typedef unit::Prefixed<Grams, unit::Kilo> KiloGram;
00073
00074
00075
00076 typedef unit::NonPrefixable<Unit, ElectronMassUnit> ElectronMass;
00077
00078
00079
00080 typedef unit::NonPrefixable<Unit, DaltonUnit> Dalton;
00081
00082
00083
00084 typedef unit::NonPrefixable<Unit, UUnit> U;
00085
00086
00087
00088 typedef unit::NonPrefixable<Unit, GammaUnit> Gamma;
00089
00090
00091 typedef unit::Prefixable<Unit, TonneUnits> Tonnes;
00092
00093 typedef unit::Prefixed<Tonnes> Tonne;
00094 typedef unit::Prefixed<Tonnes, unit::Kilo> KiloTonne;
00095 typedef unit::Prefixed<Tonnes, unit::Mega> MegaTonne;
00096
00097
00098
00099 typedef unit::NonPrefixable<Unit, PoundUnit> Pound;
00100
00101
00102
00103 typedef unit::NonPrefixable<Unit, OunceUnit> Ounce;
00104
00105
00106
00107 typedef unit::NonPrefixable<Unit, TroyOunceUnit> TroyOunce;
00108
00109
00110
00111 typedef unit::NonPrefixable<Unit, GrainUnit> Grain;
00112
00113 typedef
00114 Loki::TL::Append<Loki::TL::Append<Grams::Units, Tonne::Units>::Result,
00115 LOKI_TYPELIST_8(ElectronMass, Dalton, U, Gamma, Pound, Ounce, TroyOunce,
00116 Grain)>::Result Units;
00117
00118
00119
00120 typedef Gram g;
00121 typedef KiloGram kg;
00122
00123
00124
00125 typedef Quantity<Dimension, Unit, Units, KiloGram> Quantity;
00126
00127 }
00128
00129 typedef Variable<mass::Quantity> Mass;
00130 typedef Constant<mass::Quantity> MassConstant;
00131
00132 typedef VariableVector<mass::Quantity> MassVector;
00133
00134 }
00135
00136 #endif