Modelica.Media.Examples.TwoPhaseWater

Extension of the StandardWater package

Information

Example: TwoPhaseWater

The TwoPhaseWater package demonstrates how to extend the parsimonious BaseProperties with a minimal set of properties from the standard water package with most properties that are needed in two-phase situations. The model also demonstrates how to compute additional  properties for the medium model. In this scenario, that builds a new medium model with many more properties than the default, the standard BaseProperties is used as a basis. For additional properties, a user has to:
  1. Declare a new variable of the wanted type, e.g., "DynamicViscosity eta".
  2. Compute that variable by calling the function form the package, e.g., eta = dynamicViscosity(state). Note that the instance of ThermodynamicState is used as an input to the function. This instance "state" is declared in PartialMedium and thus available in every medium model. A user does not have to know what actual variables are required to compute the dynamic viscosity, because the state instance is guaranteed to contain what is needed.
  3. Attention: Many properties are not well defined in the two phase region and the functions might return undesired values if called there. It is the user's responsibility  to take care of such situations. The example uses one of several possible models to compute an averaged viscosity for two-phase flows.
In two phase models, properties are often needed on the phase boundary just outside the two phase dome, right on the border.. To compute the thermodynamic state there, two auxiliary functions are provided: setDewState(sat) and setBubbleState(sat). They take an instance of SaturationProperties as input. By default they are in one-phase, but with the optional phase argument set to 2, the output is forced to be just inside the phase boundary. This is only needed when derivatives like cv are computed with are different on both sides of the boundaries. The usual steps to compute properties on the phase boundary are:
  1. Declare an instance of ThermodynamicState, e.g., "ThermodynamicState  dew".
  2. Compute the state, using an instance of SaturationProperties, e.g., dew = setDewState(sat)
  3. Compute properties on the phase boundary to your full desire, e.g., "cp_d = specificHeatCapacityCp(dew)".

The sample model TestTwoPhaseStates test the extended properties

The same procedure can be used to compute properties at other state points, e.g., when an isentropic reference state is computed.

Extends from Modelica.Media.Water.StandardWater (Water using the IF97 standard, explicit in p and h. Recommended for most applications).

Package Content

