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:
- Declare a new variable of the wanted type, e.g.,
DynamicViscosity eta
.
- Compute that variable by calling the function from 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.
- Note: 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:
- Declare an instance of ThermodynamicState, e.g., "ThermodynamicState dew".
- Compute the state, using an instance of SaturationProperties,
e.g., dew = setDewState(sat)
- 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.
Contents
Generated at 2024-11-21T19:25:40Z
by OpenModelicaOpenModelica 1.24.2 using GenerateDoc.mos