Kinetic Models
Kinetic Rate Models¶
The isotherm sets the equilibrium loading \(q_i^*\); the rate model governs how fast the actual adsorbed loading \(q_i\) moves towards that equilibrium. Together they form the adsorption source term that appears in the mass and energy balances.
Each component of each adsorbent has a rate model. The rate model exposes a Mass Transfer Coefficient Type which determines how the coefficient \(k\) is obtained — either entered directly or computed from a diffusion correlation.
Rate Models¶
Linear Driving Force (1st Order)¶
The first-order linear driving force (LDF) model assumes the uptake rate is proportional to the difference between the equilibrium and current loading. This is the standard choice for the vast majority of PSA/TSA simulations.
Linear Driving Force (2nd Order)¶
A quadratic driving force, occasionally used for strongly non-linear uptake.
| Symbol | Description | Unit |
|---|---|---|
| \(k_i\) | Mass transfer coefficient | s⁻¹ |
| \(q_i^*\) | Equilibrium adsorbed loading (from the isotherm) | mol kg⁻¹ |
| \(q_i\) | Current adsorbed loading | mol kg⁻¹ |
Mass Transfer Coefficient¶
The coefficient \(k_i\) in the LDF models can be supplied in several ways. The rate model's mass transfer coefficient type selects one.
Constant¶
The coefficient is entered directly (as a number or an expression).
Input: Mass transfer coefficient [s⁻¹].
Macropore Diffusion¶
The coefficient is derived from macropore molecular diffusion only:
Inputs: Tortuosity \(\tau\), Macropore Void Fraction \(\epsilon_p\), optionally a constant Molecular diffusion coefficient \(D_m\) (see below). The particle diameter \(d_p\) comes from the layer.
Molecular diffusivity. By default (molecular diffusion coefficient 0) \(D_m\) is the binary-diffusion value the engine computes from the local temperature and pressure (Chapman–Enskog), which scales as \(1/P\): at an evacuation pressure of 3–10 kPa it is 10–33 times its 1 bar value, and so is the macropore coefficient. A value above 0 [m² s⁻¹] is used as a constant \(D_m\) instead, in every cell and at every pressure. Haghpanah et al. (2013) and Estupiñan Perez et al. (2019, Table 1) use a constant \(D_m = 1.6 \times 10^{-5}\) m² s⁻¹. The option applies to the three macropore kinds (macropore, with the capacity factor, and macropore + Knudsen); the registry leaf is adsorbent[...].kinetics[<component>].molecular_diffusion_coefficient and the Python keyword molecular_diffusion_coefficient= of set_rate_model.
Macropore Diffusion with the capacity factor¶
The macropore coefficient scaled by the ratio of the gas-phase to the adsorbed-phase capacity, the form used by the Haghpanah et al. (2013) VSA model and the papers built on it (e.g. Estupiñan Perez et al. 2019, SI Eq. S4):
with \(c_i\) the gas-phase concentration [mol m⁻³], \(q_i^*\) the equilibrium loading [mol kg⁻¹] and \(\rho_p\) the particle density, so the ratio is dimensionless. For a strongly adsorbed component (CO₂ on 13X at 0.15 bar: \(c/\rho_p q^* \approx 2 \times 10^{-3}\)) the coefficient is orders of magnitude below the plain macropore value. As \(c_i \to 0\) both \(c_i\) and \(q_i^*\) vanish and their ratio tends to the Henry limit \(1/(\rho_p K_H)\); evaluating the state's own \(c_i / q_i^*\) there is a \(0/0\) that drifts with the solver's error. The engine therefore evaluates the ratio at \(\max(c_i, c_{\text{floor}})\), re-evaluating the isotherm at that concentration (every other component at its actual value), which is finite and smooth; the ratio is capped at 1.
Inputs: Tortuosity \(\tau\), Macropore Void Fraction \(\epsilon_p\), Concentration floor \(c_{\text{floor}}\) [mol m⁻³] (default 10⁻³, about 2.5 Pa of partial pressure at room temperature, inside the Henry regime of the usual isotherms), optionally a constant Molecular diffusion coefficient \(D_m\) (as for the plain macropore coefficient; the papers above use \(1.6 \times 10^{-5}\) m² s⁻¹).
Macropore + Knudsen Diffusion¶
As above, but the effective diffusivity combines Knudsen and molecular contributions in series:
with the Knudsen diffusivity evaluated from kinetic theory using the pore radius \(r_p\) and molar mass \(M\):
Inputs: Pore radius \(r_p\), Tortuosity \(\tau\), Macropore Void Fraction \(\epsilon_p\), optionally a constant Molecular diffusion coefficient \(D_m\) in the molecular term (0, the default, uses the value from \(T\) and \(P\)).
Haynes (1973)¶
Combines an external gas-film resistance and an internal macropore resistance in series (Haynes & Sarma, 1973):
where \(r_p = d_p/2\) and the film coefficient \(k_f\) uses the Sherwood number \(\mathrm{Sh}\). Inputs: Tortuosity \(\tau\), Macropore Void Fraction \(\epsilon_p\). \(D_m\) is always the value from \(T\) and \(P\): the Sherwood number comes from the Schmidt number of that same \(D_m\), so a constant \(D_m\) is not offered here.
Arrhenius¶
An activation-energy form for temperature-dependent kinetics:
Inputs: Pre-exponential factor \(k_0\) [s⁻¹], Activation energy \(E_a\) [J mol⁻¹].
Once loading and its rate are defined, see the transport correlations for the dispersion and heat-transfer closures, and the mass balance for how the adsorption source enters the conservation equations.