Granular Activated Carbon (GAC)
- This is an empirical, performance-based granular activated carbon (GAC) model that works under the following criteria and assumptions:
supports a single liquid phase only
supports adsorption of a single solute species only while other species are considered inert
supports steady-state only
assumes isothermal conditions
model performance is independent of a gravity-fed or pressurized GAC unit, therefore assumes isobaric conditions
Introduction
The implemented model for estimating GAC performance is adapted from a simplified model originally presented in Hand, 1984 and further elaborated in Crittenden, 2012. This formulation is denoted as the constant-pattern homogeneous surface diffusion model (CPHSDM). As a GAC system is operated as a batch process, a mass transfer zone (MTZ) is formed in the bed where a concentration profile, or breakthrough curve, develops as a function of the adsorption properties. This MTZ is bounded by saturated GAC upstream and fresh GAC downstream. The CPHSDM is valid under the assumption that the shape of the MTZ is constant as it travels through the bed and a constant pattern solution (CPS) may be determined. The CPS is calculated through a multistep procedure utilizing common dimensionless groups applied in polynomial fits to determine performance. Therefore, coefficients used in the polynomial must be derived from experimental data of the intended system to produce valid results. Coefficients for common compounds treated by GAC may be found in both Hand, 1984 and Crittenden, 2012. The model is estimated to have within 10% error and therefore may be applied to bed lengths shorter than the minimum length determined by the CPHSDM within the error threshold (in addition to being applicable to bed lengths greater than the minimum length determined by the CPHSDM).
The batch operation results of the CPS are converted to approximate steady-state results for intuitive use of the model for flowsheet purposes. A description of the transformation is provided in Figure 1.
Degrees of Freedom
In the default configuration of the GAC unit model there are 18 degrees of freedom in addition to the inlet state variables (i.e., temperature, pressure, component flowrates) that should be fixed for the model to be fully specified. In association with using the Freundlich adsorption isotherm and empirical model, the following 9 variables are almost always fixed and may be derived from experimental data:
Freundlich isotherm \(k\) parameter
Freundlich isotherm \(\frac{1}{n}\) parameter
Stanton number equation parameters \(a_0\) and \(a_1\)
throughput ratio equation parameters \(b_0\), \(b_1\), \(b_2\), \(b_3\) and \(b_4\)
Additionally, the following 9 variables are traditionally fixed:
the target dimensionless concentration or the dimensionless concentration at the time of replacement
empty bed contact time
bed voidage
superficial velocity or bed length
GAC particle porosity
GAC particle apparent density or GAC particle solid density
GAC particle diameter
liquid phase film transfer coefficient
surface diffusion coefficient
When setting the configuration options to calculate the liquid phase film transfer coefficient and surface diffusion coefficient, these respective variables are no longer specified and 4 newly introduced variables must be fixed. This is a net result of 20 degrees of freedom. Newly utilized variables that must be fixed include:
molal volume of the solute
GAC particle sphericity
tortuosity of the path that the adsorbate must take as compared to the radius
surface-to-pore diffusion flux ratio
Model Structure
The GAC model consists of 1 ControlVolume0DBlock (process_flow) for the process flow of the water treatment train. The process flow includes 2 StateBlocks (inlet and outlet) which are used for mass and momentum balances. It also includes 1 StateBlock (adsorbed) for the solute that is adsorbed into the GAC particles. The material removed in the adsorbed state block is simulated as liquid phase solute but should be interpreted as solute that has adsorbed into the solid phase GAC particles. The steady state mass removal and replacement rate of the GAC itself is provided as a unit model variable and excluded from flowsheet material balances. Therefore, GAC is never included as a component in property package specifications.
Sets
Description |
Symbol |
Indices |
---|---|---|
Time |
\(t\) |
[0] |
Phases |
\(p\) |
[‘Liq’] |
Components |
\(j\) |
[‘H2O’, ‘Solute’, ‘Background solutes/ions]* |
*Adsorbed “Solute” provided in the target_species
argument of the unit model.
*”Background solutes/ions” are provided in the imported property model.
Variables
Supporting only a single solute, variables concerning the adsorption of a species are respective to the target species although not explicitly indexed. All other species are inert from a mass balance perspective, but effects of background species to the adsorption of the target species may be modeled by adjusting the Freundlich isotherm parameters and other variables in the model.
Description |
Symbol |
Variable Name |
Index |
Units |
---|---|---|---|---|
Freundlich isotherm k parameter |
\(k\) |
freund_k |
None |
\(\left(\text{m}^3\text{/kg}\right)^\left( \frac{1}{n} \right)\) |
Freundlich isotherm 1/n parameter |
\(\frac{1}{n}\) |
freund_ninv |
None |
\(\text{dimensionless}\) |
Equilibrium concentration of adsorbed phase with liquid phase |
\(q_e\) |
equil_conc |
None |
\(\left( \text{kg}_\text{adsorbate}\text{/kg}_\text{adsorbent} \right)\) |
Mass of contaminant adsorbed at the time of replacement |
\(M_{solute}\) |
mass_adsorbed |
None |
\(\text{kg}\) |
Mass of contaminant adsorbed if fully saturated |
\(M_{solute\text{,}e}\) |
mass_adsorbed_saturated |
None |
\(\text{kg}\) |
Adsorber bed void fraction |
\(\epsilon\) |
bed_voidage |
None |
\(\text{dimensionless}\) |
Adsorber bed volume |
\(V\) |
bed_volume |
None |
\(\text{m}^3\) |
Adsorber bed area |
\(A\) |
bed_area |
None |
\(\text{m}^2\) |
Adsorber bed length |
\(L\) |
bed_length |
None |
\(\text{m}\) |
Mass of fresh GAC in the bed |
\(M_{GAC}\) |
bed_mass_gac |
None |
\(\text{kg}\) |
Superficial velocity |
\(v_s\) |
velocity_sup |
None |
\(\text{m/s}\) |
Interstitial velocity |
\(v_i\) |
velocity_int |
None |
\(\text{m/s}\) |
GAC particle porosity |
\(\epsilon_p\) |
particle_porosity |
None |
\(\text{dimensionless}\) |
GAC particle apparent density |
\(\rho_a\) |
particle_dens_app |
None |
\(\text{kg/}\text{m}^3\) |
GAC particle bulk density |
\(\rho_b\) |
particle_dens_bulk |
None |
\(\text{kg/}\text{m}^3\) |
GAC particle solid density |
\(\rho_s\) |
particle_dens_sol |
None |
\(\text{kg/}\text{m}^3\) |
GAC particle diameter |
\(d_p\) |
particle_dia |
None |
\(\text{m}\) |
Average dimensionless concentration of the effluent in the operating duration |
\(\frac{\bar{C}}{C_{0}}\bigg{|}_{z=L}\) |
conc_ratio_avg |
None |
\(\text{dimensionless}\) |
Dimensionless concentration of the effluent at the time of replacement |
\(\frac{C}{C_{0}}\bigg{|}_{z=L,\,t=t_{op}}\) |
conc_ratio_replace |
None |
\(\text{dimensionless}\) |
Approximate saturation of the GAC in the bed at the time of replacement |
\(\frac{\bar{q}}{q_{e}}\bigg{|}_{t=t_{op}}\) |
gac_saturation_replace |
None |
\(\text{dimensionless}\) |
Empty bed contact time |
\(EBCT\) |
ebct |
None |
\(\text{s}\) |
Mass throughput ratio |
\(T\) |
mass_throughput |
None |
\(\text{dimensionless}\) |
Residence time |
\(\tau\) |
res_time |
None |
\(\text{s}\) |
Elapsed operation time |
\(t_{op}\) |
elap_time |
None |
\(\text{s}\) |
Steady state GAC replacement rate |
\(\dot{m}_{GAC}\) |
gac_mass_replace_rate |
None |
\(\text{m/s}\) |
Liquid phase film transfer coefficient |
\(k_f\) |
kf |
None |
\(\text{m/s}\) |
Surface diffusion coefficient |
\(D_s\) |
ds |
None |
\(\text{m}^2\text{/s}\) |
Solute distribution parameter |
\(D_g\) |
dg |
None |
\(\text{dimensionless}\) |
Biot number |
\(Bi\) |
N_Bi |
None |
\(\text{dimensionless}\) |
Minimum Stanton number for CPS |
\(St_{min}\) |
min_N_St |
None |
\(\text{dimensionless}\) |
Minimum empty bed contact time for CPS |
\(EBCT_{min}\) |
min_ebct |
None |
\(\text{s}\) |
Minimum residence time for CPS |
\(\tau_{min}\) |
min_res_time |
None |
\(\text{s}\) |
Minimum elapsed operation time for CPS |
\(t_{min}\) |
min_elap_time |
None |
\(\text{s}\) |
Mass throughput ratio for the upstream edge of the MTZ |
\(T\left( \frac{C}{C_{0}}\bigg{|}_{Upstream\,MTZ\,edge} \right)\) |
mass_throughput_mtz_upstream |
None |
\(\text{dimensionless}\) |
Empty bed contact time of the partial MTZ at the time of replacement |
\(EBCT_{MTZ}\) |
ebct_mtz_replace |
None |
\(\text{s}\) |
Length of the partial MTZ at the time of replacement |
\(L_{MTZ}\) |
length_mtz_replace |
None |
\(\text{m}\) |
Stanton equation parameter 0 |
\(a_0\) |
a0 |
None |
\(\text{dimensionless}\) |
Stanton equation parameter 1 |
\(a_1\) |
a1 |
None |
\(\text{dimensionless}\) |
Throughput equation parameter 0 |
\(b_0\) |
b0 |
None |
\(\text{dimensionless}\) |
Throughput equation parameter 1 |
\(b_1\) |
b1 |
None |
\(\text{dimensionless}\) |
Throughput equation parameter 2 |
\(b_2\) |
b2 |
None |
\(\text{dimensionless}\) |
Throughput equation parameter 3 |
\(b_3\) |
b3 |
None |
\(\text{dimensionless}\) |
Throughput equation parameter 4 |
\(b_4\) |
b4 |
None |
\(\text{dimensionless}\) |
The following variables are only built when specific configuration options are selected.
if film_transfer_coefficient_type
or surface_diffusion_coefficient_type
is set to calculated
:
Description |
Symbol |
Variable Name |
Index |
Units |
---|---|---|---|---|
Molecular diffusion coefficient |
\(D_l\) |
diffus_liq |
None |
\(\text{m}^2\text{/s}\) |
Molal volume |
\(V_b\) |
molal_volume |
None |
\(\text{m}^3\text{/mol}\) |
if film_transfer_coefficient_type
is set to calculated
:
Description |
Symbol |
Variable Name |
Index |
Units |
---|---|---|---|---|
Reynolds number |
\(Re\) |
N_Re |
None |
\(\text{dimensionless}\) |
Schmidt number |
\(Sc\) |
N_Sc |
None |
\(\text{dimensionless}\) |
GAC particle sphericity |
\(\phi\) |
sphericity |
None |
\(\text{dimensionless}\) |
if surface_diffusion_coefficient_type
is set to calculated
:
Description |
Symbol |
Variable Name |
Index |
Units |
---|---|---|---|---|
Tortuosity of the path that the adsorbate must take as compared to the radius |
\(\tau_p\) |
tort |
None |
\(\text{dimensionless}\) |
Surface-to-pore diffusion flux ratio |
\(S\!P\!D\!F\!R\) |
spdfr |
None |
\(\text{dimensionless}\) |
Equations
Description |
Equation |
---|---|
Equilibrium concentration |
\(q_e = kC_0^{1/n}\) |
Solute distribution parameter |
\(D_g=\frac{\rho_aq_e\left( 1-\epsilon \right)}{\epsilon C_0}\) |
Biot number |
\(Bi=\frac{k_fd_p\left( 1-\epsilon \right)}{2D_sD_g\epsilon}\) |
Minimum Stanton number to achieve CPS |
\(St_{min}=a_0Bi+a_1\) |
Minimum EBCT to achieve CPS |
\(EBCT_{min}=\frac{St_{min}d_p}{2k_f\left( 1-\epsilon \right)}\) |
Minimum residence time to achieve CPS |
\(\tau_{min}=EBCT_{min}\epsilon\) |
Residence time |
\(\tau=EBCT\epsilon\) |
Mass throughput ratio |
\(T=b_0+b_1\left( \frac{C}{C_0} \right)^{b_2}+\frac{b_3}{1.01-\left( \frac{C}{C_0} \right)^{b_4}}\) |
Minimum elapsed operation time to achieve CPS |
\(t_{min}=\tau_{min}\left( D_g+1 \right)T\) |
Elapsed operation time |
\(t_{op}=t_{min}+\left( \tau-\tau_{min} \right)\left( D_g+1 \right)\) |
Density relation to bed voidage |
\(\epsilon=1-\frac{\rho_b}{\rho_a}\) |
Density relation to particle porosity |
\(\epsilon_p=1-\frac{\rho_a}{\rho_s}\) |
Steady state GAC replacement rate |
\(\dot{m}_{GAC}=\frac{M_{GAC}}{t_{op}}\) |
Adsorber bed volume |
\(EBCT=\frac{V}{Q}\) |
Mass of GAC in a fresh adsorber bed |
\(M_{GAC}=V\rho_b\) |
Velocity relationship |
\(v_i=\frac{v_s}{\epsilon}\) |
Adsorbed bed area |
\(A=\frac{Q}{v_s}\) |
Adsorbed bed length |
\(EBCT=\frac{L}{v_s}\) |
Mass of solute adsorbed if the bed was fully saturated |
\(M_{solute\text{,}e}=q_eM_{GAC}\) |
Saturation fraction of the bed at the time of replacement |
\(\frac{\bar{q}}{q_{e}}\bigg{|}_{t=t_{op}}=\frac{M_{solute}}{M_{solute\text{,}e}}\) |
Mass throughput ratio of the upstream edge of the MTZ |
\(T\big{|}_{Upstream\,MTZ\,edge}=b_0+b_1\left( \frac{C}{C_0}\bigg|_{Upstream\,MTZ\,edge} \right)^{b_2}+\frac{b_3}{1.01-\left( \frac{C}{C_0}\Big|_{Upstream\,MTZ\,edge} \right)^{b_4}}\) |
EBCT of the partial MTZ at the time of replacement |
\(EBCT_{MTZ} = \left( T\big{|}_{Upstream\,MTZ\,edge}-T \right)EBCT_{min}\) |
Length EBCT of the partial MTZ at the time of replacement |
\(EBCT_{MTZ}=\frac{L_{MTZ}}{v_s}\) |
Saturation fraction of the bed at the time of replacement calculated by the trapezoid rule |
\(\frac{\bar{q}}{q_{e}}\bigg{|}_{t=t_{op}}=\frac{1\left( L-L_{MTZ} \right)+\frac{1}{2}\left( \frac{q}{q_{e}}\bigg|_{Upstream \ MTZ \ edge}+\frac{q}{q_{e}}\bigg|_{z=L}\right)\left( L_{MTZ} \right)}{L}\) |
if film_transfer_coefficient_type
or surface_diffusion_coefficient_type
is set to calculated
:
Description |
Equation |
---|---|
Hayduk-Laudie correlation* |
\(D_l\left[ \frac{m^2}{s} \right] = \frac{13.26\times 10^{-9}}{\left( \mu_w\left[ cP \right] \right)^{1.14}\left( V_b \left[ \frac{cm^3}{mol} \right]\right)^{1.14}}\) |
*Subscript \(w\) denotes liquid phase properties, here those of pure water is used considering trace solute concentrations.
if film_transfer_coefficient_type
is set to calculated
:
Description |
Equation |
---|---|
Reynolds number for packed beds* |
\(Re=\frac{\rho_w\phi d_pv_i}{\epsilon\mu_w}\) |
Schmidt number for packed beds* |
\(Sc=\frac{\mu_w}{\rho_wD_l}\) |
Gnielinski correlation |
\(k_f=\frac{\left[ 1+1.5\left( 1-\epsilon \right) \right]D_l}{d_p}\left( 2+0.644Re^{\frac{1}{2}}Sc^{\frac{1}{3}} \right)\) |
*Subscript \(w\) denotes liquid phase properties, here those of pure water is used considering trace solute concentrations.
if surface_diffusion_coefficient_type
is set to calculated
:
Description |
Equation |
---|---|
Surface diffusion coefficient correlation |
\(D_s=\left( S\!P\!D\!F\!R \right)\left( \frac{\epsilon_pC_0D_l}{\rho_aq_e\tau_p} \right)\) |
Costing Method
Costing Method Variables
The following parameters are constructed when applying the GAC costing method in the watertap_costing_package
:
Description |
Symbol |
Variable Name |
Default Value |
Units |
---|---|---|---|---|
Number of GAC contactors in operation in parallel |
\(N_{op}\) |
gac_num_contactors_op |
1 |
\(\text{dimensionless}\) |
Number of off-line redundant GAC contactors in parallel |
\(N_{red}\) |
gac_num_contactors_redundant |
1 |
\(\text{dimensionless}\) |
GAC contactor polynomial cost coefficient 0 |
\(x_0\) |
gac_contactor_cost_coeff_0 |
10010.9 |
\($\) |
GAC contactor polynomial cost coefficient 1 |
\(x_1\) |
gac_contactor_cost_coeff_1 |
2204.95 |
\($/m^3\) |
GAC contactor polynomial cost coefficient 2 |
\(x_2\) |
gac_contactor_cost_coeff_2 |
-15.9378 |
\($/\left( m^3 \right)^2\) |
GAC contactor polynomial cost coefficient 3 |
\(x_3\) |
gac_contactor_cost_coeff_3 |
0.110592 |
\($/\left( m^3 \right)^3\) |
Reference maximum value of GAC mass needed for initial charge where economy of scale no longer discounts the unit price |
\(M_{GAC}^{ref}\) |
bed_mass_gac_max_ref |
18143.7 |
\(kg\) |
GAC adsorbent exponential cost pre-exponential coefficient |
\(y_0\) |
gac_adsorbent_unit_cost_coeff |
4.58342 |
\($/kg\) |
GAC adsorbent exponential cost parameter coefficient |
\(y_1\) |
gac_adsorbent_unit_cost_exp_coeff |
-1.25311e-5 |
\(kg^{-1}\) |
GAC other cost power law coefficient |
\(z_0\) |
gac_other_cost_coeff |
16660.7 |
\($/\left( m^3 \right)^{z_1}\) |
GAC other cost power law exponent |
\(z_1\) |
gac_other_cost_exp |
0.552207 |
\(\text{dimensionless}\) |
Fraction of spent GAC adsorbent that can be regenerated for reuse |
\(f_{regen}\) |
gac_regen_frac |
0.70 |
\(\text{dimensionless}\) |
Unit cost to regenerate spent GAC adsorbent by an offsite regeneration facility |
\(C_{regen}\) |
gac_regen_unit_cost |
4.28352 |
\($/kg\) |
Unit cost to makeup spent GAC adsorbent with fresh adsorbent |
\(C_{makeup}\) |
gac_makeup_unit_cost |
4.58223 |
\($/kg\) |
Costing GAC contactors is defaulted to purchasing 1 operational and 1 redundant contactor for alternating operation. For large systems this may be a poor assumption considering vessel sizing and achieving pseudo-steady state. The number of contactors input by the user should justify reasonable (commercially available) dimensions of identical modular contactors in parallel. When costing several operational vessels, the area reported in the unit model should be interpreted as the sum of the areas across all operating GAC contactors.
The following variables are constructed when applying the GAC costing method in the watertap_costing_package
:
Description |
Symbol |
Variable Name |
Units |
---|---|---|---|
Unit contactor(s) capital cost |
\(C_{cap,bed}\) |
contactor_cost |
\($\) |
GAC adsorbent cost per unit mass |
\(C_{carbon}\) |
adsorbent_unit_cost |
\($/kg\) |
Unit adsorbent capital cost |
\(C_{cap,carbon}\) |
adsorbent_cost |
\($\) |
Unit other process capital cost |
\(C_{cap,other}\) |
other_process_cost |
\($\) |
Cost to regenerate spent GAC adsorbent by an offsite regeneration facility |
\(C_{op,regen}\) |
gac_regen_cost |
\($/year\) |
Cost to makeup spent GAC adsorbent with fresh adsorbent |
\(C_{op,makeup}\) |
gac_makeup_cost |
\($/year\) |
Capital Cost Calculations
Capital costs are determined by the summation of three costing terms. Each term is is calculated by a one parameter (different for each term) function considering economy of scale.
\[C_{cap,tot} = C_{cap,bed}+C_{cap,carbon}+C_{cap,other}\]
Contactor and GAC adsorbent capital costs are estimated using functions and parameters reported in US EPA, 2021. Contactors are assumed to be carbon steel pressure vessels with plastic internals and are determined as a polynomial function of individual contactor volume. The unit cost per kilogram of GAC adsorbent needed is calculated using an exponential function. A maximum reference mass is imposed in the costing method to define a best available price where above this required charge, the price would no longer be discounted. Other process costs (vessels, pipes, instrumentation, and controls) included in the US EPA, 2021 model are aggregated into a separate term. The parameters for the power law function with respect to the total system contactor volume were regressed using results from the US EPA, 2021 model.
\[\begin{split}& C_{cap,bed} = \left( N_{op}+N_{red} \right)\left( x_0+x_1\left( \frac{V}{N_{op}} \right)+x_2\left( \frac{V}{N_{op}} \right)^2+x_3\left( \frac{V}{N_{op}} \right)^3 \right) \\\\ & C_{carbon} = y_0e^{y_1M_{GAC}^{ref}} \\\\ & C_{cap,carbon} = C_{carbon}M_{GAC} \\\\ & C_{cap,other} = z_0\left( \left( N_{op}+N_{red} \right)\frac{V}{N_{op}} \right)^{z_1}\end{split}\]
Note that given the the ability to alter the parameters in these correlations, GAC adsorbent unit costs (\(C_{carbon}\)) may be fixed to a value (\(y_0\)) by setting \(y_1=0\).
Operating Cost Calculations
Operating costs are calculated as the cost to replace spent GAC adsorbent in the contactor beds. Energy for backwash and booster pumps are considered negligible compared to the regeneration costs. Since the replacement adsorbent purchases are expected to be purchased in bulk at smaller quantities than the initial charge, the cost of fresh GAC adsorbent for makeup has an independent cost per unit mass variable, expected to be higher than the initial charge unit cost.
\[\begin{split}& C_{op,tot} = C_{op,regen}+C_{op,makeup} \\\\ & C_{op,regen} = f_{regen}C_{regen}\dot{m}_{GAC} \\\\ & C_{op,makeup} = \left( 1-f_{regen} \right)C_{makeup}\dot{m}_{GAC}\end{split}\]
Code Documentation
References
Hand, D. W., Crittenden, J. C., & Thacker, W. E. (1984). Simplified models for design of fixed-bed adsorption systems. Journal of Environmental Engineering, 110(2), 440-456.
Crittenden, J., Rhodes, R., Hand, D., Howe, K., & Tchobanoglous, G. (2012). MWHs Water Treatment. Principles and Design. EditorialJohn Wiley & Sons.
United States Environmental Protection Agency. (2021). Work Breakdown Structure-Based Cost Model for Granular Activated Carbon Drinking Water Treatment.