Name Description
Modelica.Media.Examples.TwoPhaseWater.BaseProperties BaseProperties Make StandardWater.BaseProperties non replaceable in order that inheritance is possible in model ExtendedProperties
Modelica.Media.Examples.TwoPhaseWater.ExtendedProperties ExtendedProperties Plenty of two-phase properties
Modelica.Media.Examples.TwoPhaseWater.TestTwoPhaseStates TestTwoPhaseStates Test the TwoPhaseWater model
Inherited
Modelica.Media.Water.WaterIF97_base.SaturationProperties SaturationProperties  
Modelica.Media.Water.WaterIF97_base.ThermodynamicState ThermodynamicState Thermodynamic state
Region=0 Region of IF97, if known, zero otherwise
ph_explicit=true True if explicit in pressure and specific enthalpy
dT_explicit=false True if explicit in density and temperature
pT_explicit=false True if explicit in pressure and temperature
Modelica.Media.Water.WaterIF97_base.density_ph density_ph Computes density as a function of pressure and specific enthalpy
Modelica.Media.Water.WaterIF97_base.temperature_ph temperature_ph Computes temperature as a function of pressure and specific enthalpy
Modelica.Media.Water.WaterIF97_base.temperature_ps temperature_ps Compute temperature from pressure and specific enthalpy
Modelica.Media.Water.WaterIF97_base.density_ps density_ps Computes density as a function of pressure and specific enthalpy
Modelica.Media.Water.WaterIF97_base.pressure_dT pressure_dT Computes pressure as a function of density and temperature
Modelica.Media.Water.WaterIF97_base.specificEnthalpy_dT specificEnthalpy_dT Computes specific enthalpy as a function of density and temperature
Modelica.Media.Water.WaterIF97_base.specificEnthalpy_pT specificEnthalpy_pT Computes specific enthalpy as a function of pressure and temperature
Modelica.Media.Water.WaterIF97_base.specificEnthalpy_ps specificEnthalpy_ps Computes specific enthalpy as a function of pressure and temperature
Modelica.Media.Water.WaterIF97_base.density_pT density_pT Computes density as a function of pressure and temperature
Modelica.Media.Water.WaterIF97_base.setDewState setDewState Set the thermodynamic state on the dew line
Modelica.Media.Water.WaterIF97_base.setBubbleState setBubbleState Set the thermodynamic state on the bubble line
Modelica.Media.Water.WaterIF97_base.dynamicViscosity dynamicViscosity Dynamic viscosity of water
Modelica.Media.Water.WaterIF97_base.thermalConductivity thermalConductivity Thermal conductivity of water
Modelica.Media.Water.WaterIF97_base.surfaceTension surfaceTension Surface tension in two phase region of water
Modelica.Media.Water.WaterIF97_base.pressure pressure Return pressure of ideal gas
Modelica.Media.Water.WaterIF97_base.temperature temperature Return temperature of ideal gas
Modelica.Media.Water.WaterIF97_base.density density Return density of ideal gas
Modelica.Media.Water.WaterIF97_base.specificEnthalpy specificEnthalpy Return specific enthalpy
Modelica.Media.Water.WaterIF97_base.specificInternalEnergy specificInternalEnergy Return specific internal energy
Modelica.Media.Water.WaterIF97_base.specificGibbsEnergy specificGibbsEnergy Return specific Gibbs energy
Modelica.Media.Water.WaterIF97_base.specificHelmholtzEnergy specificHelmholtzEnergy Return specific Helmholtz energy
Modelica.Media.Water.WaterIF97_base.specificEntropy specificEntropy Specific entropy of water
Modelica.Media.Water.WaterIF97_base.specificHeatCapacityCp specificHeatCapacityCp Specific heat capacity at constant pressure of water
Modelica.Media.Water.WaterIF97_base.specificHeatCapacityCv specificHeatCapacityCv Specific heat capacity at constant volume of water
Modelica.Media.Water.WaterIF97_base.isentropicExponent isentropicExponent Return isentropic exponent
Modelica.Media.Water.WaterIF97_base.isothermalCompressibility isothermalCompressibility Isothermal compressibility of water
Modelica.Media.Water.WaterIF97_base.isobaricExpansionCoefficient isobaricExpansionCoefficient Isobaric expansion coefficient of water
Modelica.Media.Water.WaterIF97_base.velocityOfSound velocityOfSound Return velocity of sound as a function of the thermodynamic state record
Modelica.Media.Water.WaterIF97_base.isentropicEnthalpy isentropicEnthalpy Compute h(s,p)
Modelica.Media.Water.WaterIF97_base.density_derh_p density_derh_p Density derivative by specific enthalpy
Modelica.Media.Water.WaterIF97_base.density_derp_h density_derp_h Density derivative by pressure
Modelica.Media.Water.WaterIF97_base.bubbleEnthalpy bubbleEnthalpy Boiling curve specific enthalpy of water
Modelica.Media.Water.WaterIF97_base.dewEnthalpy dewEnthalpy Dew curve specific enthalpy of water
Modelica.Media.Water.WaterIF97_base.bubbleEntropy bubbleEntropy Boiling curve specific entropy of water
Modelica.Media.Water.WaterIF97_base.dewEntropy dewEntropy Dew curve specific entropy of water
Modelica.Media.Water.WaterIF97_base.bubbleDensity bubbleDensity Boiling curve specific density of water
Modelica.Media.Water.WaterIF97_base.dewDensity dewDensity Dew curve specific density of water
Modelica.Media.Water.WaterIF97_base.saturationTemperature saturationTemperature Saturation temperature of water
Modelica.Media.Water.WaterIF97_base.saturationTemperature_derp saturationTemperature_derp Derivative of saturation temperature w.r.t. pressure
Modelica.Media.Water.WaterIF97_base.saturationPressure saturationPressure Saturation pressure of water
Modelica.Media.Water.WaterIF97_base.dBubbleDensity_dPressure dBubbleDensity_dPressure Bubble point density derivative
Modelica.Media.Water.WaterIF97_base.dDewDensity_dPressure dDewDensity_dPressure Dew point density derivative
Modelica.Media.Water.WaterIF97_base.dBubbleEnthalpy_dPressure dBubbleEnthalpy_dPressure Bubble point specific enthalpy derivative
Modelica.Media.Water.WaterIF97_base.dDewEnthalpy_dPressure dDewEnthalpy_dPressure Dew point specific enthalpy derivative
Modelica.Media.Water.WaterIF97_base.setState_dTX setState_dTX Return thermodynamic state of water as function of d, T, and optional region
Modelica.Media.Water.WaterIF97_base.setState_phX setState_phX Return thermodynamic state of water as function of p, h, and optional region
Modelica.Media.Water.WaterIF97_base.setState_psX setState_psX Return thermodynamic state of water as function of p, s, and optional region
Modelica.Media.Water.WaterIF97_base.setState_pTX setState_pTX Return thermodynamic state of water as function of p, T, and optional region
Modelica.Media.Water.WaterIF97_base.setSmoothState setSmoothState Return thermodynamic state so that it smoothly approximates: if x > 0 then state_a else state_b
smoothModel=false True if the (derived) model should not generate state events
onePhase=false True if the (derived) model should never be called with two-phase inputs
fluidConstants=waterConstants Constant data for the fluid
Modelica.Media.Interfaces.PartialTwoPhaseMedium.setSat_T setSat_T Return saturation property record from temperature
Modelica.Media.Interfaces.PartialTwoPhaseMedium.setSat_p setSat_p Return saturation property record from pressure
Modelica.Media.Interfaces.PartialTwoPhaseMedium.saturationPressure_sat saturationPressure_sat Return saturation pressure
Modelica.Media.Interfaces.PartialTwoPhaseMedium.saturationTemperature_sat saturationTemperature_sat Return saturation temperature
Modelica.Media.Interfaces.PartialTwoPhaseMedium.saturationTemperature_derp_sat saturationTemperature_derp_sat Return derivative of saturation temperature w.r.t. pressure
Modelica.Media.Interfaces.PartialTwoPhaseMedium.molarMass molarMass Return the molar mass of the medium
Modelica.Media.Interfaces.PartialTwoPhaseMedium.specificEnthalpy_pTX specificEnthalpy_pTX Return specific enthalpy from pressure, temperature and mass fraction
Modelica.Media.Interfaces.PartialTwoPhaseMedium.temperature_phX temperature_phX Return temperature from p, h, and X or Xi
Modelica.Media.Interfaces.PartialTwoPhaseMedium.density_phX density_phX Return density from p, h, and X or Xi
Modelica.Media.Interfaces.PartialTwoPhaseMedium.temperature_psX temperature_psX Return temperature from p, s, and X or Xi
Modelica.Media.Interfaces.PartialTwoPhaseMedium.density_psX density_psX Return density from p, s, and X or Xi
Modelica.Media.Interfaces.PartialTwoPhaseMedium.specificEnthalpy_psX specificEnthalpy_psX Return specific enthalpy from p, s, and X or Xi
Modelica.Media.Interfaces.PartialTwoPhaseMedium.setState_pT setState_pT Return thermodynamic state from p and T
Modelica.Media.Interfaces.PartialTwoPhaseMedium.setState_ph setState_ph Return thermodynamic state from p and h
Modelica.Media.Interfaces.PartialTwoPhaseMedium.setState_ps setState_ps Return thermodynamic state from p and s
Modelica.Media.Interfaces.PartialTwoPhaseMedium.setState_dT setState_dT Return thermodynamic state from d and T
Modelica.Media.Interfaces.PartialTwoPhaseMedium.setState_px setState_px Return thermodynamic state from pressure and vapour quality
Modelica.Media.Interfaces.PartialTwoPhaseMedium.setState_Tx setState_Tx Return thermodynamic state from temperature and vapour quality
Modelica.Media.Interfaces.PartialTwoPhaseMedium.vapourQuality vapourQuality Return vapour quality
ThermoStates=Modelica.Media.Interfaces.Choices.IndependentVariables.ph Enumeration type for independent variables
mediumName="WaterIF97" Name of the medium
substanceNames={"water"} 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=false = 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=true = 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.Units.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)
C_default=fill(0, nC) Default value for trace substances 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
Modelica.Media.Interfaces.PartialMedium.FluidConstants FluidConstants Critical, triple, molecular and other standard data of fluid
Modelica.Media.Interfaces.PartialMedium.prandtlNumber prandtlNumber Return the Prandtl number
Modelica.Media.Interfaces.PartialMedium.heatCapacity_cp heatCapacity_cp Alias for deprecated name
Modelica.Media.Interfaces.PartialMedium.heatCapacity_cv heatCapacity_cv Alias for deprecated name
Modelica.Media.Interfaces.PartialMedium.beta beta Alias for isobaricExpansionCoefficient for user convenience
Modelica.Media.Interfaces.PartialMedium.kappa kappa Alias of isothermalCompressibility for user convenience
Modelica.Media.Interfaces.PartialMedium.density_derp_T density_derp_T Return density derivative w.r.t. pressure at const temperature
Modelica.Media.Interfaces.PartialMedium.density_derT_p density_derT_p Return density derivative w.r.t. temperature at constant pressure
Modelica.Media.Interfaces.PartialMedium.density_derX density_derX Return density derivative w.r.t. mass fraction
Modelica.Media.Interfaces.PartialMedium.specificEntropy_pTX specificEntropy_pTX Return specific enthalpy from p, T, and X or Xi
Modelica.Media.Interfaces.PartialMedium.density_pTX density_pTX Return density from p, T, and X or Xi
Modelica.Media.Interfaces.PartialMedium.MassFlowRate MassFlowRate Type for mass flow rate with medium specific attributes
Modelica.Media.Interfaces.Types.AbsolutePressure AbsolutePressure Type for absolute pressure with medium specific attributes
Modelica.Media.Interfaces.Types.Density Density Type for density with medium specific attributes
Modelica.Media.Interfaces.Types.DynamicViscosity DynamicViscosity Type for dynamic viscosity with medium specific attributes
Modelica.Media.Interfaces.Types.EnthalpyFlowRate EnthalpyFlowRate Type for enthalpy flow rate with medium specific attributes
Modelica.Media.Interfaces.Types.MassFraction MassFraction Type for mass fraction with medium specific attributes
Modelica.Media.Interfaces.Types.MoleFraction MoleFraction Type for mole fraction with medium specific attributes
Modelica.Media.Interfaces.Types.MolarMass MolarMass Type for molar mass with medium specific attributes
Modelica.Media.Interfaces.Types.MolarVolume MolarVolume Type for molar volume with medium specific attributes
Modelica.Media.Interfaces.Types.IsentropicExponent IsentropicExponent Type for isentropic exponent with medium specific attributes
Modelica.Media.Interfaces.Types.SpecificEnergy SpecificEnergy Type for specific energy with medium specific attributes
Modelica.Media.Interfaces.Types.SpecificInternalEnergy SpecificInternalEnergy Type for specific internal energy with medium specific attributes
Modelica.Media.Interfaces.Types.SpecificEnthalpy SpecificEnthalpy Type for specific enthalpy with medium specific attributes
Modelica.Media.Interfaces.Types.SpecificEntropy SpecificEntropy Type for specific entropy with medium specific attributes
Modelica.Media.Interfaces.Types.SpecificHeatCapacity SpecificHeatCapacity Type for specific heat capacity with medium specific attributes
Modelica.Media.Interfaces.Types.SurfaceTension SurfaceTension Type for surface tension with medium specific attributes
Modelica.Media.Interfaces.Types.Temperature Temperature Type for temperature with medium specific attributes
Modelica.Media.Interfaces.Types.ThermalConductivity ThermalConductivity Type for thermal conductivity with medium specific attributes
Modelica.Media.Interfaces.Types.PrandtlNumber PrandtlNumber Type for Prandtl number with medium specific attributes
Modelica.Media.Interfaces.Types.VelocityOfSound VelocityOfSound Type for velocity of sound with medium specific attributes
Modelica.Media.Interfaces.Types.ExtraProperty ExtraProperty Type for unspecified, mass-specific property transported by flow
Modelica.Media.Interfaces.Types.CumulativeExtraProperty CumulativeExtraProperty Type for conserved integral of unspecified, mass specific property
Modelica.Media.Interfaces.Types.ExtraPropertyFlowRate ExtraPropertyFlowRate Type for flow rate of unspecified, mass-specific property
Modelica.Media.Interfaces.Types.IsobaricExpansionCoefficient IsobaricExpansionCoefficient Type for isobaric expansion coefficient with medium specific attributes
Modelica.Media.Interfaces.Types.DipoleMoment DipoleMoment Type for dipole moment with medium specific attributes
Modelica.Media.Interfaces.Types.DerDensityByPressure DerDensityByPressure Type for partial derivative of density with respect to pressure with medium specific attributes
Modelica.Media.Interfaces.Types.DerDensityByEnthalpy DerDensityByEnthalpy Type for partial derivative of density with respect to enthalpy with medium specific attributes
Modelica.Media.Interfaces.Types.DerEnthalpyByPressure DerEnthalpyByPressure Type for partial derivative of enthalpy with respect to pressure with medium specific attributes
Modelica.Media.Interfaces.Types.DerDensityByTemperature DerDensityByTemperature Type for partial derivative of density with respect to temperature with medium specific attributes
Modelica.Media.Interfaces.Types.DerTemperatureByPressure DerTemperatureByPressure Type for partial derivative of temperature with respect to pressure with medium specific attributes
Modelica.Media.Interfaces.Types.FluidLimits FluidLimits Validity limits for fluid model
Modelica.Media.Interfaces.Types.FixedPhase FixedPhase Phase of the fluid: 1 for 1-phase, 2 for two-phase, 0 for not known, e.g., interactive use
Modelica.Media.Interfaces.Types.Basic Basic The most basic version of a record used in several degrees of detail
Modelica.Media.Interfaces.Types.IdealGas IdealGas The ideal gas version of a record used in several degrees of detail
Modelica.Media.Interfaces.Types.TwoPhase TwoPhase The two phase fluid version of a record used in several degrees of detail

