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

Energy.cc

Go to the documentation of this file.
00001 
00005 /* Copyright (C) 2002-2004, Bernd Speiser */
00006 
00007 /* This file is part of PhysicalQuantities.
00008 
00009 PhysicalQuantities is free software; you can redistribute it and/or
00010 modify it under the terms of the GNU General Public License
00011 as published by the Free Software Foundation; either version 2
00012 of the License, or (at your option) any later version.
00013 
00014 PhysicalQuantities is distributed in the hope that it will be useful,
00015 but WITHOUT ANY WARRANTY; without even the implied warranty of
00016 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
00017 GNU General Public License for more details.
00018   
00019 You should have received a copy of the GNU General Public License
00020 along with this program; if not, write to the Free Software
00021 Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
00022 02111-1307, USA.
00023 */
00024 
00025 #ifndef _Energy_cc
00026 #define _Energy_cc
00027 
00028 #include "Quantity/Variable.h"
00029 
00030 #include "PhysicalQuantities/Energy.h"
00031 
00032 namespace Quantities {
00033   namespace EnergyUnits {
00034 
00035 /* definition of Energy units */
00036 /* the Joule and prefixed Joules */
00037 
00038 template<> const double Joules::StandardRatio = 1.;
00039 template<> const std::string Joules::Basename = "joule";
00040 template<> const std::string Joules::Basesymbol = "J";
00041 template<> const bool Joules::SI = true;
00042 template<> const bool Joules::Exact = true;
00043 
00044 /* the erg */
00045 
00046 template<> const double Erg::StandardRatio = 1.e-7;
00047 template<> const std::string Erg::Namestring  = "erg";
00048 template<> const std::string Erg::Symbolstring = "erg";
00049 template<> const bool Erg::SI = false;
00050 template<> const bool Erg::Exact = true;
00051 
00052 /* the Hartree */
00053 
00054 template<> const double Hartree::StandardRatio = 4.35975e-18;
00055 template<> const std::string Hartree::Namestring  = "hartree";
00056 template<> const std::string Hartree::Symbolstring = "E_h";
00057 template<> const bool Hartree::SI = false;
00058 template<> const bool Hartree::Exact = false;
00059 
00060 /* the Rydberg */
00061 
00062 template<> const double Rydberg::StandardRatio = 2.17987e-18;
00063 template<> const std::string Rydberg::Namestring  = "rydberg";
00064 template<> const std::string Rydberg::Symbolstring = "Ry";
00065 template<> const bool Rydberg::SI = false;
00066 template<> const bool Rydberg::Exact = false;
00067 
00068 /* the electron volt */
00069 
00070 template<> const double ElectronVolt::StandardRatio = 1.60218e-19;
00071 template<> const std::string ElectronVolt::Namestring  = "electronvolt";
00072 template<> const std::string ElectronVolt::Symbolstring = "eV";
00073 template<> const bool ElectronVolt::SI = false;
00074 template<> const bool ElectronVolt::Exact = false;
00075 
00076 /* the thermochemical calory */
00077 
00078 template<> const double ThermochemicalCalory::StandardRatio = 4.184;
00079 template<> const std::string ThermochemicalCalory::Namestring 
00080                                               = "thermochemical calory";
00081 template<> const std::string ThermochemicalCalory::Symbolstring 
00082                                                              = "cal_th";
00083 template<> const bool ThermochemicalCalory::SI = false;
00084 template<> const bool ThermochemicalCalory::Exact = true;
00085 
00086 /* the international calory */
00087 
00088 template<> const double InternationalCalory::StandardRatio = 4.1868;
00089 template<> const std::string InternationalCalory::Namestring 
00090                                                = "international calory";
00091 template<> const std::string InternationalCalory::Symbolstring 
00092                                                              = "cal_IT";
00093 template<> const bool InternationalCalory::SI = false;
00094 template<> const bool InternationalCalory::Exact = true;
00095 
00096 /* the 15 degree calory */
00097 
00098 template<> const double FifteenDegreeCalory::StandardRatio = 4.1855;
00099 template<> const std::string FifteenDegreeCalory::Namestring 
00100                                                     = "15degree calory";
00101 template<> const std::string FifteenDegreeCalory::Symbolstring 
00102                                                             = "cal_15T";
00103 template<> const bool FifteenDegreeCalory::SI = false;
00104 template<> const bool FifteenDegreeCalory::Exact = false;
00105 
00106 /* the litre atmosphere */
00107 
00108 template<> const double LitreAtmosphere::StandardRatio = 101.325;
00109 template<> const std::string LitreAtmosphere::Namestring 
00110                                                   = "litre atmosphere";
00111 template<> const std::string LitreAtmosphere::Symbolstring = "l atm";
00112 template<> const bool LitreAtmosphere::SI = false;
00113 template<> const bool LitreAtmosphere::Exact = true;
00114 
00115 /* the british thermal unit */
00116 
00117 template<> const double BritishThermalUnit::StandardRatio = 1055.06;
00118 template<> const std::string BritishThermalUnit::Namestring 
00119                                                = "British Thermal Unit";
00120 template<> const std::string BritishThermalUnit::Symbolstring = "Btu";
00121 template<> const bool BritishThermalUnit::SI = false;
00122 template<> const bool BritishThermalUnit::Exact = true;
00123 
00124   }
00125 
00126 const std::string Name<EnergyQuantities>::String = "energy";
00127 const std::string Symbol<EnergyQuantities>::String = "E";
00128 
00129 }
00130 
00131 #endif /* _Energy_cc */

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