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 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.
- 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:
- 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 2020-06-05T21:39:08Z by OpenModelica 1.16.0~dev-442-g2e5bc9f