00001
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026 #ifndef _ElectricPotential_h
00027 #define _ElectricPotential_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 electricPotential {
00036
00038 class Class;
00039
00041 class Unit;
00042
00043
00044 class VoltUnits;
00045 class GauUnit;
00046 class MeanInternationalVoltUnit;
00047 class USInternationalVoltUnit;
00048 class AtomicUnit;
00049
00051 typedef unit::Prefixable<Unit, VoltUnits> Volts;
00052
00054 typedef unit::Prefixed<Volts> Volt;
00055
00057 typedef unit::Prefixed<Volts, unit::Milli> MilliVolt;
00058
00060 typedef unit::Prefixed<Volts, unit::Micro> MicroVolt;
00061
00063 typedef unit::Prefixed<Volts, unit::Kilo> KiloVolt;
00064
00066 typedef unit::Prefixed<Volts, unit::Mega> MegaVolt;
00067
00069 typedef unit::NonPrefixable<Unit, GauUnit> Gau;
00070
00072 typedef unit::NonPrefixable<Unit,
00073 MeanInternationalVoltUnit> MeanInternationalVolt;
00074
00076 typedef unit::NonPrefixable<Unit,
00077 USInternationalVoltUnit> USInternationalVolt;
00078
00080 typedef unit::NonPrefixable<Unit, AtomicUnit> Atomic;
00081
00083 typedef Loki::Typelist<Volts, Loki::Typelist<Gau,
00084 Loki::Typelist<MeanInternationalVolt, Loki::Typelist<USInternationalVolt,
00085 Loki::Typelist<Atomic, Loki::NullType> > > > > Units;
00086
00087
00088
00089 typedef Volt V;
00090 typedef MilliVolt mV;
00091 typedef MicroVolt uV;
00092
00093
00094
00095 typedef Quantity<Class> Quantity;
00096
00097 class DerivedElectricPotential;
00098
00099 }
00100
00102 template<>
00103 struct QuantityTraits<electricPotential::Class>
00104 {
00105 typedef
00106 dimension::Dimension<BSUtilities::Rational<2>,
00107 BSUtilities::Rational<1>, BSUtilities::Rational<-3>,
00108 BSUtilities::Rational<-1>, BSUtilities::Rational<0>,
00109 BSUtilities::Rational<0>, BSUtilities::Rational<0> > Dimension;
00110 typedef electricPotential::Unit UnitType;
00111 typedef electricPotential::Units UnitList;
00112 typedef electricPotential::Volt DefaultUnit;
00113
00114 typedef electricPotential::DerivedElectricPotential DefaultDerivedQuantityType;
00115
00116 static const std::string NameString ();
00117 static const std::string SymbolString ();
00118
00119 };
00120
00121
00122 template<>
00123 struct DerivedQuantityTraits<electricPotential::Class, electricPotential::DerivedElectricPotential>
00124 {
00125 static const bool OverwriteName = false;
00126 static const bool OverwriteSymbol = false;
00127
00128 static const std::string NameString ();
00129 static const std::string SymbolString ();
00130
00131 };
00132
00133
00135 typedef Variable<electricPotential::Quantity> ElectricPotential;
00136
00138 typedef Constant<electricPotential::Quantity> ElectricPotentialConstant;
00139
00141 typedef VariableVector<QuantityVector<electricPotential::Class> >
00142 ElectricPotentialVector;
00143 }
00144
00145 #endif