The IDAES Fixed Bed 0D Reactor (FixedBed0D) model represents a unit operation where a gas stream passes through a solid phase bed. The FixedBed0D mathematical model is a 0-D time variant model with two phases (gas and solid). The model captures the gas-solid interaction between both phases through reaction, mass and heat transfer.
Assumptions:
- There is assumed to be no axial or radial variation in solid composition.
- Excess gas flowrate and ideal gas behavior are assumed.
- The reactor is assumed to be isothermal, and the reaction is one-way (no equilibrium).
Requirements:
- Property packages contain temperature and pressure variables.
FixedBed0D Reactors generally have at least 2 (or more) degrees of freedom, including the reactor bed diameter and height.
The FixedBed0D model assumes a single control volume, and writes a set of material and energy balances for the solid phase. The gas phase conditions are considered to be fixed at the inlet values.
The IDAES FixedBed0D model has construction arguments specific to the whole unit and to the individual regions.
Arguments that are applicable to the FixedBed0D unit as a whole are:
- dynamic - indicates whether the model will be dynamic or not, must be True (default = True).
- has_holdup - indicates whether holdup terms are constructed or not, must be True (default = True).
- energy_balance_type - indicates what type of energy balance should be constructed (default = enthalpyTotal):
- EnergyBalanceType.none - exclude energy balances
- EnergyBalanceType.enthalpyTotal - single enthalpy balance for material
- EnergyBalanceType.enthalpyPhase - enthalpy balances for each phase
- EnergyBalanceType.energyTotal - single energy balance for material
- EnergyBalanceType.energyPhase - energy balances for each phase
Arguments that are applicable to a specific region:
- gas_property_package - property package to use when calculating properties for the gas phase (default = 'None'). This is provided as a Physical Parameter Block by the Flowsheet when creating the model.
- gas_property_package_args - set of arguments to be passed to the gas phase Property Blocks when they are created (default = 'None').
- solid_property_package - property package to use when calculating properties for the solid phase (default = 'None'). This is provided as a Physical Parameter Block by the Flowsheet when creating the model.
- solid_property_package_args - set of arguments to be passed to the solid phase Property Blocks when they are created (default = 'None').
- reaction_package - reaction package to use when calculating properties for solid phase reaction (default = None). This is provided as a Reaction Parameter Block by the Flowsheet when creating the model.
- reaction_package_args - set of arguments to be passed to the Reaction Blocks when they are created (default = None).
In the following, the subscripts g and s refer to the gas and solid phases, respectively. FixedBed0D units write the following Constraints:
Volume of the bed:
Vbed = πLbed(0.5Dbed)2
Volume of the solid:
Vs, t = Vbed(1 − ϵs)
Solid material holdup:
jmass, s, t, j = Vsρmass, s, txmass, s, t, j
Solid material accumulation:
j̇mass, s, t, j = VsMWs, jΣrrs, t, rνs, j, r
Total mass of solids:
Ms, t = VsΣjρmass, s, t, j
Sum of component mass fractions:
if self.config.energy_balance_type != EnergyBalanceType.none:
Solid energy holdup:
qenergy, s, t = Vsρmass, s, tHmass, s, tSolid energy accumulation:
q̇energy, s, t = − VsΣrrs, t, rHrxn, s, t, rIsothermal solid phase:
Ts, t = Ts, t = 0
Variable | Description | Reference to |
---|---|---|
Dbed | Reactor bed diameter | bed_diameter |
Hmass, s, t | Solid phase mass enthalpy | solids.enth_mass |
Hrxn, s, t, r | Solid phase reaction enthalpy | solids.reactions.dh_rxn |
jmass, s, t, j | Material holdup, solid phase | solids.solids_material_holdup |
j̇mass, s, t, j | Material accumulation, solid phase | solids.solids_material_accumulation |
Lbed | Reactor bed height | bed_height |
Ms, t | Total mass of solids | solids.mass_solids |
qenergy, s, t | Energy holdup, solid phase | solids.energy_material_holdup |
q̇energy, s, t | Energy accumulation, solid phase | solids.solids_energy_accumulation |
rs, t, r | Solid phase reaction rate of reaction r | solids.reactions.reaction_rate |
Ts, t | Solid phase temperature | solids.temperature |
xmass, s, t, j | Mass fraction of component j, solid phase | solids.mass_frac_comp |
Vbed | Total volume of the bed | volume_bed |
Vs, t | Total volume of solids | solids.volume_solid |
Greek letters | ||
ρmass, s, t | Density of solid particles | solids.dens_mass_particle |
Parameter | Description | Reference to |
---|---|---|
ϵs | Void fraction of the solid | solids._params.voidage |
MWs, j | Molecular weight of solid component j | solids._params.mw_comp |
νs, j, r | Stoichiometric coefficients | solids.reaction_package.rate_reaction_stoichiometry |
The initialization method for this model will save the current state of the model before commencing initialization and reloads it afterwards. The state of the model will be the same after initialization, only the initial guesses for unfixed variables will be changed. For the FixedBed0D model, the initialization method is a general purpose routine for simple unit models where a single control volume is initalized followed by attempting to solve the entire unit.
The model allows for the passing of a dictionary of values of the state variables of the gas and solid phases that can be used as initial guesses for the state variables throughout the time domain of the model. This is optional but recommended. A typical guess could be values of the gas and solid inlet port variables at time t = 0.
The model initialization proceeds through a sequential hierarchical method where the model equations are deactivated at the start of the initialization routine, and the complexity of the model is built up through activation and solution of various sub-model blocks and equations at each initialization step. At each step the model variables are updated to better guesses obtained from the model solution at that step.
The initialization routine proceeds as follows:
- Step 1: Initialize the thermo-physical model blocks.
- Step 2: Initialize the reaction properties.
idaes.gas_solid_contactors.unit_models.fixed_bed_0D
FixedBed0D
FixedBed0DData