The WaterProps class is used to house several approximation routines for properties of water. More...
#include <WaterProps.h>
The WaterProps class is used to house several approximation routines for properties of water.
This is a helper class for WaterSSTP and PDSS_Water and does not constitute a complete implementation of a thermo phase by itself (see Thermodynamic Properties and classes WaterSSTP and PDSS_Water).
The class is also a wrapper around the WaterPropsIAPWS class which provides the calculations for the equation of state properties for water.
In particular, this class houses methods for the calculation of the dielectric constant of water and the constant A_debye used in the Debye-Huckel and Pitzer activity coefficient calculations.
Definition at line 37 of file WaterProps.h.
Public Member Functions | |
WaterProps () | |
Default constructor. | |
WaterProps (WaterPropsIAPWS *wptr) | |
Constructor. | |
WaterProps (PDSS_Water *wptr) | |
Constructor with pointer to Water PDSS object. | |
WaterProps (const WaterProps &b)=delete | |
WaterProps & | operator= (const WaterProps &b)=delete |
double | relEpsilon (double T, double P_pascal, int ifunc=0) |
Bradley-Pitzer equation for the dielectric constant of water as a function of temperature and pressure. | |
double | ADebye (double T, double P, int ifunc) |
ADebye calculates the value of A_Debye as a function of temperature and pressure according to relations that take into account the temperature and pressure dependence of the water density and dielectric constant. | |
double | satPressure (double T) |
Returns the saturation pressure given the temperature. | |
double | density_IAPWS (double T, double P) |
Returns the density of water. | |
double | density_IAPWS () const |
Returns the density of water. | |
double | coeffThermalExp_IAPWS (double T, double P) |
returns the coefficient of thermal expansion | |
double | isothermalCompressibility_IAPWS (double T, double P) |
Returns the isothermal compressibility of water. | |
Static Public Member Functions | |
static double | density_T (double T, double P, int ifunc) |
Simple calculation of water density at atmospheric pressure. | |
Protected Attributes | |
WaterPropsIAPWS * | m_waterIAPWS = nullptr |
Pointer to the WaterPropsIAPWS object. | |
bool | m_own_sub = false |
true if we own the WaterPropsIAPWS object | |
WaterProps | ( | ) |
Default constructor.
Definition at line 14 of file WaterProps.cpp.
WaterProps | ( | WaterPropsIAPWS * | wptr | ) |
Constructor.
wptr | Pointer to WaterPropsIAPWS object |
Definition at line 31 of file WaterProps.cpp.
WaterProps | ( | PDSS_Water * | wptr | ) |
Constructor with pointer to Water PDSS object.
wptr | Pointer to water standard state object |
Definition at line 20 of file WaterProps.cpp.
|
virtual |
Definition at line 41 of file WaterProps.cpp.
|
static |
Simple calculation of water density at atmospheric pressure.
Valid up to boiling point.
This formulation has no dependence on the pressure and shouldn't be used where accuracy is needed.
T | temperature in kelvin |
P | Pressure in pascal |
ifunc | changes what's returned |
Verification: Agrees with the CRC values (6-10) for up to 4 sig digits.
units = returns density in kg m-3.
Definition at line 48 of file WaterProps.cpp.
double relEpsilon | ( | double | T, |
double | P_pascal, | ||
int | ifunc = 0 |
||
) |
Bradley-Pitzer equation for the dielectric constant of water as a function of temperature and pressure.
Returns the dimensionless relative dielectric constant and its derivatives.
Range of validity: 0 to 350C, 0 to 1 kbar pressure
T | temperature (kelvin) |
P_pascal | pressure in pascal |
ifunc | changes what's returned from the function |
Validation: Numerical experiments indicate that this function agrees with the Archer and Wang data in the CRC p. 6-10 to all 4 significant digits shown (0 to 100C).
value at 25C and 1 atm, relEps = 78.38
Definition at line 96 of file WaterProps.cpp.
double ADebye | ( | double | T, |
double | P, | ||
int | ifunc | ||
) |
ADebye calculates the value of A_Debye as a function of temperature and pressure according to relations that take into account the temperature and pressure dependence of the water density and dielectric constant.
The A_Debye expression appears on the top of the ln actCoeff term in the general Debye-Huckel expression It depends on temperature and pressure. And, therefore, most be recalculated whenever T or P changes. The units returned by this expression are sqrt(kg/gmol).
\[ A_{Debye} = \frac{1}{8 \pi} \sqrt{\frac{2 N_{Avog} \rho_w}{1000}} {\left(\frac{e^2}{\epsilon k_{boltz} T}\right)}^{\frac{3}{2}} \]
Nominal value at 25C and 1atm = 1.172576 sqrt(kg/gmol).
Based on:
T | Temperature (kelvin) |
P | pressure (pascal) |
ifunc | Changes what's returned from the routine |
Verification: With the epsRelWater value from the Bradley-Pitzer relation, and the water density from the density_IAPWS() function, The A_Debye computed with this function agrees with the Pitzer table p. 99 to 4 significant digits at 25C. and 20C. (Aphi = ADebye/3)
Definition at line 147 of file WaterProps.cpp.
double satPressure | ( | double | T | ) |
Returns the saturation pressure given the temperature.
T | temperature (kelvin) |
Definition at line 220 of file WaterProps.cpp.
double density_IAPWS | ( | double | T, |
double | P | ||
) |
Returns the density of water.
This function sets the internal temperature and pressure of the underlying object at the same time.
T | Temperature (kelvin) |
P | pressure (pascal) |
Definition at line 225 of file WaterProps.cpp.
double density_IAPWS | ( | ) | const |
Returns the density of water.
This function uses the internal state of the underlying water object
Definition at line 230 of file WaterProps.cpp.
double coeffThermalExp_IAPWS | ( | double | T, |
double | P | ||
) |
returns the coefficient of thermal expansion
T | Temperature (kelvin) |
P | pressure (pascal) |
Definition at line 235 of file WaterProps.cpp.
double isothermalCompressibility_IAPWS | ( | double | T, |
double | P | ||
) |
Returns the isothermal compressibility of water.
T | temperature in kelvin |
P | pressure in pascal |
Definition at line 245 of file WaterProps.cpp.
|
protected |
Pointer to the WaterPropsIAPWS object.
Definition at line 184 of file WaterProps.h.
|
protected |
true if we own the WaterPropsIAPWS object
Definition at line 187 of file WaterProps.h.