Description: "Package with model for liquid water with temperature-dependent density"

- Home > Modelica

## Buildings.Media.Specialized.Water.TemperatureDependentDensity

Package with model for liquid water with temperature-dependent density

### Information

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 Buildings.Media.Water in which the density is a constant. We therefore recommend to use Buildings.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.

The enthalpy is computed using the convention that h=0 if T=0 °C.

#### Limitations

Specific heat capacity, thermal conductivity and viscosity are constant. Water is modeled as an incompressible liquid. There are no phase changes.

Extends from Modelica.Media.Interfaces.PartialPureSubstance (Base class for pure substances of one chemical substance), Modelica.Icons.Package (Icon for standard packages).

### Package Content

Name | Description
--- | ---
FluidConstants |
ThermodynamicState | Thermodynamic state variables
cp_const=4184 | Specific heat capacity at constant pressure
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
cv_const=cp_const | Specific heat capacity at constant volume
a_const=1484 | Constant velocity of sound
MM_const=0.018015268 | Molar mass
der_specificHeatCapacityCp | Return the derivative of the specific heat capacity at constant pressure
der_enthalpyOfLiquid | Temperature derivative of enthalpy of liquid per unit mass of liquid
kinematicViscosity | Return the kinematic viscosity
Inherited
setState_pT | Return thermodynamic state from p and T
setState_ph | Return thermodynamic state from p and h
setState_ps | Return thermodynamic state from p and s
setState_dT | Return thermodynamic state from d and T
density_ph | Return density from p and h
temperature_ph | Return temperature from p and h
pressure_dT | Return pressure from d and T
specificEnthalpy_dT | Return specific enthalpy from d and T
specificEnthalpy_ps | Return specific enthalpy from p and s
temperature_ps | Return temperature from p and s
density_ps | Return density from p and s
specificEnthalpy_pT | Return specific enthalpy from p and T
density_pT | Return density from p and T
ThermoStates | Enumeration type for independent variables
mediumName="unusablePartialMedium" | Name of the medium
substanceNames={mediumName} | Names of the mixture substances. Set substanceNames={mediumName} if only one substance.
extraPropertiesNames=fill("", 0) | Names of the additional (extra) transported properties. Set extraPropertiesNames=fill("",0) if unused
singleState | = true, if u and d are not a function of pressure
reducedX=true | = true if medium contains the equation sum(X) = 1.0; set reducedX=true if only one substance (see docu for details)
fixedX=false | = true if medium contains the equation X = reference_X
reference_p=101325 | Reference pressure of Medium: default 1 atmosphere
reference_T=298.15 | Reference temperature of Medium: default 25 deg Celsius
reference_X=fill(1/nX, nX) | Default mass fractions of medium
p_default=101325 | Default value for pressure of medium (for initialization)
T_default=Modelica.SIunits.Conversions.from_degC(20) | Default value for temperature of medium (for initialization)
h_default=specificEnthalpy_pTX(p_default, T_default, X_default) | Default value for specific enthalpy of medium (for initialization)
X_default=reference_X | Default value for mass fractions of medium (for initialization)
nS=size(substanceNames, 1) | Number of substances
nX=nS | Number of mass fractions
nXi=if fixedX then 0 else if reducedX then nS - 1 else nS | Number of structurally independent mass fractions (see docu for details)
nC=size(extraPropertiesNames, 1) | Number of extra (outside of standard mass-balance) transported properties
C_nominal=1.0e-6*ones(nC) | Default for the nominal values for the extra properties
setSmoothState | Return thermodynamic state so that it smoothly approximates: if x > 0 then state_a else state_b
prandtlNumber | Return the Prandtl number
heatCapacity_cp | Alias for deprecated name
heatCapacity_cv | Alias for deprecated name
isentropicExponent | Return isentropic exponent
velocityOfSound | Return velocity of sound
beta | Alias for isobaricExpansionCoefficient for user convenience
kappa | Alias of isothermalCompressibility for user convenience
density_derp_h | Return density derivative w.r.t. pressure at const specific enthalpy
density_derh_p | Return density derivative w.r.t. specific enthalpy at constant pressure
specificEnthalpy_pTX | Return specific enthalpy from p, T, and X or Xi
specificEntropy_pTX | Return specific enthalpy from p, T, and X or Xi
density_pTX | Return density from p, T, and X or Xi
temperature_phX | Return temperature from p, h, and X or Xi
density_phX | Return density from p, h, and X or Xi
temperature_psX | Return temperature from p,s, and X or Xi
density_psX | Return density from p, s, and X or Xi
specificEnthalpy_psX | Return specific enthalpy from p, s, and X or Xi
MassFlowRate | Type for mass flow rate with medium specific attributes
AbsolutePressure | Type for absolute pressure with medium specific attributes
Density | Type for density with medium specific attributes
DynamicViscosity | Type for dynamic viscosity with medium specific attributes
EnthalpyFlowRate | Type for enthalpy flow rate with medium specific attributes
MassFraction | Type for mass fraction with medium specific attributes
MoleFraction | Type for mole fraction with medium specific attributes
MolarMass | Type for molar mass with medium specific attributes
MolarVolume | Type for molar volume with medium specific attributes
IsentropicExponent | Type for isentropic exponent with medium specific attributes
SpecificEnergy | Type for specific energy with medium specific attributes
SpecificInternalEnergy | Type for specific internal energy with medium specific attributes
SpecificEnthalpy | Type for specific enthalpy with medium specific attributes
SpecificEntropy | Type for specific entropy with medium specific attributes
SpecificHeatCapacity | Type for specific heat capacity with medium specific attributes
SurfaceTension | Type for surface tension with medium specific attributes
Temperature | Type for temperature with medium specific attributes
ThermalConductivity | Type for thermal conductivity with medium specific attributes
PrandtlNumber | Type for Prandtl number with medium specific attributes
VelocityOfSound | Type for velocity of sound with medium specific attributes
ExtraProperty | Type for unspecified, mass-specific property transported by flow
CumulativeExtraProperty | Type for conserved integral of unspecified, mass specific property
ExtraPropertyFlowRate | Type for flow rate of unspecified, mass-specific property
IsobaricExpansionCoefficient | Type for isobaric expansion coefficient with medium specific attributes
DipoleMoment | Type for dipole moment with medium specific attributes
DerDensityByPressure | Type for partial derivative of density with respect to pressure with medium specific attributes
DerDensityByEnthalpy | Type for partial derivative of density with respect to enthalpy with medium specific attributes
DerEnthalpyByPressure | Type for partial derivative of enthalpy with respect to pressure with medium specific attributes
DerDensityByTemperature | Type for partial derivative of density with respect to temperature with medium specific attributes
DerTemperatureByPressure | Type for partial derivative of temperature with respect to pressure with medium specific attributes
SaturationProperties | Saturation properties of two phase medium
FluidLimits | Validity limits for fluid model
FixedPhase | Phase of the fluid: 1 for 1-phase, 2 for two-phase, 0 for not known, e.g., interactive use
Basic | The most basic version of a record used in several degrees of detail
IdealGas | The ideal gas version of a record used in several degrees of detail
TwoPhase | The two phase fluid version of a record used in several degrees of detail

