Main Page | Class Hierarchy | Class List | File List

ThermodynamicTemperature.cc

Go to the documentation of this file.
00001 
00005 /* Copyright (C) 2002 - 2005, 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 thermodynamicTemperature_cc
00026 #define thermodynamicTemperature_cc
00027 
00028 #include "Quantity/Variable.h"
00029 
00030 #include "PhysicalQuantities/ThermodynamicTemperature.h"
00031 #include "PhysicalQuantities/CelsiusTemperature.h"
00032 #include "PhysicalQuantities/FahrenheitTemperature.h"
00033 
00034 namespace quantity {
00035   namespace thermodynamicTemperature {
00036 
00037 /* definition of ThermodynamicTemperature units */
00038 /* the Kelvin */
00039 
00040 template<> const std::string Kelvins::Basename = "kelvin";
00041 template<> const std::string Kelvins::Basesymbol = "K";
00042 template<> const bool Kelvins::SI = true;
00043 
00044 /* the degree Rankine */
00045 
00046 template<> const std::string DegreeRankine::Namestring 
00047                                                       = "degreerankine";
00048 template<> const std::string DegreeRankine::Symbolstring = "oR";
00049 template<> const bool DegreeRankine::SI = false;
00050 
00051 template<> const double Standard<Kelvins>::ratio = 1.0;
00052 template<> const bool Standard<Kelvins>::exact = true;
00053 
00054 template<> const double Standard<DegreeRankine> ::ratio = 5./9.;
00055 template<> const bool Standard<DegreeRankine> ::exact = true;
00056 
00057   }
00058 
00059 template<> const std::string 
00060       Name<thermodynamicTemperature::Quantity>::String = "temperature";
00061 template<> const std::string 
00062               Symbol<thermodynamicTemperature::Quantity>::String = "T";
00063 
00065 
00067 template<>
00068     ThermodynamicTemperature::Variable (const CelsiusTemperature &celsius)
00069       : _value (Reverse<Unit>::VAL (celsius.value () + 273.15))
00070                                          {namestring = celsius.name ();}
00071 
00073 
00075 template<>
00076     ThermodynamicTemperature::Variable 
00077                                (const FahrenheitTemperature &fahrenheit)
00078       : _value 
00079            (Reverse<Unit>::VAL (5./9. * (fahrenheit.value () + 459.67)))
00080                                       {namestring = fahrenheit.name ();}
00081 
00082 }
00083 
00084 #endif /* thermodynamicTemperature_cc */

Generated on Mon Feb 12 18:44:06 2007 for PhysicalQuantities by doxygen 1.3.6