00001
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025 #ifndef _Force_h
00026 #define _Force_h
00027
00028 #include "Quantity/Variable.h"
00029 #include "Quantity/Constant.h"
00030 #include "Quantity/QuantityCluster.h"
00031
00032 namespace quantity {
00033 namespace force {
00034
00035
00036 typedef BSUtilities::Rational<1> LE;
00037 typedef BSUtilities::Rational<1> M;
00038 typedef BSUtilities::Rational<-2> TI;
00039 typedef BSUtilities::Rational<0> E;
00040 typedef BSUtilities::Rational<0> TE;
00041 typedef BSUtilities::Rational<0> A;
00042 typedef BSUtilities::Rational<0> LU;
00043
00044 typedef dimension::Dimension<LE, M, TI, E, TE, A, LU> Dimension;
00045
00047 class Unit;
00048
00049
00050 class NewtonUnits;
00051 class DyneUnit;
00052 class KilogramForceUnit;
00053 class AtomicUnit;
00054
00055
00056
00057 typedef unit::Prefixable<Unit, NewtonUnits> Newtons;
00058
00059 typedef unit::Prefixed<Newtons> Newton;
00060
00061
00062
00063 typedef unit::NonPrefixable<Unit, DyneUnit> Dyne;
00064
00065
00066
00067 typedef unit::NonPrefixable<Unit, KilogramForceUnit> KilogramForce;
00068
00069
00070
00071 typedef unit::NonPrefixable<Unit, AtomicUnit> Atomic;
00072
00073 typedef Loki::TL::Append<Newtons::Units,
00074 LOKI_TYPELIST_3(Dyne, KilogramForce, Atomic)>::Result Units;
00075
00076
00077
00078 typedef Newton N;
00079 typedef Dyne dyn;
00080
00081
00082
00083 typedef Quantity<Dimension, Unit, Units, Newton> Quantity;
00084
00085 }
00086
00087 typedef Variable<force::Quantity> Force;
00088 typedef Constant<force::Quantity> ForceConstant;
00089
00090 typedef QuantityVector<Variable, force::Quantity> ForceVector;
00091 }
00092
00093 #endif