Pure Component Helmholtz EoS¶
The Helmholtz Equation of State (EoS) classes serve as a common core for pure component property packages where accurate and thermodynamically consistent pure component properties are required. New substances can be added by providing parameter and expression files. The Helmholtz EoS functions use ExternalFunction, so the IDAES binary extensions are required.
This page describes the standard HelmholtzParameterBlock and HelmholtzStateBlock. For
more information on accessing property expressions using a functionlike interface,
or adding and modifying substance parameters see the following pages. There are also
two modules available for backward compatibility iapws95
and swco2
, which are
the same as the general module, just with the pure component automatically set
to "h2o"
or "co2"
respectively.
Defined Components¶
If parameter and expression files are available for a component in the parameter file directory, they will be registered automatically. IDAES comes with some defined components and more can be added by users. Each component must have an equation of state model, while transport models for viscosity, thermal conductivity and surface tension are optional.
Functions listed in this section allow you to discover what components and models are available and get references for the models.
 idaes.models.properties.general_helmholtz.registered_components()[source]¶
Return a list of registered components
 idaes.models.properties.general_helmholtz.viscosity_available(comp_str)[source]¶
Return whether a viscosity model is available for a component.
 idaes.models.properties.general_helmholtz.thermal_conductivity_available(comp_str)[source]¶
Return whether a thermal conductivity model is available for a component.
 idaes.models.properties.general_helmholtz.surface_tension_available(comp_str)[source]¶
Return whether a surface tension model is available for a component.
 idaes.models.properties.general_helmholtz.component_registered(comp_str)[source]¶
Return whether a component is registered.
 idaes.models.properties.general_helmholtz.clear_component_registry()[source]¶
Remove all components from registry
 idaes.models.properties.general_helmholtz.eos_reference(comp_str)[source]¶
Return the equation of state reference or None if not available
 idaes.models.properties.general_helmholtz.viscosity_reference(comp_str)[source]¶
Return the viscosity reference or None if not available
Parameter File Location¶
You can get or set the parameter path with the functions described below. When the parameter path is set components will automatically be registered based on the available parameter files.
Classes¶
The main class used to define a property method is the HelmholtzParameterBlock. Unit models usually create their own state blocks, but it may be useful to create state block objects apart from unit models.
 class idaes.models.properties.general_helmholtz.HelmholtzParameterBlock(*args, **kwds)¶
 Parameters
rule (function) – A rule function or None. Default rule calls build().
concrete (bool) – If True, make this a toplevel model. Default  False.
ctype (class) –
Pyomo ctype of the block. Default  pyomo.environ.Block
Config args
 default_arguments
Default arguments to use with Property Package
 pure_component
(str) Pure component for which to calculate properties
 phase_presentation
Set the way phases are presented to models. The MIX option appears to the framework to be a mixed phase containing liquid and/or vapor. The mixed option can simplify calculations at the unit model level since it can be treated as a single phase, but unit models such as flash vessels will not be able to treat the phases independently. The LG option presents as two separate phases to the framework. The L or G options can be used if it is known for sure that only one phase is present. default  PhaseType.MIX Valid values: { PhaseType.MIX  Present a mixed phase with liquid and/or vapor, PhaseType.LG  Present a liquid and vapor phase, PhaseType.L  Assume only liquid can be present, PhaseType.G  Assume only vapor can be present}
 state_vars
The set of state variables to use. Depending on the use, one state variable set or another may be better computationally. Usually pressure and enthalpy are the best choice because they are well behaved during a phase change. default  StateVars.PH Valid values: { StateVars.PH  PressureEnthalpy, StateVars.PS  PressureEntropy, StateVars.PU  PressureInternal Energy, StateVars.TPX  TemperaturePressureQuality}
 amount_basis
