17#ifndef DUMUX_IAPWS_REGION1_HH 
   18#define DUMUX_IAPWS_REGION1_HH 
   36template <
class Scalar>
 
   49                                   const std::string& propertyName = 
"This property")
 
   56        if (temperature <= 623.15 && pressure <= 100e6)
 
   60                   propertyName << 
" of water is only implemented for temperatures below 623.15K and " 
   61                   "pressures below 100MPa. (T=" << temperature << 
", p=" << pressure << 
")");
 
 
   69    static constexpr Scalar 
tau(Scalar temperature)
 
   70    { 
return 1386.0 / temperature; }
 
 
   78    static constexpr Scalar 
dTau_dt(Scalar temperature)
 
   79    { 
return - 1386.0 / (temperature*temperature); }
 
 
   86    static constexpr Scalar 
pi(Scalar pressure)
 
   87    { 
return pressure / 16.53e6; }
 
 
   95    static constexpr Scalar 
dPi_dp(Scalar pressure)
 
   96    { 
return 1.0 / 16.53e6; }
 
 
  104    static constexpr Scalar 
dp_dPi(Scalar pressure)
 
 
  117    static Scalar 
gamma(Scalar temperature, Scalar pressure)
 
  119        Scalar tau_ = 
tau(temperature);   
 
  120        Scalar pi_ = 
pi(pressure);    
 
  123        for (
int i = 0; i < 34; ++i) {
 
  124            result += n(i)*pow(7.1 - pi_, I(i))*pow(tau_ - 1.222, J(i));
 
 
  144        Scalar tau_ = 
tau(temperature);   
 
  145        Scalar pi_ = 
pi(pressure);    
 
  149        for (
int i = 0; i < 34; i++) {
 
  151                      pow(7.1 - pi_, I(i)) *
 
  152                      pow(tau_ - 1.222,  J(i)-1) *
 
 
  170    static Scalar 
dGamma_dPi(Scalar temperature, Scalar pressure)
 
  172        Scalar tau_ = 
tau(temperature);   
 
  173        Scalar pi_ = 
pi(pressure);    
 
  177        for (
int i = 0; i < 34; i++) {
 
  180                       pow(7.1 - pi_, I(i) - 1) *
 
  181                       pow(tau_ - 1.222, J(i));
 
 
  201        Scalar tau_ = 
tau(temperature);   
 
  202        Scalar pi_ = 
pi(pressure);    
 
  206        for (
int i = 0; i < 34; i++) {
 
  210                       pow(7.1 - pi_, I(i) - 1) *
 
  211                       pow(tau_ - 1.222, J(i) - 1);
 
 
  231        Scalar tau_ = 
tau(temperature);   
 
  232        Scalar pi_ = 
pi(pressure);    
 
  236        for (
int i = 0; i < 34; i++) {
 
  240                      pow(7.1 - pi_, I(i) - 2) *
 
  241                      pow(tau_ - 1.222, J(i));
 
 
  260        Scalar tau_ = 
tau(temperature);   
 
  261        Scalar pi_ = 
pi(pressure);    
 
  265        for (
int i = 0; i < 34; i++) {
 
  267                      pow(7.1 - pi_, I(i)) *
 
  270                      pow(tau_ - 1.222,  J(i) - 2);
 
 
  277    static Scalar n(
int i)
 
  279        constexpr Scalar n[34] = {
 
  280            0.14632971213167, -0.84548187169114, -0.37563603672040e1,
 
  281            0.33855169168385e1, -0.95791963387872, 0.15772038513228,
 
  282           -0.16616417199501e-1, 0.81214629983568e-3, 0.28319080123804e-3,
 
  283           -0.60706301565874e-3, -0.18990068218419e-1, -0.32529748770505e-1,
 
  284           -0.21841717175414e-1, -0.52838357969930e-4, -0.47184321073267e-3,
 
  285           -0.30001780793026e-3, 0.47661393906987e-4, -0.44141845330846e-5,
 
  286           -0.72694996297594e-15,-0.31679644845054e-4, -0.28270797985312e-5,
 
  287           -0.85205128120103e-9, -0.22425281908000e-5, -0.65171222895601e-6,
 
  288           -0.14341729937924e-12,-0.40516996860117e-6, -0.12734301741641e-8,
 
  289           -0.17424871230634e-9, -0.68762131295531e-18, 0.14478307828521e-19,
 
  290            0.26335781662795e-22,-0.11947622640071e-22, 0.18228094581404e-23,
 
  291           -0.93537087292458e-25
 
  296    static short int I(
int i)
 
  298        constexpr short int I[34] = {
 
  315    static short int J(
int i)
 
  317        constexpr short int J[34] = {
 
 
Implements the equations for region 1 of the IAPWS '97 formulation.
Definition region1.hh:38
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:170
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:104
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:229
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:95
static constexpr Scalar tau(Scalar temperature)
Returns the reduced temperature for IAPWS region 1.
Definition region1.hh:69
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:48
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:78
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:142
static constexpr Scalar pi(Scalar pressure)
Returns the reduced pressure for IAPWS region 1.
Definition region1.hh:86
static Scalar gamma(Scalar temperature, Scalar pressure)
The Gibbs free energy (dimensionless) for IAPWS region 1 (i.e. liquid)
Definition region1.hh:117
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:258
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:199
Exception thrown if a fixable numerical problem occurs.
Definition exceptions.hh:27
Some exceptions thrown in DuMux