00001
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026 #ifndef _ElectricCurrent_h
00027 #define _ElectricCurrent_h
00028
00029
00030 #include "Quantities/Quantity/Variable.h"
00031 #include "Quantities/Quantity/Constant.h"
00032 #include "Quantities/Quantity/QuantityAggregates.h"
00033
00034 namespace quantity {
00035 namespace electricCurrent {
00036
00038 class Class;
00039
00041 class Unit;
00042
00043
00044 class AmpereUnits;
00045 class GauUnit;
00046 class BiotUnit;
00047 class AtomicUnit;
00048
00050 typedef unit::Prefixable<Unit, AmpereUnits> Amperes;
00051
00053 typedef unit::Prefixed<Amperes> Ampere;
00054
00056 typedef unit::Prefixed<Amperes, unit::Milli> MilliAmpere;
00057
00059 typedef unit::Prefixed<Amperes, unit::Micro> MicroAmpere;
00060
00062 typedef unit::NonPrefixable<Unit, GauUnit> Gau;
00063
00065 typedef unit::NonPrefixable<Unit, BiotUnit> Biot;
00066
00068 typedef unit::NonPrefixable<Unit, AtomicUnit> Atomic;
00069
00071 typedef Loki::Typelist<Amperes, Loki::Typelist<Gau, Loki::Typelist<Biot,
00072 Loki::Typelist<Atomic, Loki::NullType> > > > Units;
00073
00074
00075
00076 typedef Quantity<Class> Quantity;
00077
00078 class DerivedElectricCurrent;
00079
00080 }
00081
00083 template<>
00084 struct QuantityTraits<electricCurrent::Class>
00085 {
00086 typedef
00087 dimension::Dimension<BSUtilities::Rational<0>,
00088 BSUtilities::Rational<0>, BSUtilities::Rational<0>,
00089 BSUtilities::Rational<1>, BSUtilities::Rational<0>,
00090 BSUtilities::Rational<0>, BSUtilities::Rational<0> > Dimension;
00091 typedef electricCurrent::Unit UnitType;
00092 typedef electricCurrent::Units UnitList;
00093 typedef electricCurrent::Ampere DefaultUnit;
00094
00095 typedef electricCurrent::DerivedElectricCurrent DefaultDerivedQuantityType;
00096
00097 static const std::string NameString ();
00098 static const std::string SymbolString ();
00099
00100 };
00101
00102
00103 template<>
00104 struct DerivedQuantityTraits<electricCurrent::Class, electricCurrent::DerivedElectricCurrent>
00105 {
00106 static const bool OverwriteName = false;
00107 static const bool OverwriteSymbol = false;
00108
00109 static const std::string NameString ();
00110 static const std::string SymbolString ();
00111
00112 };
00113
00115 typedef Variable<electricCurrent::Quantity> ElectricCurrent;
00116
00118 typedef Constant<electricCurrent::Quantity> ElectricCurrentConstant;
00119
00121 typedef VariableVector<QuantityVector<electricCurrent::Class> >
00122 ElectricCurrentVector;
00123
00124 }
00125
00126 #endif