The amount basis (mass or mole) for quantities default  AmountBasis.mole Valid values: { AmountBasis.mole  use mole units (mol), AmountBasis.mass  use mass units (kg)}
initialize (dict) – ProcessBlockData config for individual elements. Keys are BlockData indexes and values are dictionaries with config arguments as keys.
idx_map (function) – Function to take the index of a BlockData element and return the index in the initialize dict from which to read arguments. This can be provided to override the default behavior of matching the BlockData index exactly to the index in initialize.
 Returns
(HelmholtzParameterBlock) New instance
 class idaes.models.properties.general_helmholtz.HelmholtzParameterBlockData(component)[source]¶
This is a base class for Helmholtz equations of state using IDAES standard Helmholtz EOS external functions written in C++.
 add_param(name, expr)[source]¶
Add a parameter to the block.
 Parameters
name (str) – parameter name
expr (expression) – Pyomo expression for parameter value
 available()[source]¶
Returns True if the shared library is installed and loads properly otherwise returns False
 classmethod define_metadata(obj)[source]¶
Set all the metadata for properties and units.
This method should be implemented by subclasses. In the implementation, they should set information into the object provided as an argument.
 Parameters
pcm (PropertyClassMetadata) – Add metadata to this object.
 Returns
None
 dome_data(amount_basis=None, pressure_unit=<pyomo.core.base.units_container._PyomoUnit object>, energy_unit=<pyomo.core.base.units_container._PyomoUnit object>, mass_unit=<pyomo.core.base.units_container._PyomoUnit object>, mol_unit=<pyomo.core.base.units_container._PyomoUnit object>, n=60)[source]¶
Get data to plot the twophase dome or saturation curve. This data can be used to plot the 2 phase dome for ph and ts diagrams and the saturation curve on the pt diagram.
 Parameters
amount_bases (AmountBasis) – Mass or mole basis. Get from parameter block if None.
pressure_unit (PyomoUnit) – Pressure units of measure
energy_unit (PyomoUnit) – Energy units of measure
mass_unit (PyomoUnit) – Mass units of measure
mol_unit (PyomoUnit) – Mole unit of measure
 Returns
 dictionary with the keys {‘T’, ‘tau’, ‘p’, ‘delta_liq’,
’delta_vap’, ‘h_liq’, ‘h_vap’, ‘s_liq’, ‘s_vap’} each a list of numbers corresponding to states along the twophase dome.
 Return type
 hp_diagram(ylim=None, xlim=None, points=None, figsize=None, dpi=None, isotherms=None, isotherms_line_format=None, isotherms_label=True)¶
Create a enthalpypressure diagram using Matplotlib
 Parameters
ylim (tuple) – lower and upper limits for pressure axis
xlim (tuple) – lower and upper limits for enthalpy axis
points (dict) – dict of tuples points to label on the plot
figsize (tuple) – figure size
dpi (int) – figure dots per inch
isotherms (listNone) – list of temperatures for plotting isotherms
isotherms_line_format (strNone) – line format for isotherms
isotherms_label (bool) – if true label isotherms
 Returns
(figure, axis)
 htpx(T=None, p=None, x=None, units=None, amount_basis=None, with_units=False)[source]¶
Convenience method to calculate enthalpy from temperature and either pressure or vapor fraction. This function can be used for inlet streams and initialization where temperature is known instead of enthalpy. User must provide values for one of these sets of values: {T, P}, {T, x}, or {P, x}.
 Parameters
T (float) – Temperature
P (float) – Pressure, None if saturated
x (float) – Vapor fraction [mol vapor/mol total] (between 0 and 1), None if superheated or subcooled
units (Units) – The units to report the result in, if None use the default units appropriate for the amount basis.
amount_basis (AmountBasis) – Whether to use a mass or mole basis
with_units (bool) – if True return an expression with units
 Returns
Specific or molar enthalpy
 Return type
 initialize(*args, **kwargs)[source]¶
No initialization required here. This method is included for compatibility.
 isotherms(temperatures)[source]¶
Get isotherm data for a PH diagram.
 Parameters
temperatures – A list of temperatures
 Returns
 The keys are temperatures the values are dicts with “p”, “h”,
