Plug Flow Reactor¶
The IDAES Plug Flow Reactor (PFR) model represents a unit operation where a material stream passes through a linear reactor vessel whilst undergoing some chemical reaction(s). This model requires modeling the system in one spatial dimension.
Degrees of Freedom¶
PFRs generally have 2 degrees of freedom.
Typical fixed variables are:
- 2 of reactor length, area and volume.
Model Structure¶
The core PFR unit model consists of a single Holdup1D (named holdup) with one Inlet Port (named inlet) and one Outlet Port (named outlet).
Construction Arguments¶
PFR 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).
discretization_method - indicates which method to use when discretizing length domain. Options are:
- ‘OCLR’ - orthogonal collocation on finite elements (Radau roots)
- ‘OCLL’ - orthogonal collocation on finite elements (Legendre roots)
- ‘BFD’ - backwards finite difference (1st order)
- ‘FFD’ - forwards finite difference (1st order)
finite_elements - sets the number of finite elements to use when discretizing the spatial domain (default = 20).
collocation_points - sets the number of collocation points to use when discretizing the spatial domain (default = 3, collocation methods only).
has_mass_diffusion - indicates whether mass diffusion terms should be included in the material balance equations (default = False)
has_energy_diffusion - indicates whether energy conduction terms should be included in the energy balance equations (default = False)
Additionally, PFR units have the following construction arguments which are passed to the Holdup Block for determining which terms to construct in the balance equations.
Argument | Default Value |
---|---|
material_balance_type | ‘component_phase’ |
energy_balance_type | ‘total’ |
momentum_balance_type | ‘total’ |
dynamic | False |
include_holdup | False |
has_rate_reactions | True |
has_equilibrium_reactions | True |
has_phase_equilibrium | False |
has_mass_transfer | False |
has_heat_transfer | False |
has_work_transfer | False |
has_pressure_change | False |
Additional Constraints¶
PFR units write the following additional Constraints beyond those written by the Holdup Block at all points in the spatial domain.
where \(X_{t,x,r}\) is the extent of reaction of reaction \(r\) at point \(x\) and time \(t\), \(A\) is the cross-sectional area of the reactor and \(r_{t,r}\) is the volumetric rate of reaction of reaction \(r\) at point \(x\) and time \(t\) (from the outlet property package).
Variables¶
PFR units add the following additional Variables beyond those created by the Holdup Block.
Variable | Name | Notes |
---|---|---|
\(L\) | length | Reference to holdup.length |
\(A\) | area | Reference to holdup.area |
\(V\) | volume | Reference to holdup.volume |
\(Q_{t,x}\) | heat | Only if has_heat_transfer = True, reference to holdup.heat |
\(\Delta P_{t,x}\) | deltaP | Only if has_pressure_change = True, reference to holdup.deltaP |