This package contains different medium models for water:
The WaterIF97 models calculate medium properties for water in the liquid, gas and two phase regions according to the IAPWS/IF97 standard, i.e., the accepted industrial standard and best compromise between accuracy and computation time. It has been part of the ThermoFluid Modelica library and been extended, reorganized and documented to become part of the Modelica Standard library.
An important feature that distinguishes this implementation of the IF97 steam property standard is that this implementation has been explicitly designed to work well in dynamic simulations. Computational performance has been of high importance. This means that there often exist several ways to get the same result from different functions if one of the functions is called often but can be optimized for that purpose.
Three variable pairs can be the independent variables of the model:
The following quantities are always computed in Medium.Baseproperties:
Variable | Unit | Description |
T | K | temperature |
u | J/kg | specific internal energy |
d | kg/m^3 | density |
p | Pa | pressure |
h | J/kg | specific enthalpy |
In some cases additional medium properties are needed. A component that needs these optional properties has to call one of the following functions:
Function call | Unit | Description |
Medium.dynamicViscosity(medium.state) | Pa.s | dynamic viscosity |
Medium.thermalConductivity(medium.state) | W/(m.K) | thermal conductivity |
Medium.prandtlNumber(medium.state) | 1 | Prandtl number |
Medium.specificEntropy(medium.state) | J/(kg.K) | specific entropy |
Medium.heatCapacity_cp(medium.state) | J/(kg.K) | specific heat capacity at constant pressure |
Medium.heatCapacity_cv(medium.state) | J/(kg.K) | specific heat capacity at constant density |
Medium.isentropicExponent(medium.state) | 1 | isentropic exponent |
Medium.isentropicEnthalpy(pressure, medium.state) | J/kg | isentropic enthalpy |
Medium.velocityOfSound(medium.state) | m/s | velocity of sound |
Medium.isobaricExpansionCoefficient(medium.state) | 1/K | isobaric expansion coefficient |
Medium.isothermalCompressibility(medium.state) | 1/Pa | isothermal compressibility |
Medium.density_derp_h(medium.state) | kg/(m3.Pa) | derivative of density by pressure at constant enthalpy |
Medium.density_derh_p(medium.state) | kg2/(m3.J) | derivative of density by enthalpy at constant pressure |
Medium.density_derp_T(medium.state) | kg/(m3.Pa) | derivative of density by pressure at constant temperature |
Medium.density_derT_p(medium.state) | kg/(m3.K) | derivative of density by temperature at constant pressure |
Medium.density_derX(medium.state) | kg/m3 | derivative of density by mass fraction |
Medium.molarMass(medium.state) | kg/mol | molar mass |
More details are given in Modelica.Media.UsersGuide.MediumUsage.OptionalProperties. Many additional optional functions are defined to compute properties of saturated media, either liquid (bubble point) or vapour (dew point). The argument to such functions is a SaturationProperties record, which can be set starting from either the saturation pressure or the saturation temperature. With reference to a model defining a pressure p, a temperature T, and a SaturationProperties record sat, the following functions are provided:
Function call | Unit | Description |
Medium.saturationPressure(T) | Pa | Saturation pressure at temperature T |
Medium.saturationTemperature(p) | K | Saturation temperature at pressure p |
Medium.saturationTemperature_derp(p) | K/Pa | Derivative of saturation temperature with respect to pressure |
Medium.bubbleEnthalpy(sat) | J/kg | Specific enthalpy at bubble point |
Medium.dewEnthalpy(sat) | J/kg | Specific enthalpy at dew point |
Medium.bubbleEntropy(sat) | J/(kg.K) | Specific entropy at bubble point |
Medium.dewEntropy(sat) | J/(kg.K) | Specific entropy at dew point |
Medium.bubbleDensity(sat) | kg/m3 | Density at bubble point |
Medium.dewDensity(sat) | kg/m3 | Density at dew point |
Medium.dBubbleDensity_dPressure(sat) | kg/(m3.Pa) | Derivative of density at bubble point with respect to pressure |
Medium.dDewDensity_dPressure(sat) | kg/(m3.Pa) | Derivative of density at dew point with respect to pressure |
Medium.dBubbleEnthalpy_dPressure(sat) | J/(kg.Pa) | Derivative of specific enthalpy at bubble point with respect to pressure |
Medium.dDewEnthalpy_dPressure(sat) | J/(kg.Pa) | Derivative of specific enthalpy at dew point with respect to pressure |
Medium.surfaceTension(sat) | N/m | Surface tension between liquid and vapour phase |
Details on usage and some examples are given in: Modelica.Media.UsersGuide.MediumUsage.TwoPhase.
Many further properties can be computed. Using the well-known Bridgman's Tables, all first partial derivatives of the standard thermodynamic variables can be computed easily.
The documentation of the IAPWS/IF97 steam properties can be freely distributed with computer implementations and are included here (in directory Modelica\help\Documentation\IF97documentation):
Extends from Modelica.Icons.Library (Icon for library).
Name | Description |
---|---|
waterConstants | |
simpleWaterConstants | |
ConstantPropertyLiquidWater | Water: Simple liquid water medium (incompressible, constant data) |
IdealSteam | Water: Steam as ideal gas from NASA source |
WaterIF97OnePhase_ph | Water using the IF97 standard, explicit in p and h, and only valid outside the two-phase dome |
WaterIF97_ph | Water using the IF97 standard, explicit in p and h |
WaterIF97_base | Water: Steam properties as defined by IAPWS/IF97 standard |
WaterIF97_fixedregion | Water: Steam properties as defined by IAPWS/IF97 standard |
WaterIF97_R1ph | region 1 (liquid) water according to IF97 standard |
WaterIF97_R2ph | region 2 (steam) water according to IF97 standard |
WaterIF97_R3ph | region 3 water according to IF97 standard |
WaterIF97_R4ph | region 4 water according to IF97 standard |
WaterIF97_R5ph | region 5 water according to IF97 standard |
WaterIF97_R1pT | region 1 (liquid) water according to IF97 standard |
WaterIF97_R2pT | region 2 (steam) water according to IF97 standard |
IF97_Utilities | Low level and utility computation for high accuracy water properties according to the IAPWS/IF97 standard |
constant Interfaces.PartialTwoPhaseMedium.FluidConstants[1] waterConstants( each chemicalFormula = "H2O", each structureFormula="H2O", each casRegistryNumber="7732-18-5", each iupacName="oxidane", each molarMass=0.018015268, each criticalTemperature=647.096, each criticalPressure=22064.0e3, each criticalMolarVolume=1/322.0*0.018015268, each normalBoilingPoint=373.124, each meltingPoint=273.15, each triplePointTemperature=273.16, each triplePointPressure=611.657, each acentricFactor = 0.344, each dipoleMoment = 1.8, each hasCriticalData=true);
constant Interfaces.PartialMedium.FluidConstants[1] simpleWaterConstants( each chemicalFormula = "H2O", each structureFormula="H2O", each casRegistryNumber="7732-18-5", each iupacName="oxidane", each molarMass=0.018015268);
package StandardWater = WaterIF97_ph "Water using the IF97 standard, explicit in p and h. Recommended for most applications";
package StandardWaterOnePhase = WaterIF97_pT "Water using the IF97 standard, explicit in p and T. Recommended for one-phase applications";
package WaterIF97_pT "Water using the IF97 standard, explicit in p and T" extends WaterIF97_base( ThermoStates = Choices.IndependentVariables.pT, final ph_explicit=false, final dT_explicit=false, final pT_explicit=true, final smoothModel=true, final onePhase=true); end WaterIF97_pT ;