Equilibrium Reactor¶
The IDAES Equilibrium reactor model represents a unit operation where a material stream undergoes some chemical reaction(s) to reach an equilibrium state. This model is for systems with reaction with equilibrium coefficients - for Gibbs energy minimization see Gibbs reactor documentation.
Degrees of Freedom¶
Equilibrium reactors generally have 1 degree of freedom.
Typical fixed variables are:
- reactor heat duty (has_heat_transfer = True only).
Model Structure¶
The core Equilibrium reactor unit model consists of a single Holdup0D (named holdup) with one Inlet Port (named inlet) and one Outlet Port (named outlet).
Construction Arguments¶
Equilibrium reactor units have the following construction arguments:
- property_package - property package to use when constructing Property Blocks (default = ‘use_parent_value’). This is provided as a Property Parameter Block by the Flowsheet when creating the model. If a value is not provided, the Holdup Block will try to use the default property package if one is defined.
- property_package_args - set of arguments to be passed to the Property Blocks when they are created.
- inlet_list - list of names to be passed to the build_inlets method (default = None).
- num_inlets - number of inlets argument to be passed to the build_inlets method (default = None).
- outlet_list - list of names to be passed to the build_outlets method (default = None).
- num_outlets - number of outlets argument to be passed to the build_outlets method (default = None).
Additionally, Equilibrium reactor units have the following construction arguments which are passed to the Holdup Block for determining which terms to construct in the balance equations. Note that Equilibrium reactors do not support dynamic = True as holdups (and thus accumulations) are undefined by definition.
Argument | Default Value |
---|---|
material_balance_type | ‘component_phase’ |
energy_balance_type | ‘total’ |
momentum_balance_type | ‘total’ |
dynamic | False (cannot be True) |
include_holdup | False |
has_rate_reactions | True |
has_equilibrium_reactions | True |
has_phase_equilibrium | False |
has_mass_transfer | False |
has_heat_transfer | True |
has_work_transfer | False |
has_pressure_change | False |
Additional Constraints¶
Equilibrium reactors units write the following additional Constraints beyond those written by the Holdup Block if rate controlled reactions are present.
where \(r_{t,r}\) is the rate of reaction for reaction \(r\) at time \(t\). This enforces equilibrium in any reversible rate controlled reactions which are present. Any non-reversible reaction that may be present will proceed to completion.
Variables¶
Equilibrium reactor units add the following additional Variables beyond those created by the Holdup Block.
Variable | Name | Notes |
---|---|---|
\(V_t\) | volume | Only if include_holdup = True, reference to holdup.volume |
\(Q_t\) | heat | Only if has_heat_transfer = True, reference to holdup.heat |