”s”, and “delta” data for the isotherm.
 Return type
 ph_diagram(ylim=None, xlim=None, points=None, figsize=None, dpi=None, isotherms=None, isotherms_line_format=None, isotherms_label=True)[source]¶
Create a enthalpypressure diagram using Matplotlib
 Parameters
ylim (tuple) – lower and upper limits for pressure axis
xlim (tuple) – lower and upper limits for enthalpy axis
points (dict) – dict of tuples points to label on the plot
figsize (tuple) – figure size
dpi (int) – figure dots per inch
isotherms (listNone) – list of temperatures for plotting isotherms
isotherms_line_format (strNone) – line format for isotherms
isotherms_label (bool) – if true label isotherms
 Returns
(figure, axis)
 pt_diagram(ylim=None, xlim=None, figsize=None, dpi=None)[source]¶
Create a pressureteperature diagram using Matplotlib
 st_diagram(ylim=None, xlim=None, points=None, figsize=None, dpi=None)¶
Create a entropytemperautre diagram using Matplotlib
 stpx(T=None, p=None, x=None, units=None, amount_basis=None, with_units=False)[source]¶
Convenience method to calculate entropy from temperature and either pressure or vapor fraction. This function can be used for inlet streams and initialization where temperature is known instead of entropy. User must provide values for one of these sets of values: {T, P}, {T, x}, or {P, x}.
 Parameters
T (float) – Temperature
P (float) – Pressure, None if saturated
x (float) – Vapor fraction [mol vapor/mol total] (between 0 and 1), None if superheated or subcooled
units (Units) – The units to report the result in, if None use the default units appropriate for the amount basis.
amount_basis (AmountBasis) – Whether to use a mass or mole basis
with_units (bool) – if True return an expression with units
 Returns
Specific or molar entropy
 Return type
 tp_diagram(ylim=None, xlim=None, figsize=None, dpi=None)¶
Create a pressureteperature diagram using Matplotlib
 ts_diagram(ylim=None, xlim=None, points=None, figsize=None, dpi=None)[source]¶
Create a entropytemperautre diagram using Matplotlib
 utpx(T=None, p=None, x=None, units=None, amount_basis=None, with_units=False)[source]¶
Convenience method to calculate internal energy from temperature and either pressure or vapor fraction. This function can be used for inlet streams and initialization where temperature is known instead of internal energy. User must provide values for one of these sets of values: {T, P}, {T, x}, or {P, x}.
 Parameters
T (float) – Temperature
P (float) – Pressure, None if saturated
x (float) – Vapor fraction [mol vapor/mol total] (between 0 and 1), None if superheated or subcooled
units (Units) – The units to report the result in, if None use the default units appropriate for the amount basis.
amount_basis (AmountBasis) – Whether to use a mass or mole basis
with_units (bool) – if True return an expression with units
 Returns
Specific or molar internal energy
 Return type
 class idaes.models.properties.general_helmholtz.HelmholtzStateBlock(*args, **kwds)¶
 Parameters
rule (function) – A rule function or None. Default rule calls build().
concrete (bool) – If True, make this a toplevel model. Default  False.
ctype (class) –
Pyomo ctype of the block. Default  pyomo.environ.Block
Config args
 parameters
A reference to an instance of the Property Parameter Block associated with this property package.
 defined_state
Flag indicating whether the state should be considered fully defined, and thus whether constraints such as sum of mass/mole fractions should be included, default  False. Valid values: { True  state variables will be fully defined, False  state variables will not be fully defined.}
 has_phase_equilibrium
Flag indicating whether phase equilibrium constraints should be constructed in this state block, default  True. Valid values: { True  StateBlock should calculate phase equilibrium, False  StateBlock should not calculate phase equilibrium.}
initialize (dict) – ProcessBlockData config for individual elements. Keys are BlockData indexes and values are dictionaries with config arguments as keys.
idx_map (function) – Function to take the index of a BlockData element and return the index in the initialize dict from which to read arguments. This can be provided to override the default behavior of matching the BlockData index exactly to the index in initialize.
 Returns
