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

ElectricCurrent.h

Go to the documentation of this file.
00001 
00007 /* Copyright (C) 2002 - 2004, Bernd Speiser */
00008 /* This file is part of Quantities.
00009 
00010 PhysicalQuantities is free software; you can redistribute it and/or
00011 modify it under the terms of the GNU General Public License
00012 as published by the Free Software Foundation; either version 2
00013 of the License, or (at your option) any later version.
00014 
00015 PhysicalQuantities is distributed in the hope that it will be useful,
00016 but WITHOUT ANY WARRANTY; without even the implied warranty of
00017 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
00018 GNU General Public License for more details.
00019   
00020 You should have received a copy of the GNU General Public License
00021 along with this program; if not, write to the Free Software
00022 Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
00023 02111-1307, USA.
00024 */
00025 
00026 #ifndef _ElectricCurrent_h
00027 #define _ElectricCurrent_h
00028 
00029 #include "Quantity/Variable.h"
00030 #include "Quantity/Constant.h"
00031 #include "Quantity/QuantityCluster.h"
00032 
00033 namespace Quantities {
00034 
00035 /* ElectricCurrent dimension */
00036 typedef BSUtilities::Rational<0> ElectricCurrent_LE;
00037 typedef BSUtilities::Rational<0> ElectricCurrent_M;
00038 typedef BSUtilities::Rational<0> ElectricCurrent_TI;
00039 typedef BSUtilities::Rational<1> ElectricCurrent_E;
00040 typedef BSUtilities::Rational<0> ElectricCurrent_TE;
00041 typedef BSUtilities::Rational<0> ElectricCurrent_A;
00042 typedef BSUtilities::Rational<0> ElectricCurrent_LU;
00043 class ElectricCurrentGroup
00044   {
00045     public:
00046       typedef TYPELIST_7(ElectricCurrent_LE, ElectricCurrent_M, 
00047                          ElectricCurrent_TI, ElectricCurrent_E,
00048                          ElectricCurrent_TE, ElectricCurrent_A, 
00049                                               ElectricCurrent_LU) DimTL;
00050   };
00051 
00052 
00053   namespace ElectricCurrentUnits {
00054 /* declaration of ElectricCurrent unit base class */
00055 typedef Units::Unit<ElectricCurrentGroup> ElectricCurrentUnit;
00056 
00057 /* declaration of ElectricCurrent units */
00058 class AmpereUnits;
00059 class GauUnit;
00060 class BiotUnit;
00061 class AtomicUnit;
00062 
00063 /* declaration of ElectricCurrent units */
00064 /* the Ampere and prefixed Amperes */
00065 
00066 typedef Units::Prefixable<ElectricCurrentGroup, AmpereUnits> Amperes;
00067 
00068 typedef Units::Prefixed<Amperes> Ampere;
00069 typedef Units::Prefixed<Amperes, Units::Milli> MilliAmpere;
00070 typedef Units::Prefixed<Amperes, Units::Micro> MicroAmpere;
00071 
00072 /* the Gau */
00073 
00074 typedef Units::NonPrefixable<ElectricCurrentGroup, GauUnit> Gau;
00075 
00076 /* the Biot */
00077 
00078 typedef Units::NonPrefixable<ElectricCurrentGroup, BiotUnit> Biot;
00079 
00080 /* the atomic unit of electric current */
00081 
00082 typedef Units::NonPrefixable<ElectricCurrentGroup, AtomicUnit> Atomic;
00083 
00084 typedef Loki::TL::Append<Amperes::Units, 
00085             TYPELIST_3(Gau, Biot, Atomic)>::Result ElectricCurrentUnits;
00086 
00087   }
00088 
00089 /* declaration of ElectricCurrent dimension */
00090 
00091 typedef 
00092    Dimensions::Dimension<ElectricCurrentGroup> ElectricCurrentDimension;
00093 
00094 /* ElectricCurrent quantity */
00095 
00096 typedef Quantity<ElectricCurrentGroup, 
00097   ElectricCurrentUnits::ElectricCurrentUnits,
00098                 ElectricCurrentUnits::Ampere> ElectricCurrentQuantities;
00099 
00100 typedef Variable<ElectricCurrentQuantities> ElectricCurrent;
00101 typedef Constant<ElectricCurrentQuantities> ElectricCurrentConstant;
00102 
00103 typedef VariableVector<ElectricCurrentQuantities> ElectricCurrentVector;
00104 
00105 }
00106 
00107 #endif /* _ElectricCurrent_h */

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