29#ifndef DUMUX_IAPWS_REGION1_HH
30#define DUMUX_IAPWS_REGION1_HH
48template <
class Scalar>
61 const std::string& propertyName =
"This property")
68 if (temperature <= 623.15 && pressure <= 100e6)
72 propertyName <<
" of water is only implemented for temperatures below 623.15K and "
73 "pressures below 100MPa. (T=" << temperature <<
", p=" << pressure <<
")");
81 static constexpr Scalar
tau(Scalar temperature)
82 {
return 1386.0 / temperature; }
90 static constexpr Scalar
dTau_dt(Scalar temperature)
91 {
return - 1386.0 / (temperature*temperature); }
98 static constexpr Scalar
pi(Scalar pressure)
99 {
return pressure / 16.53e6; }
107 static constexpr Scalar
dPi_dp(Scalar pressure)
108 {
return 1.0 / 16.53e6; }
116 static constexpr Scalar
dp_dPi(Scalar pressure)
129 static Scalar
gamma(Scalar temperature, Scalar pressure)
131 Scalar tau_ =
tau(temperature);
132 Scalar pi_ =
pi(pressure);
135 for (
int i = 0; i < 34; ++i) {
136 result += n(i)*pow(7.1 - pi_, I(i))*pow(tau_ - 1.222, J(i));
156 Scalar tau_ =
tau(temperature);
157 Scalar pi_ =
pi(pressure);
161 for (
int i = 0; i < 34; i++) {
163 pow(7.1 - pi_, I(i)) *
164 pow(tau_ - 1.222, J(i)-1) *
182 static Scalar
dGamma_dPi(Scalar temperature, Scalar pressure)
184 Scalar tau_ =
tau(temperature);
185 Scalar pi_ =
pi(pressure);
189 for (
int i = 0; i < 34; i++) {
192 pow(7.1 - pi_, I(i) - 1) *
193 pow(tau_ - 1.222, J(i));
213 Scalar tau_ =
tau(temperature);
214 Scalar pi_ =
pi(pressure);
218 for (
int i = 0; i < 34; i++) {
222 pow(7.1 - pi_, I(i) - 1) *
223 pow(tau_ - 1.222, J(i) - 1);
243 Scalar tau_ =
tau(temperature);
244 Scalar pi_ =
pi(pressure);
248 for (
int i = 0; i < 34; i++) {
252 pow(7.1 - pi_, I(i) - 2) *
253 pow(tau_ - 1.222, J(i));
272 Scalar tau_ =
tau(temperature);
273 Scalar pi_ =
pi(pressure);
277 for (
int i = 0; i < 34; i++) {
279 pow(7.1 - pi_, I(i)) *
282 pow(tau_ - 1.222, J(i) - 2);
289 static Scalar n(
int i)
291 constexpr Scalar n[34] = {
292 0.14632971213167, -0.84548187169114, -0.37563603672040e1,
293 0.33855169168385e1, -0.95791963387872, 0.15772038513228,
294 -0.16616417199501e-1, 0.81214629983568e-3, 0.28319080123804e-3,
295 -0.60706301565874e-3, -0.18990068218419e-1, -0.32529748770505e-1,
296 -0.21841717175414e-1, -0.52838357969930e-4, -0.47184321073267e-3,
297 -0.30001780793026e-3, 0.47661393906987e-4, -0.44141845330846e-5,
298 -0.72694996297594e-15,-0.31679644845054e-4, -0.28270797985312e-5,
299 -0.85205128120103e-9, -0.22425281908000e-5, -0.65171222895601e-6,
300 -0.14341729937924e-12,-0.40516996860117e-6, -0.12734301741641e-8,
301 -0.17424871230634e-9, -0.68762131295531e-18, 0.14478307828521e-19,
302 0.26335781662795e-22,-0.11947622640071e-22, 0.18228094581404e-23,
303 -0.93537087292458e-25
308 static short int I(
int i)
310 constexpr short int I[34] = {
327 static short int J(
int i)
329 constexpr short int J[34] = {
Some exceptions thrown in DuMux.
Exception thrown if a fixable numerical problem occurs.
Definition exceptions.hh:39
Implements the equations for region 1 of the IAPWS '97 formulation.
Definition region1.hh:50
static Scalar dGamma_dPi(Scalar temperature, Scalar pressure)
The partial derivative of the Gibbs free energy to the normalized pressure for IAPWS region 1 (i....
Definition region1.hh:182
static constexpr Scalar dp_dPi(Scalar pressure)
Returns the derivative of the pressure to the reduced pressure for IAPWS region 1 in .
Definition region1.hh:116
static Scalar ddGamma_ddPi(Scalar temperature, Scalar pressure)
The second partial derivative of the Gibbs free energy to the normalized pressure for IAPWS region 1 ...
Definition region1.hh:241
static constexpr Scalar dPi_dp(Scalar pressure)
Returns the derivative of the reduced pressure to the pressure for IAPWS region 1 in .
Definition region1.hh:107
static constexpr Scalar tau(Scalar temperature)
Returns the reduced temperature for IAPWS region 1.
Definition region1.hh:81
static void checkValidityRange(Scalar temperature, Scalar pressure, const std::string &propertyName="This property")
Returns true if IAPWS region 1 applies for a (temperature in , pressure in ) pair.
Definition region1.hh:60
static constexpr Scalar dTau_dt(Scalar temperature)
Returns the derivative of the reduced temperature to the temperature for IAPWS region 1 in .
Definition region1.hh:90
static Scalar dGamma_dTau(Scalar temperature, Scalar pressure)
The partial derivative of the Gibbs free energy to the normalized temperature for IAPWS region 1 (i....
Definition region1.hh:154
static constexpr Scalar pi(Scalar pressure)
Returns the reduced pressure for IAPWS region 1.
Definition region1.hh:98
static Scalar gamma(Scalar temperature, Scalar pressure)
The Gibbs free energy (dimensionless) for IAPWS region 1 (i.e. liquid).
Definition region1.hh:129
static Scalar ddGamma_ddTau(Scalar temperature, Scalar pressure)
The second partial derivative of the Gibbs free energy to the normalized temperature for IAPWS region...
Definition region1.hh:270
static Scalar ddGamma_dTaudPi(Scalar temperature, Scalar pressure)
The partial derivative of the Gibbs free energy to the normalized pressure and to the normalized temp...
Definition region1.hh:211