(HelmholtzStateBlock) New instance
 class idaes.models.properties.general_helmholtz.HelmholtzStateBlockData(*args, **kwargs)[source]¶
This is a base class for Helmholtz equations of state using IDAES standard Helmholtz EOS external functions written in C++.
 define_display_vars()[source]¶
Method used to specify components to use to generate stream tables and other outputs. Defaults to define_state_vars, and developers should overload as required.
 define_state_vars()[source]¶
Method that returns a dictionary of state variables used in property package. Implement a placeholder method which returns an Exception to force users to overload this.
 get_energy_density_terms(p)[source]¶
Get energy density terms for phase
 Parameters
p (str) – phase
 Returns
Expression
 get_enthalpy_flow_terms(p)[source]¶
Get enthalpy flow terms for phase
 Parameters
p (str) – phase
 Returns
Expression
 get_material_density_terms(p, j)[source]¶
Get material density terms for phase
 Parameters
p (str) – phase
 Returns
Expression
 get_material_flow_basis()[source]¶
Method which returns an Enum indicating the basis of the material flow term.
 class idaes.models.properties.general_helmholtz.StateVars(value, names=None, *, module=None, qualname=None, type=None, start=1, boundary=None)[source]¶
Enum, state variable set options.
PH: Pressure and enthalpy
PS: Pressure and entropy
PU: Pressure and internal energy
TPX: Temperature, pressure, and quality
Helper Function¶
Since conditions may be difficult to specify for some choices of state variables, for example,
fixing temperature and pressure of an inlet when the state variables are enthalpy and pressure,
helper methods are provided by the Parameter block class. See the htpx()
, stpx()
, or
uptx()
documentation in the parameter block class above.
Example¶
The Heater unit model example, provides a simple example for using water properties.
import pyomo.environ as pe # Pyomo environment
from idaes.core import FlowsheetBlock, MaterialBalanceType
from idaes.models.unit_models import Heater
from idaes.models.properties.general_helmholtz import (
HelmholtzParameterBlock,
PhaseType,
StateVars,
)
# Create an empty flowsheet and steam property parameter block.
model = pe.ConcreteModel()
model.fs = FlowsheetBlock(dynamic=False)
model.fs.properties = HelmholtzParameterBlock(
pure_component="h2o",
phase_presentation=PhaseType.LG,
state_vars=StateVars.PH
)
# Add a Heater model to the flowsheet.
model.fs.heater = Heater(
property_package=model.fs.properties,
material_balance_type=MaterialBalanceType.componentTotal
)
# Setup the heater model by fixing the inputs and heat duty
model.fs.heater.inlet[:].enth_mol.fix(4000)
model.fs.heater.inlet[:].flow_mol.fix(100)
model.fs.heater.inlet[:].pressure.fix(101325)
model.fs.heater.heat_duty[:].fix(100*20000)
# Initialize the model.
model.fs.heater.initialize()
Since all properties except the state variables are Pyomo Expressions in the water properties module, after solving the problem any property can be calculated in any state block. Continuing from the heater example, to get the viscosity of both phases, the lines below could be added.
mu_l = pe.value(model.fs.heater.control_volume.properties_out[0].visc_d_phase["Liq"])
mu_v = pe.value(model.fs.heater.control_volume.properties_out[0].visc_d_phase["Vap"])
For more information about how StateBlocks and PropertyParameterBlocks work see the StateBlock documentation.
Units¶
SI units are used for property variables and expressions (J, Pa, kg, mol, m, s, W).
Phase Presentation¶
The property package wrapper can present fluid phase information to the
IDAES framework in different ways. The PhaseType.MIX
option causes
the modeling framework to view liquid and vapor as a single mixed liquid
and vapor phase. This generally reduces model complexity. Phase equilibrium
is still calculated and vapor_frac
and individual phase properties are
available, just as they would be with the twophase presentation. The
mixedphase presentation can be used with most standard unit models that do
not provide phase separation. If phase separation is required, either use
the twophase presentation or create a custom model.
Warning
The “has_phase_equilibrium” argument is ignored when constructing Helmholtz property packages using mixed phase presentation. However, setting this to True may cause errors in unit models as it is not possible to construct phase equilibrium transfer terms with only one phase present.
The PhaseType.LG
option appears to the IDAES framework to be two phases “Vap”
and “Liq”. This option requires one of two unit model options to be set. You
can use the total material balance option for unit models, to specify that only
one material balance equation should be written not one per phase. The other
possible option is to specify has_phase_equlibrium=True
. This will
write a material balance per phase, but will add a phase generation term to the
model. For Helmholtz EoS packages, it is generally recommended that specifying
total material balances is best because it results in a problem with fewer
variables, and phase equilibrium is always calculated by the property package.
There are two single phase options PhaseType.L
and PhaseType.G
; these
present a single phase “Liq” or “Vap” to the framework. The vapor fraction will
also always return 0 or 1 as appropriate. These options can be used when the phase
of a fluid is known for certain to only be liquid or only be vapor. For the
temperaturepressurevapor fraction formulation, this eliminates the
complementarity constraint, but for the enthalpypressure formulation, where the
vapor fraction is always calculated, the single phase options probably do not
provide any real benefit over mixed phase.
State Variables¶
There is a choice of state variables, pressureenthalpy, pressureentropy, pressureinternal energy and temperaturepressurevapor fraction. In general the enthalpypressure form is preferable. Both the pressure and enthalpy variables are smooth and sufficient to define the fluid state. For systems where twophases may be present, it is expected that pressureenthalpy is the best choice of state variables.
The temperaturepressurevapor fraction form is more convenient, since temperature is directly measurable and more familiar than enthalpy. Complementarity constraints are used to deal with the vapor fraction variable, but the additional complimentary constraints may make the problem less robust. Temperaturepressure is often a good choice of state variables where there is only a single known phase.
PressureEnthalpy, Entropy, or Internal Energy Formulation¶
The advantage of this choice of state variables is that it is more robust when phase changes occur, and is especially useful when it is not known if a phase change will occur. The disadvantage of this choice of state variables is that for equations like heat transfer that are highly dependent on temperature, a model could be harder to solve near regions with phase change. Temperature is a nonsmooth function with nonsmoothness when transitioning from the singlephase to the twophase region. Temperature also has a zero derivative with respect to enthalpy in the twophase region, so near the twophase region solving a constraint that specifies a specific temperature may be difficult.
When a mass basis is used the variables in these forms are flow_mass (kg/s),
pressure (Pa), and one of enth_mass
(J/kg), entr_mass
(J/kg/K), or
energy_ineternal_mass
(J/kg).
When a mass basis is used the variables in these forms are flow_mol (mol/s),
pressure (Pa), and one of enth_mol
(J/mol), entr_mol
(J/mol/K), or
energy_ineternal_mole
(J/mol).
Since temperature and vapor fraction are not state variables in this formulation, they are provided by expressions, and cannot be fixed. For example, to set a temperature to a specific value, a constraint could be added which says the temperature expression equals a fixed value.
TemperaturePressureVapor Fraction¶
This formulation uses temperature (K), pressure (Pa), and vapor fraction as state variables. When a single phase option is given, the vapor fraction does not need to be specified and is instead an expression with the appropriate value.
A complementarity constraint is required for the TPx formulation when twophases may be present. First, two expressions are defined below where \(P^\) is pressure under saturation pressure and \(P^+\) is pressure over saturation pressure. The \(\max()\) function is provided as an IDAES utility which provides a smooth max expression.
With the “pressure over” and “pressure under” expressions a complementarity constraint can be written. If the pressure under saturation is more than zero, only vapor exists. If the pressure over saturation is greater than zero only a liquid exists. If both are about zero two phases can exist. The saturation pressure function maxes out at the critical pressure and any temperature above the critical temperature will yield a saturation pressure that is the critical pressure, so supercritical fluids will be classified as liquids as is the convention for this property package.
Assuming the vapor fraction (\(x\)) is positive and noting that only one of \(P^+\) and \(P^\) can be nonzero (approximately), the complementarity equation above requires \(x\) to be 0 when \(P^+\) is not zero (liquid) or \(x\) to be 1 when \(P^\) is not zero (vapor). When both \(P^+\) and \(P^\) are about 0, the complementarity constraint says nothing about x, but it basically reduces another constraint, that \(P=P_{\text{sat}}\). When two phases are present \(x\) is found by the unit model energy balance, where the temperature will be \(T_{\text{sat}}\) (because \(P=P_{\text{sat}}\)).
An alternative approach is sometimes useful to simplify the problem when it is certain that there are two phases. The complementarity constraint can be deactivated and a \(P=P_{\text{sat}}\) or \(T=T_{\text{sat}}\) constraint can be added.
Using the TPx formulation requires better initial guesses than the PH form. It is not strictly necessary but it is best to try to get an initial guess that is in the correct phase region for the expected result.
NonExistent Phases¶
This section describes the behavior of specific phase property calculations where that phase does not exist.
Liquid phase properties calculated where a liquid does not exist will solve for the density root smoothly extending from the saturation curve into the vapor region. Once the temperature corresponding to the density root becomes higher than the critical temperature the vapor density root is used.
Vapor phase properties calculated where a vapor does not exist will solve for the density root smoothly extending from the saturation curve into the liquid region. Once the pressure corresponding to the density root becomes higher than the critical pressure the liquid density root is used.
This method for nonexisting phase properties should provide a smooth buffer when solving equations. It also returns properties for superheated liquids or subcooled vapor. It also ensures that both the liquid and vapor phase properties are the same for the supercritical region.
Variables¶
Variables are listed in the table below. What is a variable and what is an expression depends on the selected state variables and amount basis. Pressure is always a variable.
Variable 
Description 


