Callapy¶
The physical adsorption of both solute and solvent from liquid solutions onto solids is difficult to determine in widely adopted static (i.e., batch) experiments, because only the bulk liquid reservoir can be probed directly. The consequences of this limitation are best explained by the mass balances. The total mass balance for uptake from a binary mixture can be expressed as
Todo
add figure here
where \(V_\text{in}\) is the initial solution volume, \(\rho_\text{in}\) is the initial solution density, \(V_\text{eq}\) is the solution volume measured at equilibrium, \(\rho_\text{eq}\) is the solution density at equilibrium, \(m\) is the mass of the solid, \(Q_\text{A}\) is the loading of the solute A, and \(Q_\text{S}\) is the loading of the solvent S. The mass balance on the solute is
where \(C_\text{A,in}\) is the initial concentration of the solute A, and \(C_\text{A,eq}\) is the concentration of the solute A measured at equilibrium.
From the batch adsorption procedure, \(V_\text{in}\), \(C_\text{A,in}\), \(C_\text{A,eq}\), and \(m\) are measured. The initial (\(\rho_\text{in}\)) and equilibrium (\(\rho_\text{eq}\)) densities are usually either determined from separate experiments, taken from available literature reports, or estimated from pure component densities. As a result, Equations (1) and (2) have three unknowns (\(V_\text{eq}\), \(Q_\text{A}\), and \(Q_\text{S}\)), giving them no unique solution.
The excess adsorption (XS) is one common approach. In this case, the volume of solution at equilibrium is assumed to be the same as the initial volume of solution. The third relationship required to close the mass balances is
The solute loading calculated by the XS approach is expressed as
The solvent loading calculated by the XS approach is expressed as
Another option is to assume that no solvent (NS) adsorbs into the solid (i.e., only solute adsorbs). The third relationship required to close the mass balances is
The solute loading calculated by the NS approach can be obtained by
By definition, the solvent loading for the NS approach is zero.
The volume change by solute adsorption method (VC) estimates the volume change of solution based off of how much solute adsorbs. The third relqtionship required to close the mass balances is
The solute loading calculated by the VC method is calculated as
where \(\rho_\text{A}\) is an estimated adsorbed density of the solute A. The solvent loading calculated by the VC approach is expressed as
Another option is to assume that the pores in the solid are filled upon adsorption. The additional relationship is
where \(\rho_\text{S}\) is an estimated density of the solvent, and \(V_\text{p}\) is an estimated pore volume of the adsorbent.
For the pore filling model, the solute loading can be calculated as
while the solvent loading can be calculated as
-
class
callapy.model.
Model
(**kwargs)¶ - Parameters
V_in (input_data) – initial volume, \(V_\text{in}\)
d_in (input_data) – initial density, \(\rho_\text{in}\)
d_eq (input_data) – equilibrium density, \(\rho_\text{eq}\)
m (input_data) – mass of zeolite, \(m\)
CA_in (input_data) – initial concentration of solute A, \(C_\text{A,in}\)
CA_eq (input_data) – equilibrium concentration of solute A, \(C_\text{A,eq}\)
d_A (input_data, optional) – estimated density of adsorbate used in calculating PF adsorption, defaults to None
d_S (input_data, optional) – estimated density of solvent in pores in calculating PF adsoption, defaults to None
V_units – units for volume, defaults to “”
V_units – str, optional
C_units – units for concentration, defaults to “”
C_units – str, optional
m_units – units for mass of solid, defaults to “”
m_units – str, optional
d_units – units for density, defaults to “”
d_units – str, optional
V_p – estimated pore volume within solid, defaults to None
V_p – float, optional
e_V_in (error_data, optional) – error of initial volume, defaults to last decimal point input from
Model.V_in
e_d_in (error_data, optional) – error of initial density, defaults to last decimal point input from d_in
e_d_eq (error_data, optional) – error of equilibrium density, defaults to last decimal point input from d_eq
e_m (error_data, optional) – error of adsorbent mass, defaults to last decimal point input from e_m
e_CA_in (error_data, optional) – error of adsorbent mass, defaults to last decimal point input from CA_in
e_CA_eq (error_data, optional) – error of adsorbent mass, defaults to last decimal point input from CA_eq
-
PF
()¶ Pore-filling adsorption model (PF)
- Parameters
d_A – estimated adsorbed density of solute A, \(\rho_\text{A}\)
d_S – estimated adsorbed density of solute S, \(\rho_\text{S}\)
V_p – estimated pore volume of solid, \(V_\text{p}\)
kwargs – key-word arguments
- Returns
(\(Q_\text{A}\), \(Q_\text{S}\), \(V_\text{eq}\))
-
eval_NS
() → Tuple¶ No-solvent adsorption model (NS)
- Parameters
kwargs – key-word arguments
- Returns
(\(Q_\text{A}\), \(Q_\text{S}\), \(V_\text{eq}\))
-
eval_VC
()¶ Volume change by solute adsorption model (VC)
- Parameters
d_A – estimated adsorbed density of solute A, \(\rho_\text{A}\)
kwargs – key-word arguments
- Returns
(\(Q_\text{A}\), \(Q_\text{S}\), \(V_\text{eq}\))
-
eval_XS
() → Tuple¶ Excess adsorption model (XS)
- Parameters
kwargs – key-word arguments
- Returns
(\(Q_\text{A}\), \(Q_\text{S}\), \(V_\text{eq}\))