### Types and constants

      constant Modelica.SIunits.SpecificHeatCapacity cp_const = 4184
      "Specific heat capacity at constant pressure";

      final constant Modelica.SIunits.SpecificHeatCapacity cv_const = cp_const
      "Specific heat capacity at constant volume";

      constant Modelica.SIunits.VelocityOfSound a_const=1484
      "Constant velocity of sound";

      constant Modelica.SIunits.MolarMass MM_const=0.018015268 "Molar mass";

## Buildings.Media.Specialized.Water.TemperatureDependentDensity.FluidConstants

### Parameters

Type | Name | Default | Description
--- | --- | --- | ---
String | iupacName | "oxidane" | Complete IUPAC name (or common name, if non-existent)
String | casRegistryNumber | "7732-18-5" | Chemical abstracts sequencing number (if it exists)
String | chemicalFormula | "H2O" | Chemical formula, (brutto, nomenclature according to Hill
String | structureFormula | "H2O" | Chemical structure formula
MolarMass | molarMass | MM_const | Molar mass [kg/mol]

### Modelica definition

redeclare record FluidConstants = Modelica.Media.Interfaces.Types.Basic.FluidConstants ( each chemicalFormula="H2O", each structureFormula="H2O", each casRegistryNumber="7732-18-5", each iupacName="oxidane", each molarMass=MM_const);

## Buildings.Media.Specialized.Water.TemperatureDependentDensity.ThermodynamicState

Thermodynamic state variables

### Information

Extends from (Minimal variable set that is available as input argument to every medium function).

### Modelica definition

redeclare record extends ThermodynamicState "Thermodynamic state variables" Modelica.SIunits.Temperature T(start=T_default) "Temperature of medium"; Modelica.SIunits.AbsolutePressure p(start=p_default) "Pressure of medium"; end ThermodynamicState;

## Buildings.Media.Specialized.Water.TemperatureDependentDensity.BaseProperties

Base properties

### Information

Base properties of the medium.

Extends from .

### Parameters

Type | Name | Default | Description
--- | --- | --- | ---
Advanced
Boolean | preferredMediumStates | true | = true if StateSelect.prefer shall be used for the independent property variables of the medium

### Modelica definition

redeclare model extends BaseProperties( preferredMediumStates=true) "Base properties" equation h = (T - reference_T)*cp_const; u = h-reference_p/d; d = density(state); state.T = T; state.p = p; R=Modelica.Constants.R; MM=MM_const; end BaseProperties;

## Buildings.Media.Specialized.Water.TemperatureDependentDensity.density

Return the density

### Information

This function computes the density as a function of temperature.

#### Implementation

The function is based on the IDA implementation in `therpro.nmf`, which implements

    d := 1000.12 + 1.43711e-2*T_degC -
     5.83576e-3*T_degC^2 + 1.5009e-5*T_degC^3;

This has been converted to Kelvin, which resulted in the above expression. In addition, below 5 °C and above 100 °C, the density is replaced by a linear function to avoid inflection points. This linear extension is such that the density is once continuously differentiable.

Extends from (Return density).

### Inputs

Type | Name | Default | Description
--- | --- | --- | ---
ThermodynamicState | state |  | Thermodynamic state record

### Outputs

Type | Name | Description
--- | --- | ---
Density | d | Density [kg/m3]

### Modelica definition

redeclare function extends density "Return the density" algorithm d := smooth(1, if state.T < 278.15 then -0.042860825*state.T + 1011.9695761 elseif state.T < 373.15 then 0.000015009*state.T^3 - 0.01813488505*state.T^2 + 6.5619527954075*state.T + 254.900074971947 else -0.7025109*state.T + 1220.35045233); end density;

## Buildings.Media.Specialized.Water.TemperatureDependentDensity.dynamicViscosity

Return the dynamic viscosity

### Information

This function computes the dynamic viscosity.

Extends from (Return dynamic viscosity).

### Inputs

Type | Name | Default | Description
--- | --- | --- | ---
ThermodynamicState | state |  | Thermodynamic state record

### Outputs

Type | Name | Description
--- | --- | ---
DynamicViscosity | eta | Dynamic viscosity [Pa.s]

### Modelica definition

redeclare function extends dynamicViscosity "Return the dynamic viscosity" algorithm eta := density(state)*kinematicViscosity(state.T); end dynamicViscosity;

## Buildings.Media.Specialized.Water.TemperatureDependentDensity.specificEnthalpy

Return the specific enthalpy

### Information

This function computes the specific enthalpy.

Extends from (Return specific enthalpy).

### Inputs

Type | Name | Default | Description
--- | --- | --- | ---
ThermodynamicState | state |  | Thermodynamic state record

### Outputs

Type | Name | Description
--- | --- | ---
SpecificEnthalpy | h | Specific enthalpy [J/kg]

### Modelica definition

redeclare function extends specificEnthalpy "Return the specific enthalpy" algorithm h := (state.T - reference_T)*cp_const; end specificEnthalpy;

## Buildings.Media.Specialized.Water.TemperatureDependentDensity.enthalpyOfLiquid

Return the specific enthalpy of liquid

### Information

This function computes the specific enthalpy of liquid water.

Extends from Modelica.Icons.Function (Icon for functions).

### Inputs

Type | Name | Default | Description
--- | --- | --- | ---
Temperature | T |  | Temperature [K]

### Outputs

Type | Name | Description
--- | --- | ---
SpecificEnthalpy | h | Specific enthalpy [J/kg]

### Modelica definition

function enthalpyOfLiquid "Return the specific enthalpy of liquid" annotation(derivative=der_enthalpyOfLiquid); extends Modelica.Icons.Function; input Modelica.SIunits.Temperature T "Temperature"; output Modelica.SIunits.SpecificEnthalpy h "Specific enthalpy"; algorithm h := (T - reference_T)*cp_const; end enthalpyOfLiquid;

## Buildings.Media.Specialized.Water.TemperatureDependentDensity.specificInternalEnergy

Return the specific enthalpy

### Information

This function computes the specific internal energy.

Extends from (Return specific internal energy).

### Inputs

Type | Name | Default | Description
--- | --- | --- | ---
ThermodynamicState | state |  | Thermodynamic state record

### Outputs

Type | Name | Description
--- | --- | ---
SpecificEnergy | u | Specific internal energy [J/kg]

### Modelica definition

redeclare function extends specificInternalEnergy "Return the specific enthalpy" algorithm u := specificEnthalpy(state) - reference_p/density(state); end specificInternalEnergy;

## Buildings.Media.Specialized.Water.TemperatureDependentDensity.specificEntropy

Return the specific entropy

### Information

This function computes the specific entropy.

To obtain the state for a given pressure, entropy and mass fraction, use Buildings.Media.Air.setState_psX.

Extends from Modelica.Icons.Function (Icon for functions), (Return specific entropy).

### Inputs

Type | Name | Default | Description
--- | --- | --- | ---
ThermodynamicState | state |  | Thermodynamic state record

### Outputs

Type | Name | Description
--- | --- | ---
SpecificEntropy | s | Specific entropy [J/(kg.K)]

### Modelica definition

redeclare function extends specificEntropy "Return the specific entropy" extends Modelica.Icons.Function; algorithm s := cv_const*Modelica.Math.log(state.T/reference_T); end specificEntropy;

## Buildings.Media.Specialized.Water.TemperatureDependentDensity.specificGibbsEnergy

Return the specific Gibbs energy

### Information

This function computes the specific Gibbs energy.

Extends from Modelica.Icons.Function (Icon for functions), (Return specific Gibbs energy).

### Inputs

Type | Name | Default | Description
--- | --- | --- | ---
ThermodynamicState | state |  | Thermodynamic state record

### Outputs

Type | Name | Description
--- | --- | ---
SpecificEnergy | g | Specific Gibbs energy [J/kg]

### Modelica definition

redeclare function extends specificGibbsEnergy "Return the specific Gibbs energy" extends Modelica.Icons.Function; algorithm g := specificEnthalpy(state) - state.T*specificEntropy(state); end specificGibbsEnergy;

## Buildings.Media.Specialized.Water.TemperatureDependentDensity.specificHelmholtzEnergy

Return the specific Helmholtz energy

### Information

This function computes the specific Helmholtz energy.

Extends from Modelica.Icons.Function (Icon for functions), (Return specific Helmholtz energy).

### Inputs

Type | Name | Default | Description
--- | --- | --- | ---
ThermodynamicState | state |  | Thermodynamic state record

### Outputs

Type | Name | Description
--- | --- | ---
SpecificEnergy | f | Specific Helmholtz energy [J/kg]

### Modelica definition

redeclare function extends specificHelmholtzEnergy "Return the specific Helmholtz energy" extends Modelica.Icons.Function; algorithm f := specificInternalEnergy(state) - state.T*specificEntropy(state); end specificHelmholtzEnergy;

## Buildings.Media.Specialized.Water.TemperatureDependentDensity.isentropicEnthalpy

Return the isentropic enthalpy

### Information

This function computes the specific enthalpy for an isentropic state change from the temperature that corresponds to the state `refState` to `reference_T`.

Extends from (Return isentropic enthalpy).

### Inputs

Type | Name | Default | Description
--- | --- | --- | ---
AbsolutePressure | p_downstream |  | Downstream pressure [Pa]
ThermodynamicState | refState |  | Reference state for entropy

### Outputs

Type | Name | Description
--- | --- | ---
SpecificEnthalpy | h_is | Isentropic enthalpy [J/kg]

### Modelica definition

redeclare function extends isentropicEnthalpy "Return the isentropic enthalpy" algorithm h_is := specificEnthalpy(setState_psX( p=p_downstream, s=specificEntropy(refState), X={1})); end isentropicEnthalpy;

## Buildings.Media.Specialized.Water.TemperatureDependentDensity.isobaricExpansionCoefficient

Return the isobaric expansion coefficient

### Information

This function returns the isobaric expansion coefficient,

βp = - 1 ⁄ v (∂ v ⁄ ∂ T)p,

where v is the specific volume, T is the temperature and p is the pressure.

Extends from (Return overall the isobaric expansion coefficient beta).

### Inputs

Type | Name | Default | Description
--- | --- | --- | ---
ThermodynamicState | state |  | Thermodynamic state record

### Outputs

Type | Name | Description
--- | --- | ---
IsobaricExpansionCoefficient | beta | Isobaric expansion coefficient [1/K]

### Modelica definition

redeclare function extends isobaricExpansionCoefficient "Return the isobaric expansion coefficient" algorithm beta := -smooth(0, if state.T < 278.15 then 0.042860825*(0.042860825*state.T - 1011.9695761)/(-0.042860825*state.T + 1011.9695761)^2 elseif state.T < 373.15 then (4.5027e-5*state.T^2 - 0.0362697701*state.T + 6.5619527954075)/ (1.5009e-5*state.T^3 - 0.01813488505*state.T^2 + 6.5619527954075*state.T + 254.900074971947) else 0.7025109*(0.7025109*state.T - 1220.35045233)/(-0.7025109*state.T + 1220.35045233)^2); // Symbolic conversion of degC to Kelvin // ((4.5027e-05)*T_degC^2 - 0.01167152*state.T + // 3.202446788)/((1.5009e-05)*T_degC^3 - 0.00583576*T_degC^2 + // 0.0143711*state.T + 996.194534035) end isobaricExpansionCoefficient;

## Buildings.Media.Specialized.Water.TemperatureDependentDensity.isothermalCompressibility

Return the isothermal compressibility factor

### Information

This function returns the isothermal compressibility coefficient, which is zero as this medium is incompressible. The isothermal compressibility is defined as

κT = - 1 ⁄ v (∂ v ⁄ ∂ p)T,

where v is the specific volume, T is the temperature and p is the pressure.

Extends from (Return overall the isothermal compressibility factor).

### Inputs

Type | Name | Default | Description
--- | --- | --- | ---
ThermodynamicState | state |  | Thermodynamic state record

### Outputs

Type | Name | Description
--- | --- | ---
IsothermalCompressibility | kappa | Isothermal compressibility [1/Pa]

### Modelica definition

redeclare function extends isothermalCompressibility "Return the isothermal compressibility factor" algorithm kappa := 0; end isothermalCompressibility;

## Buildings.Media.Specialized.Water.TemperatureDependentDensity.density_derp_T

Return the partial derivative of density with respect to pressure at constant temperature

### Information

This function returns the partial derivative of density with respect to pressure at constant temperature, which is zero as the medium is incompressible.

Extends from (Return density derivative w.r.t. pressure at const temperature).

### Inputs

Type | Name | Default | Description
--- | --- | --- | ---
ThermodynamicState | state |  | Thermodynamic state record

### Outputs

Type | Name | Description
--- | --- | ---
DerDensityByPressure | ddpT | Density derivative w.r.t. pressure [s2/m2]

### Modelica definition

redeclare function extends density_derp_T "Return the partial derivative of density with respect to pressure at constant temperature" algorithm ddpT := 0; end density_derp_T;

## Buildings.Media.Specialized.Water.TemperatureDependentDensity.density_derT_p

Return the partial derivative of density with respect to temperature at constant pressure

### Information

This function computes the derivative of density with respect to temperature at constant pressure.

Extends from (Return density derivative w.r.t. temperature at constant pressure).

### Inputs

Type | Name | Default | Description
--- | --- | --- | ---
ThermodynamicState | state |  | Thermodynamic state record

### Outputs

Type | Name | Description
--- | --- | ---
DerDensityByTemperature | ddTp | Density derivative w.r.t. temperature [kg/(m3.K)]

### Modelica definition

redeclare function extends density_derT_p "Return the partial derivative of density with respect to temperature at constant pressure" algorithm ddTp := smooth(1, if state.T < 278.15 then -0.042860825 elseif state.T < 373.15 then (0.0000450270000000000*state.T^2 - 0.0362697701000000*state.T + 6.56195279540750) else -0.7025109); end density_derT_p;

## Buildings.Media.Specialized.Water.TemperatureDependentDensity.density_derX

Return the partial derivative of density with respect to mass fractions at constant pressure and temperature

### Information

This function returns the partial derivative of density with respect to mass fraction, which is zero as the medium is a single substance.

Extends from (Return density derivative w.r.t. mass fraction).

### Inputs

Type | Name | Default | Description
--- | --- | --- | ---
ThermodynamicState | state |  | Thermodynamic state record

### Outputs

Type | Name | Description
--- | --- | ---
Density | dddX[nX] | Derivative of density w.r.t. mass fraction [kg/m3]

### Modelica definition

redeclare function extends density_derX "Return the partial derivative of density with respect to mass fractions at constant pressure and temperature" algorithm dddX := fill(0, nX); end density_derX;

## Buildings.Media.Specialized.Water.TemperatureDependentDensity.specificHeatCapacityCp

Return the specific heat capacity at constant pressure

### Information

This function returns the specific heat capacity at constant pressure.

Extends from (Return specific heat capacity at constant pressure).

### Inputs

Type | Name | Default | Description
--- | --- | --- | ---
ThermodynamicState | state |  | Thermodynamic state record

### Outputs

Type | Name | Description
--- | --- | ---
SpecificHeatCapacity | cp | Specific heat capacity at constant pressure [J/(kg.K)]

### Modelica definition

redeclare replaceable function extends specificHeatCapacityCp "Return the specific heat capacity at constant pressure" annotation(derivative=der_specificHeatCapacityCp); algorithm cp := cp_const; end specificHeatCapacityCp;

## Buildings.Media.Specialized.Water.TemperatureDependentDensity.specificHeatCapacityCv

Return the specific heat capacity at constant volume

### Information

This function computes the specific heat capacity at constant volume.

Extends from (Return specific heat capacity at constant volume).

### Inputs

Type | Name | Default | Description
--- | --- | --- | ---
ThermodynamicState | state |  | Thermodynamic state record

### Outputs

Type | Name | Description
--- | --- | ---
SpecificHeatCapacity | cv | Specific heat capacity at constant volume [J/(kg.K)]

### Modelica definition

redeclare replaceable function extends specificHeatCapacityCv "Return the specific heat capacity at constant volume" annotation(derivative=der_specificHeatCapacityCp); algorithm cv := cv_const; end specificHeatCapacityCv;

## Buildings.Media.Specialized.Water.TemperatureDependentDensity.thermalConductivity

Return the thermal conductivity

### Information

This function returns the thermal conductivity. The expression is obtained from Ramires et al. (1995).

#### References

Ramires, Maria L. V. and Nieto de Castro, Carlos A. and Nagasaka, Yuchi and Nagashima, Akira and Assael, Marc J. and Wakeham, William A. Standard Reference Data for the Thermal Conductivity of Water. Journal of Physical and Chemical Reference Data, 24, p. 1377-1381, 1995. DOI:10.1063/1.555963.

Extends from (Return thermal conductivity).

### Inputs

Type | Name | Default | Description
--- | --- | --- | ---
ThermodynamicState | state |  | Thermodynamic state record

### Outputs

Type | Name | Description
--- | --- | ---
ThermalConductivity | lambda | Thermal conductivity [W/(m.K)]

### Modelica definition

redeclare function extends thermalConductivity "Return the thermal conductivity" algorithm lambda :=0.6065*(-1.48445 + 4.12292*(state.T/298.15) - 1.63866*(state.T/298.15)^2); end thermalConductivity;

## Buildings.Media.Specialized.Water.TemperatureDependentDensity.pressure

Return the pressure

### Information

This function returns the pressure.

Extends from (Return pressure).

### Inputs

Type | Name | Default | Description
--- | --- | --- | ---
ThermodynamicState | state |  | Thermodynamic state record

### Outputs

Type | Name | Description
--- | --- | ---
AbsolutePressure | p | Pressure [Pa]

### Modelica definition

redeclare function extends pressure "Return the pressure" algorithm p := state.p; end pressure;

## Buildings.Media.Specialized.Water.TemperatureDependentDensity.temperature

Return the temperature

### Information

This function returns the temperature.

Extends from (Return temperature).

### Inputs

Type | Name | Default | Description
--- | --- | --- | ---
ThermodynamicState | state |  | Thermodynamic state record

### Outputs

Type | Name | Description
--- | --- | ---
Temperature | T | Temperature [K]

### Modelica definition

redeclare function extends temperature "Return the temperature" algorithm T := state.T; end temperature;

## Buildings.Media.Specialized.Water.TemperatureDependentDensity.molarMass

Return the molar mass

### Information

This function returns the molar mass, which is assumed to be constant.

Extends from (Return the molar mass of the medium).

### Inputs

Type | Name | Default | Description
--- | --- | --- | ---
ThermodynamicState | state |  | Thermodynamic state record

### Outputs

Type | Name | Description
--- | --- | ---
MolarMass | MM | Mixture molar mass [kg/mol]

### Modelica definition

redeclare function extends molarMass "Return the molar mass" algorithm MM := MM_const; end molarMass;

## Buildings.Media.Specialized.Water.TemperatureDependentDensity.setState_dTX

Return thermodynamic state from d, T, and X or Xi

### Information

Extends from Modelica.Icons.Function (Icon for functions).

### Inputs

Type | Name | Default | Description
--- | --- | --- | ---
Density | d |  | Density [kg/m3]
Temperature | T |  | Temperature [K]
MassFraction | X[:] | reference_X | Mass fractions [kg/kg]

### Outputs

Type | Name | Description
--- | --- | ---
ThermodynamicState | state | Thermodynamic state record

### Modelica definition

redeclare function setState_dTX "Return thermodynamic state from d, T, and X or Xi" extends Modelica.Icons.Function; input Density d "Density"; input Temperature T "Temperature"; input MassFraction X[:]=reference_X "Mass fractions"; output ThermodynamicState state "Thermodynamic state record"; algorithm assert(false, "Pressure can not be computed from temperature and density for an incompressible fluid!"); end setState_dTX;

## Buildings.Media.Specialized.Water.TemperatureDependentDensity.setState_phX

Return the thermodynamic state as function of pressure p, specific enthalpy h and composition X or Xi

### Information

This function returns the thermodynamic state for a given pressure, specific enthalpy and composition.

Extends from (Return thermodynamic state as function of p, h and composition X or Xi).

### Inputs

Type | Name | Default | Description
--- | --- | --- | ---
AbsolutePressure | p |  | Pressure [Pa]
SpecificEnthalpy | h |  | Specific enthalpy [J/kg]
MassFraction | X[:] | reference_X | Mass fractions [kg/kg]

### Outputs

Type | Name | Description
--- | --- | ---
ThermodynamicState | state | Thermodynamic state record

### Modelica definition

redeclare function extends setState_phX "Return the thermodynamic state as function of pressure p, specific enthalpy h and composition X or Xi" algorithm state := ThermodynamicState(p=p, T=reference_T + h/cp_const); end setState_phX;

## Buildings.Media.Specialized.Water.TemperatureDependentDensity.setState_pTX

Return the thermodynamic state as function of p, T and composition X or Xi

### Information

This function returns the thermodynamic state for a given pressure, temperature and composition.

Extends from (Return thermodynamic state as function of p, T and composition X or Xi).

### Inputs

Type | Name | Default | Description
--- | --- | --- | ---
AbsolutePressure | p |  | Pressure [Pa]
Temperature | T |  | Temperature [K]
MassFraction | X[:] | reference_X | Mass fractions [kg/kg]

### Outputs

Type | Name | Description
--- | --- | ---
ThermodynamicState | state | Thermodynamic state record

### Modelica definition

redeclare function extends setState_pTX "Return the thermodynamic state as function of p, T and composition X or Xi" algorithm state := ThermodynamicState(p=p, T=T); end setState_pTX;

## Buildings.Media.Specialized.Water.TemperatureDependentDensity.setState_psX

Return the thermodynamic state as function of p, s and composition X or Xi

### Information

This function returns the thermodynamic state based on pressure, specific entropy and mass fraction.

The state is computed by symbolically solving Buildings.Media.Water.Detailed.specificEntropy for temperature.

Extends from (Return thermodynamic state as function of p, s and composition X or Xi).

### Inputs

Type | Name | Default | Description
--- | --- | --- | ---
AbsolutePressure | p |  | Pressure [Pa]
SpecificEntropy | s |  | Specific entropy [J/(kg.K)]
MassFraction | X[:] | reference_X | Mass fractions [kg/kg]

### Outputs

Type | Name | Description
--- | --- | ---
ThermodynamicState | state | Thermodynamic state record

### Modelica definition

redeclare function extends setState_psX "Return the thermodynamic state as function of p, s and composition X or Xi" algorithm // The temperature is obtained from symbolic solving the // specificEntropy function for T, i.e., // s := cv_const*Modelica.Math.log(state.T/reference_T) state := ThermodynamicState(p=p, T=reference_T * Modelica.Math.exp(s/cv_const)); end setState_psX;

## Buildings.Media.Specialized.Water.TemperatureDependentDensity.der_specificHeatCapacityCp

Return the derivative of the specific heat capacity at constant pressure

### Information

This function computes the derivative of the specific heat capacity at constant pressure with respect to the state.

Extends from Modelica.Icons.Function (Icon for functions).

### Inputs

Type | Name | Default | Description
--- | --- | --- | ---
ThermodynamicState | state |  | Thermodynamic state
ThermodynamicState | der_state |  | Derivative of thermodynamic state

### Outputs

Type | Name | Description
--- | --- | ---
Real | der_cp | Derivative of specific heat capacity [J/(kg.K.s)]

### Modelica definition

replaceable function der_specificHeatCapacityCp "Return the derivative of the specific heat capacity at constant pressure" extends Modelica.Icons.Function; input ThermodynamicState state "Thermodynamic state"; input ThermodynamicState der_state "Derivative of thermodynamic state"; output Real der_cp(unit="J/(kg.K.s)") "Derivative of specific heat capacity"; algorithm der_cp := 0; end der_specificHeatCapacityCp;

## Buildings.Media.Specialized.Water.TemperatureDependentDensity.der_enthalpyOfLiquid

Temperature derivative of enthalpy of liquid per unit mass of liquid

### Information

This function computes the temperature derivative of the enthalpy of liquid water per unit mass.

Extends from Modelica.Icons.Function (Icon for functions).

### Inputs

Type | Name | Default | Description
--- | --- | --- | ---
Temperature | T |  | Temperature [K]
Real | der_T |  | Temperature derivative

### Outputs

Type | Name | Description
--- | --- | ---
Real | der_h | Derivative of liquid enthalpy

### Modelica definition

replaceable function der_enthalpyOfLiquid "Temperature derivative of enthalpy of liquid per unit mass of liquid" extends Modelica.Icons.Function; input Temperature T "Temperature"; input Real der_T "Temperature derivative"; output Real der_h "Derivative of liquid enthalpy"; algorithm der_h := cp_const*der_T; end der_enthalpyOfLiquid;

## Buildings.Media.Specialized.Water.TemperatureDependentDensity.kinematicViscosity

Return the kinematic viscosity

### Information

This function computes the kinematic viscosity as a function of temperature.

#### Implementation

The function is based on the IDA implementation in `therpro.nmf`. The original equation is

    kinVis :=1E-6*Modelica.Math.exp(0.577449 - 3.253945e-2*T_degC + 2.17369e-4*
          T_degC^2 - 7.22111e-7*T_degC^3);

This has been converted to Kelvin, which resulted in the above expression. In addition, at 5 °C the kinematic viscosity is linearly extrapolated to avoid a large gradient at very low temperatures. We selected the same point for the linearization as we used for the density, as the density and the kinematic viscosity are combined in Buildings.Media.Water.Detailed.dynamicViscosity.

Extends from Modelica.Icons.Function (Icon for functions).

### Inputs

Type | Name | Default | Description
--- | --- | --- | ---
Temperature | T |  | Temperature [K]

### Outputs

Type | Name | Description
--- | --- | ---
KinematicViscosity | kinVis | Kinematic viscosity [m2/s]

### Modelica definition

function kinematicViscosity "Return the kinematic viscosity" extends Modelica.Icons.Function; input Modelica.SIunits.Temperature T "Temperature"; output Modelica.SIunits.KinematicViscosity kinVis "Kinematic viscosity"; algorithm kinVis := smooth(1, if T < 278.15 then -(4.63023776563e-08)*T + 1.44011135763e-05 else 1.0e-6*Modelica.Math.exp( -(7.22111000000000e-7)*T^3 + 0.000809102858950000*T^2 - 0.312920238272193*T + 40.4003044106506)); end kinematicViscosity;