Pressure (Pa) 

Mass flow (kg/s), if 

Mole flow (mol/s) if 

Temperature (K), is a variable in TPx formulation 

Vapor fraction (dimensionless), is a variable in TPx two phase formulation 

Specific enthalpy (J/kg), is a variable in PH formulation with mass basis 

Molar enthalpy (J/mol), is a variable in PH formulation with mole basis 

Specific enthalpy (J/kg/K), is a variable in PS formulation with mole basis 

Molar enthalpy (J/mol/K), is a variable in PS formulation with mole basis 

Specific internal energy (J/kg), is a variable in PU formulation with mass basis 

Molar internal energy (J/mol), is a variable in PU formulation with mole basis 
Expressions¶
Unless otherwise noted, the property expressions are common to both the
TPx and PH formulations. For phase specific properties, valid phase indexes
are "Liq"
and "Vap"
. Even when using the mixed phase version of the
property package, both liquid and vapor properties are available.
Expression 
Description 


Mass flow (kg/s), variable if 

Mole flow (mol/s) variable if 

Temperature (K), is a variable in TPx formulation 

Vapor fraction (dimensionless), is a variable in TPx two phase formulation 

Specific enthalpy (J/kg), is a variable in PH formulation with mass basis 

Molar enthalpy (J/mol), is a variable in PH formulation with mole basis 

