#include "config.h"
#include "isinfnan.h"
#include "measurement.h"
#include <iostream>
#include <sstream>
#include <cmath>
#include <stdexcept>
Go to the source code of this file.
Classes | |
class | Units< M, L, T, K, I > |
Unit Checking/tracking Class. More... | |
Defines | |
#define | UNITS_ALLOW_CAST_TO_DOUBLE |
#define | UNITS_ALLOW_GET_RAW_VALUE |
#define | CHECK_UNITS |
#define | MAX(a, b) ( (a) < (b) ? (b) : (a) ) |
#define | MIN(a, b) ( (a) < (b) ? (a) : (b) ) |
#define | ABS(x) ( ((x) > 0) ? (x) : -(x) ) |
#define | DEFINE_OUTPUT_METHOD(MM, LL, TT, KK, II, UNITS) |
#define | UNITS_CAST_ERROR(M, L, T, K, I, dim) |
Typedefs | |
typedef Units< 1 > | Mass |
typedef Units< 0, 1 > | Length |
typedef Units< 0, 0, 1 > | Time |
typedef Units< 0, 0, 0, 1 > | Temperature |
typedef Units< 0, 0, 0, 0, 1 > | Current |
typedef Units< 0, 2 > | Area |
typedef Units< 0, 3 > | Volume |
typedef Units< 1,-3 > | Density |
typedef Units<-1, 3 > | SpecificVolume |
typedef Units< 1,-3,-1 > | DensityPerTime |
typedef Units< 0, 0,-1 > | Frequency |
typedef Units< 1, 1,-2 > | Force |
typedef Units< 1,-1,-2 > | Pressure |
typedef Units< 0, 1,-1 > | Velocity |
typedef Units< 0, 1,-2 > | Acceleration |
typedef Units< 1, 2,-2 > | Torque |
typedef Units< 1, 2,-2 > | Energy |
typedef Units< 1, 2,-3 > | Power |
typedef Units< 0, 2,-2 > | SpecificEnergy |
typedef Units< 1,-1,-1 > | DynamicViscosity |
typedef Units< 0, 2,-1 > | KinematicViscosity |
typedef Units< 1, 1,-3 > | PowerPerLength |
typedef Units< 1,-2,-2 > | PressurePerLength |
typedef Units< 1, 0,-2 > | ForcePerLength |
typedef Units< 0, 2,-3 > | PowerPerMass |
typedef Units< 1,-1,-3 > | DensitySpecificEnergyPerTime |
typedef Units< 0, 3,-1 > | VolFlowRate |
typedef Units< 1, 0,-1 > | MassFlowRate |
typedef Units< 1,-1,-1 > | MassFlowRatePerLength |
typedef Units< 1, 0,-2 > | MassFlowRatePerTime |
typedef Units< 1, 0,-3 > | HeatFlux |
typedef Units< 1,-2,-1 > | MassFlux |
typedef Units< 1, 2,-2,-1 > | Entropy |
typedef Units< 0, 2,-2,-1 > | SpecificEntropy |
typedef Units< 1, 1,-3,-1 > | ThermalConductivity |
typedef Units< 1, 0,-3,-1 > | HeatTransferCoefficient |
typedef Units<-1, 0, 3, 1 > | ThermalResistance |
typedef Units< 1, 1,-2,-1 > | HeatCapacityPerLength |
typedef Units< 1, 2,-3,-1 > | PowerPerTemperature |
typedef Units< 0, 0, 0,-1 > | ThermalExpansionCoefficient |
typedef Units< 0, 0, 1, 0, 1 > | Charge |
typedef Units< 1, 2,-3, 0,-1 > | ElecPotential |
typedef Units< 1, 2,-4, 0,-2 > | Capacitance |
typedef Units< 1, 2,-3, 0,-2 > | Resistance |
typedef Units<-1,-2, 3, 0, 2 > | Conductance |
typedef Velocity | Speed |
typedef Length | Distance |
typedef Energy | Heat |
typedef Heat | Work |
typedef Power | HeatRate |
typedef PowerPerLength | HeatRatePerLength |
typedef PowerPerTemperature | HeatRatePerTemperature |
typedef Pressure | Stress |
typedef HeatTransferCoefficient | HTCoeff |
typedef SpecificEntropy | SpecificHeatCapacity |
typedef SpecificHeatCapacity | SpecHeatCap |
typedef SpecificHeatCapacity | SpecificGasConstant |
typedef SpecificGasConstant | SpecGasConst |
typedef ForcePerLength | SurfaceTension |
Functions | |
template<int m, int l, int t, int k, int i> | |
Units< m, l, t, k, i > | operator* (const double d, const Units< m, l, t, k, i > &u) |
Scalar multiplication. | |
template<int m, int l, int t, int k, int i> | |
Units<-m,-l,-t,-k,-i > | operator/ (const double d, const Units< m, l, t, k, i > &u) |
Division. | |
template<int M, int L, int T, int K, int I, int m, int l, int t, int k, int i> | |
Units< M+m, L+l, T+t, K+k, I+i > | operator* (const Units< M, L, T, K, I > &u1, const Units< m, l, t, k, i > &u2) |
Multiplication. | |
template<int M, int L, int T, int K, int I> | |
bool | eq (const Units< M, L, T, K, I > &u, const Units< M, L, T, K, I > &v, const Units< M, L, T, K, I > &tol) |
Equality with some tolerance. | |
template<int M, int L, int T, int K, int I> | |
Units< M, L, T, K, I > | fabs (const Units< M, L, T, K, I > u) |
template<int M, int L, int T, int K, int I> | |
Units< 2 *M, 2 *L, 2 *T, 2 *K, 2 *I > | sq (const Units< M, L, T, K, I > u) |
Square of a value. | |
template<int M, int L, int T, int K, int I> | |
Units< 3 *M, 3 *L, 3 *T, 3 *K, 3 *I > | cube (const Units< M, L, T, K, I > u) |
Cube of a value. | |
template<int M, int L, int T, int K, int I> | |
bool | isnan (const Units< M, L, T, K, I > &u) |
template<int M, int L, int T, int K, int I> | |
bool | isinf (const Units< M, L, T, K, I > &u) |
template<int m, int l, int t, int k, int i> | |
std::ostream & | operator<< (std::ostream &os, const Units< m, l, t, k, i > &u) |
std::ostream & | operator<< (std::ostream &os, const Units< 0, 0, 0, 0, 0 > &u) |
DEFINE_OUTPUT_METHOD (1, 0, 0, 0, 0,"kg") | |
DEFINE_OUTPUT_METHOD (0, 1, 0, 0, 0,"m") | |
DEFINE_OUTPUT_METHOD (0, 2, 0, 0, 0,"m²") | |
DEFINE_OUTPUT_METHOD (0, 3, 0, 0, 0,"m³") | |
DEFINE_OUTPUT_METHOD (1,-1, 0, 0, 0,"kg/m") | |
DEFINE_OUTPUT_METHOD (1,-2, 0, 0, 0,"kg/m²") | |
DEFINE_OUTPUT_METHOD (1,-3, 0, 0, 0,"kg/m³") | |
DEFINE_OUTPUT_METHOD (-1, 3, 0, 0, 0,"m³/kg") | |
DEFINE_OUTPUT_METHOD (0, 0, 1, 0, 0,"s") | |
DEFINE_OUTPUT_METHOD (0, 0,-1, 0, 0,"Hz") | |
DEFINE_OUTPUT_METHOD (1, 0,-1, 0, 0,"kg/s") | |
DEFINE_OUTPUT_METHOD (1, 0,-3, 0, 0,"W/m²") | |
DEFINE_OUTPUT_METHOD (0, 1,-1, 0, 0,"m/s") | |
DEFINE_OUTPUT_METHOD (0, 2,-2, 0, 0,"J/kg") | |
DEFINE_OUTPUT_METHOD (1,-1,-2, 0, 0,"Pa") | |
DEFINE_OUTPUT_METHOD (1,-1,-1, 0, 0,"Pa·s") | |
DEFINE_OUTPUT_METHOD (1, 1,-3, 0, 0,"W/m") | |
DEFINE_OUTPUT_METHOD (1, 2,-3, 0, 0,"W") | |
DEFINE_OUTPUT_METHOD (1,-2,-1, 0, 0,"kg/s/m²") | |
DEFINE_OUTPUT_METHOD (0, 0, 0, 1, 0,"K") | |
DEFINE_OUTPUT_METHOD (0, 2,-2,-1, 0,"J/kgK") | |
DEFINE_OUTPUT_METHOD (1, 1,-3,-1, 0,"W/m/K") | |
double | tocelsius (const Temperature &T) |
Temperature | fromcelsius (const double &T_C) |
double | tofahrenheit (const Temperature &T) |
Temperature | fromfahrenheit (const double &T_F) |
Convert Temperature object to Fahrenheit. | |
Variables | |
const Mass | kilogram |
const Length | metre |
const Time | second |
const Temperature | Kelvin |
const Current | ampere |
const double | Tera = 1e12 |
const double | Giga = 1e9 |
const double | Mega = 1e6 |
const double | kilo = 1e3 |
const double | hecta = 1e2 |
const double | Deca = 10 |
const double | deci = 0.1 |
const double | centi = 1e-2 |
const double | milli = 1e-3 |
const double | micro = 1e-6 |
const Mass | gram = milli * kilogram |
const Mass | kg = kilogram |
const Length | centimetre = metre / 100.0 |
const Length | kilometre = 1000.0 * metre |
const Area | metre2 = metre * metre |
const Area | hectare = (100.0 * metre) * (100.0 * metre) |
const Volume | metre3 = metre2 * metre |
const Volume | litre = milli * metre3 |
const Volume | centimetre3 |
const Time | minute = 60.0 * second |
const Time | hour = 60.0 * minute |
const Time | day = 24.0 * hour |
const Frequency | Hertz = 1.0 / second |
const Force | Newton = kilogram * metre / (second * second) |
const Pressure | Pascal = Newton / (metre * metre) |
const Pressure | bar = 100.0 * kilo * Pascal |
const Pressure | MPa = Mega * Pascal |
const Pressure | kPa = kilo * Pascal |
const Energy | Joule = Newton * metre |
const Energy | kJ = kilo * Joule |
const Energy | Btu = 1055.05585262 * Joule |
const Power | Watt = Joule / second |
const HeatFlux | W_m2 = Watt / metre2 |
const double | Percent = 1.0 / 100 |
const SpecificEnergy | kJ_kg = kilo * Joule / kilogram |
const SpecificEnergy | J_kg = Joule / kilogram |
const SpecificEntropy | kJ_kgK = kilo * Joule / kilogram / Kelvin |
const SpecificEntropy | J_kgK = Joule / kilogram / Kelvin |
const HeatTransferCoefficient | W_m2K = Watt / metre2 / Kelvin |
const ThermalConductivity | W_mK = Watt / metre / Kelvin |
const ThermalConductivity | mW_mK = milli * W_mK |
const Density | kg_m3 = kilogram / metre3 |
const SpecificVolume | m3_kg = metre3 / kilogram |
const MassFlowRate | kg_s = kilogram / second |
const VolFlowRate | m3_s = metre3 / second |
const HeatCapacityPerLength | J_mK = Joule / metre / Kelvin |
const ElecPotential | volt = Watt / ampere |
const Charge | Coulomb = ampere * second |
const Capacitance | Farad = volt / Coulomb |
const Resistance | Ohm = volt / ampere |
const Temperature | Rankin = 0.556 * Kelvin |
const Frequency | RPM = 1. / minute |
const Length | yard = 0.9144 * metre |
const Length | foot = yard / 3. |
const Length | inch = foot / 12. |
const Length | mile = 1760. * yard |
const Mass | lbm = 0.45359237 * kilogram |
const Acceleration | grav_accel = 9.80665 * metre / second / second |
const Force | lbf = grav_accel * lbm |
const Pressure | lbf_in2 = lbf / inch / inch |
const Temperature | ZeroCelsius = 273.15 * Kelvin |
const Temperature | ZeroFahrenheit = ZeroCelsius - 32.0 * Rankin |
const Units< 1, 0,-3,-4 > | SIGMA_C = (5.670e-8) * W_m2 /sq(sq(Kelvin)) |
Stefan-Boltzmann Constant (radiation). |
#define ABS | ( | x | ) | ( ((x) > 0) ? (x) : -(x) ) |
#define CHECK_UNITS |
#define DEFINE_OUTPUT_METHOD | ( | MM, | |||
LL, | |||||
TT, | |||||
KK, | |||||
II, | |||||
UNITS | ) |
Value:
inline \ std::ostream& operator <<(std::ostream &os,const Units<MM,LL,TT,KK,II> &u){ \ double d = *reinterpret_cast<const double*>(&u); \ os << d; \ os.flags() & std::ios_base::showbase && os << " " << UNITS; \ return os; \ }
#define MAX | ( | a, | |||
b | ) | ( (a) < (b) ? (b) : (a) ) |
#define MIN | ( | a, | |||
b | ) | ( (a) < (b) ? (a) : (b) ) |
#define UNITS_ALLOW_CAST_TO_DOUBLE |
#define UNITS_ALLOW_GET_RAW_VALUE |
#define UNITS_CAST_ERROR | ( | M, | |||
L, | |||||
T, | |||||
K, | |||||
I, | |||||
dim | ) |
Value:
"Invalid cast from Measurement <" << dim.m << "," << dim.l << "," << dim.t << "," \ << dim.k << "," << dim.i << "> to Units <" << M << "," << L << "," << T << "," \ << K << "," << I << ">"
Referenced by Units< M, L, T, K, I >::Units().
typedef Units< 0, 1, -2 > Acceleration |
typedef Units< 1, 2, -4, 0, -2 > Capacitance |
typedef Units<-1, -2, 3, 0, 2 > Conductance |
typedef Units< 1, -3, -1> DensityPerTime |
typedef Units< 1, -1, -3 > DensitySpecificEnergyPerTime |
typedef Units< 1, -1, -1 > DynamicViscosity |
typedef Units< 1, 2, -3, 0, -1 > ElecPotential |
typedef Units< 1, 0, -2 > ForcePerLength |
typedef Units< 1, 1, -2, -1 > HeatCapacityPerLength |
typedef PowerPerLength HeatRatePerLength |
typedef Units< 1, 0, -3, -1 > HeatTransferCoefficient |
typedef HeatTransferCoefficient HTCoeff |
typedef Units< 0, 2, -1 > KinematicViscosity |
typedef Units< 1, 0, -1 > MassFlowRate |
typedef Units< 1, -1, -1 > MassFlowRatePerLength |
typedef Units< 1, 0, -2 > MassFlowRatePerTime |
typedef Units< 1, 1, -3 > PowerPerLength |
typedef Units< 0, 2, -3 > PowerPerMass |
typedef Units< 1, 2, -3, -1 > PowerPerTemperature |
typedef Units< 1, -2, -2 > PressurePerLength |
typedef Units< 1, 2, -3, 0, -2 > Resistance |
typedef SpecificGasConstant SpecGasConst |
typedef SpecificHeatCapacity SpecHeatCap |
typedef Units< 0, 2, -2 > SpecificEnergy |
typedef Units< 0, 2, -2, -1 > SpecificEntropy |
typedef SpecificEntropy SpecificHeatCapacity |
typedef Units<-1, 3 > SpecificVolume |
typedef ForcePerLength SurfaceTension |
typedef Units< 0, 0, 0, 1 > Temperature |
typedef Units< 1, 1, -3, -1 > ThermalConductivity |
typedef Units< 0, 0, 0, -1 > ThermalExpansionCoefficient |
typedef Units<-1, 0, 3, 1 > ThermalResistance |
typedef Units< 0, 3, -1 > VolFlowRate |
Units<3*M, 3*L, 3*T, 3*K, 3*I> cube | ( | const Units< M, L, T, K, I > | u | ) | [inline] |
Cube of a value.
DEFINE_OUTPUT_METHOD | ( | 1 | , | |
1 | , | |||
- | 3, | |||
- | 1, | |||
0 | , | |||
"W/m/K" | ||||
) |
DEFINE_OUTPUT_METHOD | ( | 0 | , | |
2 | , | |||
- | 2, | |||
- | 1, | |||
0 | , | |||
"J/kgK" | ||||
) |
DEFINE_OUTPUT_METHOD | ( | 0 | , | |
0 | , | |||
0 | , | |||
1 | , | |||
0 | , | |||
"K" | ||||
) |
DEFINE_OUTPUT_METHOD | ( | 1 | , | |
- | 2, | |||
- | 1, | |||
0 | , | |||
0 | , | |||
"kg/s/m²" | ||||
) |
DEFINE_OUTPUT_METHOD | ( | 1 | , | |
2 | , | |||
- | 3, | |||
0 | , | |||
0 | , | |||
"W" | ||||
) |
DEFINE_OUTPUT_METHOD | ( | 1 | , | |
1 | , | |||
- | 3, | |||
0 | , | |||
0 | , | |||
"W/m" | ||||
) |
DEFINE_OUTPUT_METHOD | ( | 1 | , | |
- | 1, | |||
- | 1, | |||
0 | , | |||
0 | , | |||
"Pa·s" | ||||
) |
DEFINE_OUTPUT_METHOD | ( | 1 | , | |
- | 1, | |||
- | 2, | |||
0 | , | |||
0 | , | |||
"Pa" | ||||
) |
DEFINE_OUTPUT_METHOD | ( | 0 | , | |
2 | , | |||
- | 2, | |||
0 | , | |||
0 | , | |||
"J/kg" | ||||
) |
DEFINE_OUTPUT_METHOD | ( | 0 | , | |
1 | , | |||
- | 1, | |||
0 | , | |||
0 | , | |||
"m/s" | ||||
) |
DEFINE_OUTPUT_METHOD | ( | 1 | , | |
0 | , | |||
- | 3, | |||
0 | , | |||
0 | , | |||
"W/m²" | ||||
) |
DEFINE_OUTPUT_METHOD | ( | 1 | , | |
0 | , | |||
- | 1, | |||
0 | , | |||
0 | , | |||
"kg/s" | ||||
) |
DEFINE_OUTPUT_METHOD | ( | 0 | , | |
0 | , | |||
- | 1, | |||
0 | , | |||
0 | , | |||
"Hz" | ||||
) |
DEFINE_OUTPUT_METHOD | ( | 0 | , | |
0 | , | |||
1 | , | |||
0 | , | |||
0 | , | |||
"s" | ||||
) |
DEFINE_OUTPUT_METHOD | ( | - | 1, | |
3 | , | |||
0 | , | |||
0 | , | |||
0 | , | |||
"m³/kg" | ||||
) |
DEFINE_OUTPUT_METHOD | ( | 1 | , | |
- | 3, | |||
0 | , | |||
0 | , | |||
0 | , | |||
"kg/m³" | ||||
) |
DEFINE_OUTPUT_METHOD | ( | 1 | , | |
- | 2, | |||
0 | , | |||
0 | , | |||
0 | , | |||
"kg/m²" | ||||
) |
DEFINE_OUTPUT_METHOD | ( | 1 | , | |
- | 1, | |||
0 | , | |||
0 | , | |||
0 | , | |||
"kg/m" | ||||
) |
DEFINE_OUTPUT_METHOD | ( | 0 | , | |
3 | , | |||
0 | , | |||
0 | , | |||
0 | , | |||
"m³" | ||||
) |
DEFINE_OUTPUT_METHOD | ( | 0 | , | |
2 | , | |||
0 | , | |||
0 | , | |||
0 | , | |||
"m²" | ||||
) |
DEFINE_OUTPUT_METHOD | ( | 0 | , | |
1 | , | |||
0 | , | |||
0 | , | |||
0 | , | |||
"m" | ||||
) |
DEFINE_OUTPUT_METHOD | ( | 1 | , | |
0 | , | |||
0 | , | |||
0 | , | |||
0 | , | |||
"kg" | ||||
) |
Units<M,L,T,K,I> fabs | ( | const Units< M, L, T, K, I > | u | ) | [inline] |
Referenced by eq(), ZeroIn< Subject, Ordinate, Abscissa >::isSolved(), SteamCalculator::lam2(), SatCurve< Ordinate, Abscissa, OrdinateAlt, AbscissaAlt >::solve(), B23Curve< Ordinate, Abscissa, OrdinateAlternative, AbscissaAlternative >::solve(), ConvergenceTest< Property, PropertyAlternative >::test(), and ZeroIn< Subject, Ordinate, Abscissa >::visit().
Temperature fromcelsius | ( | const double & | T_C | ) | [inline] |
Convert a Celsius temperature to Kelvin
T_C | double value for the temperature in degrees |
Temperature fromfahrenheit | ( | const double & | T_F | ) | [inline] |
Convert Temperature object to Fahrenheit.
bool isinf | ( | const Units< M, L, T, K, I > & | u | ) | [inline] |
bool isnan | ( | const Units< M, L, T, K, I > & | u | ) | [inline] |
Referenced by SteamCalculator::conductivity(), SteamCalculator::dens(), Boundaries::getSatDensWater_T(), Boundaries::isSat_Tx(), SteamCalculator::lam(), SteamCalculator::lam0(), SteamCalculator::lam1(), SteamCalculator::lam2(), SteamCalculator::pitau_iaps85(), and SteamCalculator::setRegion3_rhoT().
Units<M+m,L+l,T+t,K+k,I+i > operator* | ( | const Units< M, L, T, K, I > & | u1, | |
const Units< m, l, t, k, i > & | u2 | |||
) | [inline] |
Multiplication.
Units<m,l,t,k,i> operator* | ( | const double | d, | |
const Units< m, l, t, k, i > & | u | |||
) | [inline] |
Scalar multiplication.
std::ostream& operator<< | ( | std::ostream & | os, | |
const Units< 0, 0, 0, 0, 0 > & | u | |||
) | [inline] |
References IAPWS95::d.
std::ostream& operator<< | ( | std::ostream & | os, | |
const Units< m, l, t, k, i > & | u | |||
) | [inline] |
References IAPWS95::d.
Units<2*M, 2*L, 2*T, 2*K, 2*I> sq | ( | const Units< M, L, T, K, I > | u | ) | [inline] |
Square of a value.
double tocelsius | ( | const Temperature & | T | ) | [inline] |
Convert a temperature (in Kelvin) to Celsius.
References IAPWS95::d.
double tofahrenheit | ( | const Temperature & | T | ) | [inline] |
Convert from Fahrenheit temperature to Temperature object (Kelvin)
Referenced by UnitsMapInitialiser::UnitsMapInitialiser().
const double centi = 1e-2 |
const Length centimetre = metre / 100.0 |
const double Deca = 10 |
const double deci = 0.1 |
const Capacitance Farad = volt / Coulomb |
const double Giga = 1e9 |
const Acceleration grav_accel = 9.80665 * metre / second / second |
const double hecta = 1e2 |
const SpecificEnergy J_kg = Joule / kilogram |
const SpecificEntropy J_kgK = Joule / kilogram / Kelvin |
const HeatCapacityPerLength J_mK = Joule / metre / Kelvin |
const Temperature Kelvin |
Referenced by Boundaries::getpbound_T(), Boundaries::getSatTemp_p(), Boundaries::getTbound_p(), SatCurve< Ordinate, Abscissa, OrdinateAlt, AbscissaAlt >::solve(), B23Curve< Ordinate, Abscissa, OrdinateAlternative, AbscissaAlternative >::solve(), SteamCalculator::SteamCalculator(), Region2::temp(), Region1::temp(), and SteamAlmostSaturatedException::what().
const MassFlowRate kg_s = kilogram / second |
const double kilo = 1e3 |
const SpecificEnergy kJ_kg = kilo * Joule / kilogram |
const Force lbf = grav_accel * lbm |
Referenced by UnitsMapInitialiser::UnitsMapInitialiser().
const SpecificVolume m3_kg = metre3 / kilogram |
const VolFlowRate m3_s = metre3 / second |
const double Mega = 1e6 |
Referenced by surfaceTension().
const double micro = 1e-6 |
const double milli = 1e-3 |
Referenced by surfaceTension().
Referenced by Boundaries::getpbound_T(), SteamCalculator::getRegion3PressureError(), Boundaries::getSatPres_T(), Boundaries::getTbound_p(), Region2::pres(), Region1::pres(), Region3::set_pT(), Region2::set_pT(), SteamCalculator::setB23_T(), SteamCalculator::SteamCalculator(), SteamAlmostSaturatedException::what(), SteamCalculatorException::what(), and Solver2< FirstProp, SecondProp, FirstPropAlt, SecondPropAlt >::whichRegion().
const ThermalConductivity mW_mK = milli * W_mK |
const Resistance Ohm = volt / ampere |
const double Percent = 1.0 / 100 |
const Temperature Rankin = 0.556 * Kelvin |
Stefan-Boltzmann Constant (radiation).
const double Tera = 1e12 |
const ElecPotential volt = Watt / ampere |
const HeatTransferCoefficient W_m2K = Watt / metre2 / Kelvin |
const ThermalConductivity W_mK = Watt / metre / Kelvin |
const Temperature ZeroCelsius = 273.15 * Kelvin |
const Temperature ZeroFahrenheit = ZeroCelsius - 32.0 * Rankin |