This medium package models liquid water.
The mass density is computed using a 3rd order polynomial, which yields the density as a function of temperature as shown in the figure below. Note, however, that computing density as a function of temperature can lead to considerably slower computing time compared to using Annex60.Media.Water in which the density is a constant. We therefore recommend to use Annex60.Media.Water for typical building energy simulations.
For the specific heat capacities at constant pressure and at constant volume, a constant value of 4184 J/(kg K), which corresponds to 20°C is used. The figure below shows the relative error of the specific heat capacity that is introduced by this simplification. Using a constant value for the specific heat capacity allows to compute temperature from enthalpy without having to solve an implicit equation, and therefore leads to faster simulation.
Thermal conductivity is calculated as a function of temperature as shown in the figure below. The correlation used to calculate the thermal conductivity is
λ(T) = λ(298.15 K) ⋅ (-1.48445+4.12292⋅(T/298.15)-1.63866⋅(T/298.15)2),
where λ(298.15 K) = 0.6065 W/(m ⋅ K) is the adopted standard value of the thermal conductivity of water at 298.15 K and 0.1 MPa.
Dynamic viscosity is calculated as the product of density and kinematic viscosity, both temperature dependent. However, the kinematic viscosity has its own temperture dependent correlation, implemented at Annex60.Media.Specialized.Water.TemperatureDependentDensity.kinematicViscosity. Results of the kinematic viscosity as a function of temperature are shown in the figure below.
The enthalpy is computed using the convention that h=0 if T=0 °C.
Phase changes are not modeled.
Name | Description |
---|---|
FluidConstants | |
ThermodynamicState | Thermodynamic state variables |
BaseProperties | Base properties |
density | Return the density |
dynamicViscosity | Return the dynamic viscosity |
specificEnthalpy | Return the specific enthalpy |
enthalpyOfLiquid | Return the specific enthalpy of liquid |
specificInternalEnergy | Return the specific enthalpy |
specificEntropy | Return the specific entropy |
specificGibbsEnergy | Return the specific Gibbs energy |
specificHelmholtzEnergy | Return the specific Helmholtz energy |
isentropicEnthalpy | Return the isentropic enthalpy |
isobaricExpansionCoefficient | Return the isobaric expansion coefficient |
isothermalCompressibility | Return the isothermal compressibility factor |
density_derp_T | Return the partial derivative of density with respect to pressure at constant temperature |
density_derT_p | Return the partial derivative of density with respect to temperature at constant pressure |
density_derX | Return the partial derivative of density with respect to mass fractions at constant pressure and temperature |
specificHeatCapacityCp | Return the specific heat capacity at constant pressure |
specificHeatCapacityCv | Return the specific heat capacity at constant volume |
thermalConductivity | Return the thermal conductivity |
pressure | Return the pressure |
temperature | Return the temperature |
molarMass | Return the molar mass |
setState_dTX | Return thermodynamic state from d, T, and X or Xi |
setState_phX | Return the thermodynamic state as function of pressure p, specific enthalpy h and composition X or Xi |
setState_pTX | Return the thermodynamic state as function of p, T and composition X or Xi |
setState_psX | Return the thermodynamic state as function of p, s and composition X or Xi |
AbsolutePressure(start=p_default)
and Temperature(start=T_default)
to have to have conistent start values.
See also revision notes of
Annex60.Media.Water.
This is for
#266.
Inline=true
for
issue 227.
stateSelect
attribute on pressure as this caused
Annex60.Examples.Tutorial.SpaceCooling.System3
to fail with the error message
"differentiated if-then-else was not continuous".
stateSelect.prefer
for temperature.
This is for
#160.
Annex60.Media.Water
to
Annex60.Media.Water.Detailed
to allow addition of
Annex60.Media.Water.Simple
.
T(start=T_default)
and p(start=p_default)
in the
ThermodynamicState
record. Setting the start value for
T
is required to avoid an error due to conflicting start values
when checking
Annex60.Examples.VAVReheat.ClosedLoop in pedantic mode.