Specific enthalpy (J/kg/K), is a variable in PS formulation with mole basis 

Molar enthalpy (J/mol/K), is a variable in PS formulation with mole basis 

Specific internal energy (J/kg), is a variable in PU formulation with mass basis 

Molar internal energy (J/mol), is a variable in PU formulation with mole basis 

Molecular weight (kg/mol) 

Mole fraction of component (dimensionless), since pure component, returns 1 

Mole fraction of component in phase (dimensionless), since pure component, returns 1 

Critical temperature (K) 

Reducing temperature \(\tau=\frac{T^*}{T}\) (K) 

Critical pressure (Pa) 

Critical mass density (kg/m^{3}) 

Reducing mass density \(\delta=\frac{\rho}{\rho^*}\) (kg/m^{3}) 

Critical mole density (mol/m^{3}) 

Reducing mole density \(\delta=\frac{\rho}{\rho^*}\) (kg/m^{3}) 

Saturation temperature (K), if supercritical, Tsat=Tcrit 

Saturation pressure (Pa), if supercritical, Psat=Pcrit 

Saturation specific enthalpy of phase (J/kg) 

Saturation molar enthalpy of phase (J/mol) 

Saturation specific entropy of phase (J/kg/K) 

Saturation molar entropy of phase (J/mol/K) 

