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).
Name | Description |
---|---|
BaseProperties | Make StandardWater.BaseProperties non replaceable in order that inheritance is possible in model ExtendedProperties |
ExtendedProperties | plenty of two-phase properties |
TestTwoPhaseStates | Test the above model |
Inherited | |
ThermodynamicState | thermodynamic state |
ph_explicit | true if explicit in pressure and specific enthalpy |
dT_explicit | true if explicit in density and temperature |
pT_explicit | true if explicit in pressure and temperature |
density_ph | Computes density as a function of pressure and specific enthalpy |
temperature_ph | Computes temperature as a function of pressure and specific enthalpy |
temperature_ps | Compute temperature from pressure and specific enthalpy |
density_ps | Computes density as a function of pressure and specific enthalpy |
pressure_dT | Computes pressure as a function of density and temperature |
specificEnthalpy_dT | Computes specific enthalpy as a function of density and temperature |
specificEnthalpy_pT | Computes specific enthalpy as a function of pressure and temperature |
specificEnthalpy_ps | Computes specific enthalpy as a function of pressure and temperature |
density_pT | Computes density as a function of pressure and temperature |
setDewState | set the thermodynamic state on the dew line |
setBubbleState | set the thermodynamic state on the bubble line |
dynamicViscosity | Dynamic viscosity of water |
thermalConductivity | Thermal conductivity of water |
surfaceTension | Surface tension in two phase region of water |
pressure | return pressure of ideal gas |
temperature | return temperature of ideal gas |
density | return density of ideal gas |
specificEnthalpy | Return specific enthalpy |
specificInternalEnergy | Return specific internal energy |
specificGibbsEnergy | Return specific Gibbs energy |
specificHelmholtzEnergy | Return specific Helmholtz energy |
specificEntropy | specific entropy of water |
specificHeatCapacityCp | specific heat capacity at constant pressure of water |
specificHeatCapacityCv | specific heat capacity at constant volume of water |
isentropicExponent | Return isentropic exponent |
isothermalCompressibility | Isothermal compressibility of water |
isobaricExpansionCoefficient | isobaric expansion coefficient of water |
velocityOfSound | Return velocity of sound as a function of the thermodynamic state record |
isentropicEnthalpy | compute h(p,s) |
density_derh_p | density derivative by specific enthalpy |
density_derp_h | density derivative by pressure |
bubbleEnthalpy | boiling curve specific enthalpy of water |
dewEnthalpy | dew curve specific enthalpy of water |
bubbleEntropy | boiling curve specific entropy of water |
dewEntropy | dew curve specific entropy of water |
bubbleDensity | boiling curve specific density of water |
dewDensity | dew curve specific density of water |
saturationTemperature | saturation temperature of water |
saturationTemperature_derp | derivative of saturation temperature w.r.t. pressure |
saturationPressure | saturation pressure of water |
dBubbleDensity_dPressure | bubble point density derivative |
dDewDensity_dPressure | dew point density derivative |
dBubbleEnthalpy_dPressure | bubble point specific enthalpy derivative |
dDewEnthalpy_dPressure | dew point specific enthalpy derivative |
setState_dTX | Return thermodynamic state of water as function of d and T |
setState_phX | Return thermodynamic state of water as function of p and h |
setState_psX | Return thermodynamic state of water as function of p and s |
setState_pTX | Return thermodynamic state of water as function of p and T |
setSmoothState | Return thermodynamic state so that it smoothly approximates: if x > 0 then state_a else state_b |
smoothModel | true if the (derived) model should not generate state events |
onePhase | true if the (derived) model should never be called with two-phase inputs |
FluidLimits | validity limits for fluid model |
FluidConstants | extended fluid constants |
fluidConstants | constant data for the fluid |
SaturationProperties | Saturation properties of two phase medium |
FixedPhase | phase of the fluid: 1 for 1-phase, 2 for two-phase, 0 for not known, e.g., interactive use |
setSat_T | Return saturation property record from temperature |
setSat_p | Return saturation property record from pressure |
saturationPressure_sat | Return saturation temperature |
saturationTemperature_sat | Return saturation temperature |
saturationTemperature_derp_sat | Return derivative of saturation temperature w.r.t. pressure |
molarMass | Return the molar mass of the medium |
specificEnthalpy_pTX | Return specific enthalpy from pressure, temperature and mass fraction |
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 |
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 |
setState_px | Return thermodynamic state from pressure and vapour quality |
setState_Tx | Return thermodynamic state from temperature and vapour quality |
vapourQuality | Return vapour quality |
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 |
prandtlNumber | Return the Prandtl number |
heatCapacity_cp | alias for deprecated name |
heatCapacity_cv | alias for deprecated name |
beta | alias for isobaricExpansionCoefficient for user convenience |
kappa | alias of isothermalCompressibility for user convenience |
density_derp_T | Return density derivative w.r.t. pressure at const temperature |
density_derT_p | Return density derivative w.r.t. temperature at constant pressure |
density_derX | Return density derivative w.r.t. mass fraction |
specificEntropy_pTX | Return specific enthalpy from p, T, and X or Xi |
density_pTX | Return density from p, T, and X or Xi |
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 |
MassFlowRate | Type for mass 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 resect to pressure with medium specific attributes |
DerDensityByEnthalpy | Type for partial derivative of density with resect to enthalpy with medium specific attributes |
DerEnthalpyByPressure | Type for partial derivative of enthalpy with resect to pressure with medium specific attributes |
DerDensityByTemperature | Type for partial derivative of density with resect to temperature with medium specific attributes |
Choices | Types, constants to define menu choices |
Type | Name | Default | Description |
---|---|---|---|
Initialization | |||
Integer | phase.start | 1 | 2 for two-phase, 1 for one-phase, 0 if not known |
Advanced | |||
Boolean | preferredMediumStates | false | = true if StateSelect.prefer shall be used for the independent property variables of the medium |
redeclare model extends BaseProperties "Make StandardWater.BaseProperties non replaceable in order that inheritance is possible in model ExtendedProperties" end BaseProperties;
Type | Name | Default | Description |
---|---|---|---|
Initialization | |||
Integer | phase.start | 1 | 2 for two-phase, 1 for one-phase, 0 if not known |
Advanced | |||
Boolean | preferredMediumStates | false | = true if StateSelect.prefer shall be used for the independent property variables of the medium |
model ExtendedProperties "plenty of two-phase properties" extends BaseProperties; ThermodynamicState dew "dew line Properties"; ThermodynamicState bubble "bubble line Properties"; ThermodynamicState bubble2 "bubble line Properties, on the 2-phase side"; DynamicViscosity eta "viscosity (McAdams mixture rules if in 2-phase)"; DynamicViscosity eta_d "dew line viscosity"; DynamicViscosity eta_b "bubble line viscosity"; ThermalConductivity lambda_d "dew line thermal conductivity"; ThermalConductivity lambda_b "bubble line thermal conductivity"; SpecificHeatCapacity cp_d "dew line Specific heat capacity"; SpecificHeatCapacity cp_b "bubble line Specific heat capacity"; Real ddhp; Real ddhp_d; Real ddhp_b "derivatives"; Real ddph; Real ddph_d; Real ddph_b "derivatives"; Real ddhp_b2; Real ddph_b2 "derivatives"; // no derivatives yet, ... sat should be temporary MassFraction x "steam mass fraction"; Real dTp; Real dTp2; SpecificEntropy s_b; SpecificEntropy s_d; equation eta = if phase == 1 then dynamicViscosity(state) else 1/(x/eta_d + (1 - x) /eta_b); dew = setDewState(sat); bubble = setBubbleState(sat); bubble2 = setBubbleState(sat,2); x = (h - bubble.h)/max(dew.h - bubble.h,1e-6); eta_d = dynamicViscosity(dew); eta_b = dynamicViscosity(bubble); lambda_d = thermalConductivity(dew); lambda_b = thermalConductivity(bubble); cp_d = specificHeatCapacityCp(dew); cp_b = specificHeatCapacityCp(bubble); s_d = specificEntropy(dew); s_b = specificEntropy(bubble); ddph = density_derp_h(state); ddph_d = density_derp_h(dew); ddph_b = density_derp_h(bubble); ddhp = density_derh_p(state); ddhp_d = density_derh_p(dew); ddhp_b = density_derh_p(bubble); ddhp_b2 = density_derh_p(bubble2); ddph_b2 = density_derp_h(bubble2); dTp = saturationTemperature_derp(p); dTp2 = (1/dew.d - 1/bubble.d)/max(s_d - s_b,1e-6);end ExtendedProperties;
For details see the documentation of the example package TwoPhaseWater
Extends from Modelica.Icons.Example (Icon for runnable examples).
Type | Name | Default | Description |
---|---|---|---|
Real | dh | 80000.0 | 80 kJ/second |
Real | dp | 1.0e6 | 10 bars per second |
model TestTwoPhaseStates "Test the above model" extends Modelica.Icons.Example; ExtendedProperties medium(p(start = 700.0), h(start = 8.0e5)); parameter Real dh = 80000.0 "80 kJ/second"; parameter Real dp = 1.0e6 "10 bars per second"; equation der(medium.p) = dp; der(medium.h) = dh;end TestTwoPhaseStates;