Modelica.Media.Examples.TwoPhaseWater.BaseProperties Modelica.Media.Examples.TwoPhaseWater.BaseProperties

Make StandardWater.BaseProperties non replaceable in order that inheritance is possible in model ExtendedProperties

Information

Extends from (Base properties of water).

Parameters

NameDescription
Initialization
phase2 for two-phase, 1 for one-phase, 0 if not known
Advanced
preferredMediumStates= true if StateSelect.prefer shall be used for the independent property variables of the medium

Modelica.Media.Examples.TwoPhaseWater.ExtendedProperties Modelica.Media.Examples.TwoPhaseWater.ExtendedProperties

Plenty of two-phase properties

Information

Extends from BaseProperties (Make StandardWater.BaseProperties non replaceable in order that inheritance is possible in model ExtendedProperties).

Parameters

NameDescription
Initialization
phase2 for two-phase, 1 for one-phase, 0 if not known
Advanced
preferredMediumStates= true if StateSelect.prefer shall be used for the independent property variables of the medium

Modelica.Media.Examples.TwoPhaseWater.TestTwoPhaseStates Modelica.Media.Examples.TwoPhaseWater.TestTwoPhaseStates

Test the TwoPhaseWater model

Information

For details see the documentation of the example package TwoPhaseWater

Extends from Modelica.Icons.Example (Icon for runnable examples).

Parameters

NameDescription
dhDerivative of specific enthalpy of medium [J/(kg.s)]
dpDerivative of pressure of medium [Pa/s]
Automatically generated Thu Oct 1 16:08:00 2020.