Saturation specific internal energy of phase (J/kg) 

Saturation molar internal energy of phase (J/mol) 

Saturation specific volume of phase (m^{3}/kg) 

Saturation molar volume of phase (m^{3}/mol) 

Specific enthalpy of vaporization at P (J/kg) 

Molar enthalpy of vaporization at P (J/mol) 

Specific entropy of vaporization at P (J/kg/K) 

Molar entropy of vaporization at P (J/mol/K) 

Specific internal energy of vaporization at P (J/kg) 

Molar internal energy of vaporization at P (J/mol) 

Phase fraction (dimensionless) mole and mass fraction same for pure 

Specific enthalpy of phase (J/kg) 

Molar enthalpy of phase (J/mol) 

Specific entropy of phase (J/kg/K) 

Molar entropy of phase (J/mol/K) 

Specific internal energy of phase (J/kg) 

Molar internal energy of phase (J/mol) 

Specific isobaric heat capacity for phase (J/kg) 

Molar isobaric heat capacity for phase (J/mol) 

Specific isochoric heat capacity for phase (J/kg) 

Molar isochoric heat capacity for phase (J/mol) 

Speed of sound in phase (m/s) 

Specific volume of phase (m^{3}/kg) 

Molar volume of phase (m^{3}/mol) 

Mass density of phase (kg/m^{3}) 

Mole density of phase (mol/m^{3}) 

Same as total mass flow since pure (kg/s) 

Same as total mole flow since pure (mol/s) 

Specific isobaric heat capacity for mixed phase (J/kg) 

Molar isobaric heat capacity for mixed phase (J/mol) 

Specific isochoric heat capacity for mixed phase (J/kg) 

Molar isochoric heat capacity for mixed phase (J/mol) 

Mass density of mixed phase (kg/m^{3}) 

Mole density of mixed phase (mol/m^{3}) 

Total mixed phase volumetric flow (m^{3}/s) 

Mixed phase cp/cv (dimensionless) 

Dynamic viscosity (Pa*s), depending on substance, may not be available 

Kinematic viscosity (m^{2}/s), depending on substance, may not be available 

Thermal conductivity of phase (W/m/s), depending on substance, may not be available 

Surface tension (N/m), depending on substance, may not be available 

Pressure under saturation pressure (Pa) 

Pressure over saturation pressure (Pa) 
Initialization¶
The Helmholtz EoS state blocks provide initialization functions for general compatibility with the IDAES framework, but as long as the state variables are specified to some reasonable value, initialization is not required. All required solves are handled by external functions.
However, in order to support a general hierarchical initialization for unit models
which use Helmholtz equation of state properties, a custom Initializer
for these
property packages is available.
 class idaes.models.properties.general_helmholtz.helmholtz_state.HelmholtzEoSInitializer(**kwargs)[source]¶
Initializer object for Helmholtz EoS packages using external functions.
Due to the use of external functions, Helmholtz EoS StateBlocks have no constraints, thus there is nothing to initialize. This Initializer replaces the general initialize method with a noop.
 constraint_tolerance
Tolerance for checking constraint convergence
 output_level
Set output level for logging messages