Main Page | Namespace List | Class Hierarchy | Class List | File List | Namespace Members | Class Members

ElectricPotential.h

Go to the documentation of this file.
00001 
00005 /* Copyright (C) 2002 - 2004, Bernd Speiser */
00006 /* This file is part of Quantities.
00007 
00008 PhysicalQuantities is free software; you can redistribute it and/or
00009 modify it under the terms of the GNU General Public License
00010 as published by the Free Software Foundation; either version 2
00011 of the License, or (at your option) any later version.
00012 
00013 PhysicalQuantities is distributed in the hope that it will be useful,
00014 but WITHOUT ANY WARRANTY; without even the implied warranty of
00015 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
00016 GNU General Public License for more details.
00017   
00018 You should have received a copy of the GNU General Public License
00019 along with this program; if not, write to the Free Software
00020 Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
00021 02111-1307, USA.
00022 */
00023 
00024 #ifndef _ElectricPotential_h
00025 #define _ElectricPotential_h
00026 
00027 #include "Quantity/Variable.h"
00028 #include "Quantity/Constant.h"
00029 #include "Quantity/QuantityCluster.h"
00030 
00031 namespace Quantities {
00032 
00033 /* ElectricPotential dimension */
00034 typedef BSUtilities::Rational<2> ElectricPotential_LE;
00035 typedef BSUtilities::Rational<1> ElectricPotential_M;
00036 typedef BSUtilities::Rational<-3> ElectricPotential_TI;
00037 typedef BSUtilities::Rational<-1> ElectricPotential_E;
00038 typedef BSUtilities::Rational<0> ElectricPotential_TE;
00039 typedef BSUtilities::Rational<0> ElectricPotential_A;
00040 typedef BSUtilities::Rational<0> ElectricPotential_LU;
00041 class ElectricPotentialGroup
00042   {
00043     public:
00044       typedef TYPELIST_7(ElectricPotential_LE, ElectricPotential_M, 
00045                          ElectricPotential_TI, ElectricPotential_E,
00046                          ElectricPotential_TE, ElectricPotential_A, 
00047                                             ElectricPotential_LU) DimTL;
00048   };
00049 
00050   namespace ElectricPotentialUnits {
00051 
00052 /* declaration of ElectricPotential unit base class */
00053 
00054 typedef Units::Unit<ElectricPotentialGroup> ElectricPotentialUnit;
00055 
00056 /* declaration of ElectricPotential units */
00057 class VoltUnits;
00058 class GauUnit;
00059 class MeanInternationalVoltUnit;
00060 class USInternationalVoltUnit;
00061 class AtomicUnit;
00062 
00063 /* the Volt and prefixed Volts */
00064 
00065 typedef Units::Prefixable<ElectricPotentialGroup, VoltUnits> Volts;
00066 
00067 typedef Units::Prefixed<Volts> Volt;
00068 typedef Units::Prefixed<Volts, Units::Milli> MilliVolt;
00069 typedef Units::Prefixed<Volts, Units::Micro> MicroVolt;
00070 typedef Units::Prefixed<Volts, Units::Kilo> KiloVolt;
00071 typedef Units::Prefixed<Volts, Units::Mega> MegaVolt;
00072 
00073 /* the Gau */
00074 
00075 typedef Units::NonPrefixable<ElectricPotentialGroup, GauUnit> Gau;
00076 
00077 /* the mean international Volt */
00078 
00079 typedef Units::NonPrefixable<ElectricPotentialGroup, 
00080                        MeanInternationalVoltUnit> MeanInternationalVolt;
00081 
00082 /* the US international Volt */
00083 
00084 typedef Units::NonPrefixable<ElectricPotentialGroup, 
00085                            USInternationalVoltUnit> USInternationalVolt;
00086 
00087 /* the atomic unit of electric potential */
00088 
00089 typedef Units::NonPrefixable<ElectricPotentialGroup, AtomicUnit> Atomic;
00090 
00091 typedef Loki::TL::Append<Volts::Units,
00092   TYPELIST_4(Gau, MeanInternationalVolt, USInternationalVolt, 
00093                                 Atomic)>::Result ElectricPotentialUnits;
00094 
00095 /* declare some abbreviated time units */
00096 
00097 typedef Volt V;
00098 typedef MilliVolt mV;
00099 typedef MicroVolt muV;
00100 
00101   }
00102 
00103 /* declaration of ElectricPotential dimension */
00104 
00105 typedef 
00106   Dimensions::Dimension<ElectricPotentialGroup> 
00107                                              ElectricPotentialDimension;
00108 
00109 /* ElectricPotential quantity */
00110 
00111 typedef Quantity<ElectricPotentialGroup, 
00112   ElectricPotentialUnits::ElectricPotentialUnits,
00113               ElectricPotentialUnits::Volt> ElectricPotentialQuantities;
00114 
00115 typedef Variable<ElectricPotentialQuantities> ElectricPotential;
00116 typedef Constant<ElectricPotentialQuantities> ElectricPotentialConstant;
00117 
00118 typedef VariableVector<ElectricPotentialQuantities> 
00119                                                 ElectricPotentialVector;
00120 }
00121 
00122 #endif /* _ElectricPotential_h */

Generated on Sun Jan 15 13:58:03 2006 for PhysicalQuantities by doxygen 1.3.6