Ion Exchange (0D)
The main assumptions of the implemented model are as follows:
Model dimensionality is limited to a 0D control volume
Single liquid phase only
Steady state only
Single solute and single solvent (water) only
Plug flow conditions
Isothermal conditions
Favorable Langmuir or Freundlich isotherm
Introduction
Ion exchange is the reversible transfer of one or more solutes between a fluid phase and a sorbent. This process is becoming increasingly popular in drinking water treatment applications where it is used for water softening and demineralization. This implementation of the fixedbed ion exchange model accounts for process equilibrium, kinetics, and hydrodynamics to predict performance, bed and column geometry, and capital/operating costs. The ion exchange process operates as a cycle with four steps:
Service
Backwashing
Regeneration
Rinsing
Critical to predicting performance of an ion exchange process is having an estimate for the breakthrough time, or the duration of treatment before the solute begins exiting the column at a concentration unacceptable to the operator. At this time, the mass transfer zone is approaching the end of the ion exchange bed, the resin is nearing exhaustion, and the regeneration cycle can begin. Fundamental to this model is the assumption that the isotherm between the solute and the resin is favorable, and thus the mass transfer zone is shallow.
Isotherm Configurations
The model requires the user has either Langmuir or Freundlich isotherm equilibrium parameters for their specific system. Variables in the following equations and their corollary in the WaterTAP model are defined in a following section.
Langmuir
For the Langmuir isotherm, the Langmuir parameter \(La\) (langmuir
in the WaterTAP model) is:
Where \(K\) is an equilibrium constant derived from experimental data, and \(C_0\) is the influent concentration of the target ion. (Note: This equation is not included in the model). \(La\) is used in the dimensionless form of the Langmuir isotherm:
\(Y\) is the ratio of equilibrium to total resin capacity (resin_eq_capacity
and resin_max_capacity
, respectively in the WaterTAP model).
For a favorable isotherm (a core assumption of the model), \(La\) is less than one.
Freundlich
For the Freundlich isotherm, the model assumes the user has fit breakthrough data to the Clark model. The general solution evaluated at 50% breakthrough is:
The form often fit to breakthrough data is:
The full derivation for both equations is provided in Croll et al. (2023).
Ports
The model provides three ports (Pyomo notation in parenthesis):
Inlet port (inlet)
Outlet port (outlet)
Regeneration port (regen)
Sets
The table below outlines example Sets that could be used with the ion exchange model.
“Components” is a subset of “Ions” and uses the same symbol j
.
They can include any ion as long as the ion is configured into the property package.
target_ion_set
includes the component to be removed via the ion exchange process.
The current model implementation is only for a single component, but target_ion_set
is included for future development of a multicomponent model.
Description 
Symbol 
Example Indices 

Time 
\(t\) 

Phases 
\(p\) 

Components 
\(j\) 

Ions 
\(j\) 

Target Ion 
\(j\) 

In this example, the influent stream contains H2O
(always included), Cation_+
, Anion_
, and an uncharged component Inert
.
The user would specify the concentration of each as part of the property package in the model build.
The charged components are included in “Ions”, a subset of “Compoenents”. The model is configured as a cation exchange process since target_ion_set
contains a positively
charged component, Cation_+
.
Model Components
The ion exchange model includes many variables, parameters, and expressions that are common to both the
langmuir
and freundlich
isotherm configurations. These are provided in the table below.
Description 
Symbol 
Variable Name 
Index 
Units 

Variables 

Inlet temperature 
\(T\) 


\(\text{K}\) 
Inlet pressure 
\(p\) 


\(\text{Pa}\) 
Component molar flow rate 
\(N_j\) 


\(\text{mol/s}\) 
Control volume mass transfer term 
\(\dot{m}_j\) 


\(\text{mol/s}\) 
Service flow rate through resin bed in bed volumes per hour 
\(SFR\) 

None 
\(\text{hr}^{1}\) 
Linear velocity through bed 
\(u_{bed}\) 

None 
\(\text{m/s}\) 
Interstitial velocity through bed 
\(u_{inter}\) 

None 
\(\text{m/s}\) 
Number of operational columns 
\(n_{op}\) 

None 
\(\text{dimensionless}\) 
Number of redundant columns 
\(n_{red}\) 

None 
\(\text{dimensionless}\) 
Bed depth 
\(Z\) 

None 
\(\text{m}\) 
Column height 
\(H_{col}\) 

None 
\(\text{m}\) 
Column diameter 
\(D_{col}\) 

None 
\(\text{m}\) 
Column height to diameter ratio 
\(R_{HD}\) 

None 
\(\text{dimensionless}\) 
Total bed volume 
\(V_{res, tot}\) 

None 
\(\text{m}^3\) 
Resin bead diameter 
\(d\) 

None 
\(\text{m}\) 
Resin bulk density 
\(\rho_{b}\) 

None 
\(\text{kg/L}\) 
Resin surface area per volume 
\(a_{s}\) 

None 
\(\text{m}^{1}\) 
Bed porosity 
\(\epsilon\) 

None 
\(\text{dimensionless}\) 
Regenerant dose per volume of resin 
\(C_{regen}\) 

None 
\(\text{kg/}\text{m}^3\) 
Number of cycles before regenerant disposal 
\(N_{regen}\) 

None 
\(\text{dimensionless}\) 
Relative breakthrough concentration at breakthrough time 
\(X\) 


\(\text{dimensionless}\) 
Breakthrough time 
\(t_{break}\) 

None 
\(\text{s}\) 
Empty Bed Contact Time (EBCT) 
\(EBCT\) 

None 
\(\text{s}\) 
Reynolds number 
\(Re\) 

None 
\(\text{dimensionless}\) 
Schmidt number 
\(Sc\) 


\(\text{dimensionless}\) 
Sherwood number 
\(Sh\) 


\(\text{dimensionless}\) 
Peclet particle number 
\(Pe_{p}\) 

None 
\(\text{dimensionless}\) 
Peclet bed number 
\(Pe_{bed}\) 

None 
\(\text{dimensionless}\) 
Parameters 

Regeneration time 
\(t_{regen}\) 

None 
\(\text{s}\) 
Backwash time 
\(t_{bw}\) 

None 
\(\text{s}\) 
Backwash loading rate 
\(u_{bw}\) 

None 
\(\text{m/hr}\) 
Number of bed volumes for rinse step 
\(N_{rinse}\) 

None 
\(\text{dimensionless}\) 
Pump efficiency 
\(\eta\) 

None 
\(\text{dimensionless}\) 
Servicetoregeneration flow ratio 
\(R\) 

None 
\(\text{dimensionless}\) 
Pressure drop equation intercept 
\(p_{drop,A}\) 

None 
\(\text{dimensionless}\) 
Pressure drop equation B 
\(p_{drop,B}\) 

None 
\(\text{dimensionless}\) 
Pressure drop equation C 
\(p_{drop,C}\) 

None 
\(\text{dimensionless}\) 
Bed expansion fraction equation intercept 
\(H_{expan,A}\) 

None 
\(\text{dimensionless}\) 
Bed expansion fraction equation B parameter 
\(H_{expan,B}\) 

None 
\(\text{dimensionless}\) 
Bed expansion fraction equation C parameter 
\(H_{expan,C}\) 

None 
\(\text{dimensionless}\) 
Expressions 

Fraction of bed depth increase during backwashing 
\(X_{expan}\) 

None 
\(\text{dimensionless}\) 
Additional column sidewall height required for bed expansion 
\(H_{expan}\) 

None 
\(\text{dimensionless}\) 
Backwashing volumetric flow rate 
\(Q_{bw}\) 

None 
\(\text{m}^{3}\text{/s}\) 
Rinse time 
\(t_{rinse}\) 

None 
\(\text{s}\) 
Rinse volumetric flow rate 
\(Q_{rinse}\) 

None 
\(\text{m}^{3}\text{/s}\) 
Regen + Rinse + Backwash time 
\(t_{waste}\) 

None 
\(\text{s}\) 
Cycle time 
\(t_{cycle}\) 

None 
\(\text{s}\) 
Bed volume of one unit 
\(V_{res}\) 

None 
\(\text{m}^{3}\) 
Column volume of one unit 
\(V_{col}\) 

None 
\(\text{m}^{3}\) 
Total column volume 
\(V_{col, tot}\) 

None 
\(\text{m}^{3}\) 
Bed volumes of throughput at breakthrough 
\(BV\) 

None 
\(\text{dimensionless}\) 
Regeneration solution tank volume 
\(V_{regen}\) 

None 
\(\text{m}^{3}\) 
Pressure drop through resin bed 
\(p_{drop}\) 

None 
\(\text{psi}\) 
Power of main booster pump 
\(P_{main}\) 

None 
\(\text{kW}\) 
Regen pump power 
\(P_{regen}\) 

None 
\(\text{kW}\) 
Backwash pump power 
\(P_{bw}\) 

None 
\(\text{kW}\) 
Rinse pump power 
\(P_{rinse}\) 

None 
\(\text{kW}\) 
If isotherm
is set to langmuir
, the model includes the following components:
Description 
Symbol 
Variable Name 
Index 
Units 

Variables 

Langmuir equilibrium parameter for resin/ion system 
\(La\) 


\(\text{dimensionless}\) 
Maximum resin capacity 
\(q_{max}\) 

None 
\(\text{mol/kg}\) 
Equilibrium resin capacity 
\(q_{eq}\) 

None 
\(\text{mol/kg}\) 
Unused resin capacity 
\(q_{un}\) 

None 
\(\text{mol/kg}\) 
Sorbed mass of ion 
\(M_{out}\) 


\(\text{mol}\) 
Number of transfer units 
\(N\) 

None 
\(\text{dimensionless}\) 
Dimensionless time 
\(\tau\) 

None 
\(\text{dimensionless}\) 
Partition ratio 
\(\Lambda\) 

None 
\(\text{dimensionless}\) 
Fluid mass transfer coefficient 
\(k_{f}\) 


\(\text{m/s}\) 
Mass removed during service 
\(M_{rem,j}\) 


\(\text{mol}\) 
If isotherm
is set to freundlich
, the model includes the following components:
Description 
Symbol 
Variable Name 
Index 
Units 

Variables 

Freundlich isotherm exponent for resin/ion system 
\(n\) 

None 
\(\text{dimensionless}\) 
Bed capacity parameter 
\(A\) 

None 
\(\text{dimensionless}\) 
Bed volumes at breakthrough 
\(BV\) 

None 
\(\text{dimensionless}\) 
Bed volumes at 50% influent conc. 
\(BV_{50}\) 

None 
\(\text{dimensionless}\) 
Kinetic fitting parameter 
\(r\) 

None 
\(\text{dimensionless}\) 
Mass transfer coefficient 
\(k_T\) 

None 
\(\text{s}^{1}\) 
Concentration at breakthrough 
\(C_{b}\) 


\(\text{kg/}\text{m}^3\) 
Average relative breakthrough concentration at breakthrough time 
\(X_{avg}\) 

None 
\(\text{dimensionless}\) 
Relative breakthrough conc. for trapezoids 
\(X_{trap,k}\) 


\(\text{dimensionless}\) 
Breakthrough times for trapezoids 
\(t_{trap,k}\) 


\(\text{s}\) 
Area of trapezoids 
\(A_{trap,k}\) 


\(\text{dimensionless}\) 
Degrees of Freedom
Aside from the inlet feed state variables (temperature, pressure, component molar flowrate), the user must specify an additional 9 degrees of freedom
for both the langmuir
and freundlich
isotherm model configurations to achieve a fully specified model (i.e., zero degrees of freedom).
Depending on the data available to the user and the objectives of the modeling exercise, different combinations of variables can be fixed to achieve
zero degrees of freedom.
For either model configuration, the user can fix the following variables:
resin_diam
resin_bulk_dens
bed_porosity
service_flow_rate
(alternatively,vel_bed
)bed_depth
number_columns
regen_dose
Langmuir DOF
If isotherm
is set to langmuir
, the additional variables to fix are:
langmuir
resin_max_capacity
dimensionless_time
(can be fixed to default value of 1)
Freundlich DOF
If isotherm
is set to freundlich
, the additional variables to fix are:
freundlich_n
bv
c_norm
one of
bv_50
,kinetic_param
,mass_transfer_coeff
, orbed_capacity_param
as determined from Clark model equations
Solution Component Information
The IonExchange0D model is designed to work with WaterTAP’s Multicomponent aqueous solution (MCAS) property package. In addition to providing a list of solute ions, users must provide parameter information for each ion including molecular weight, diffusivity data, and charge data. An example of how this data is used to build a model is provided below.
target_ion = "Ca_2+"
ion_props = {
"solute_list": [target_ion],
"diffusivity_data": {("Liq", target_ion): 9.2e10},
"mw_data": {"H2O": 0.018, target_ion: 0.04},
"charge": {target_ion: 2},
}
m = ConcreteModel()
m.fs = FlowsheetBlock(dynamic=False)
m.fs.properties = MCASParameterBlock(**ion_props)
ix_config = {
"property_package": m.fs.properties,
"target_ion": target_ion,
}
m.fs.ix = IonExchange0D(**ix_config)
Equations and Relationships
Description 
Equation 

Common 

Service flow rate 
\(SFR = \frac{Q_{p, in}}{V_{res, tot}}\) 
Total bed volume 
\(V_{res, tot} = V_{bed}n_{op}\) 
Flow through bed constraint 
\(\frac{Z}{u_{bed}} = \frac{V_{res, tot}}{Q_{p, in}}\) 
Total resin volume required 
\(V_{res, tot} = Z \pi \frac{D_{col}^2}{4} n_{op}\) 
Volume of single column 
\(V_{col} = H_{col} \frac{V_{bed}}{Z}\) 
Total column volume required 
\(V_{col, tot} = n_{op}V_{col}\) 
Column height to diameter ratio 
\(R_{HD} = \frac{H_{col}}{D_{col}}\) 
Column height 
\(H_{col} = Z + H_{distributor} + H_{underdrain} + H_{expan}\) 
Interstitial velocity 
\(u_{inter} = \frac{u_{bed}}{\epsilon}\) 
Contact time 
\(t_{contact} = EBCT \epsilon\) 
Empty bed contact time 
\(EBCT = \frac{Z}{u_{bed}}\) 
Regeneration tank volume 
\(V_{regen} = t_{regen} (Q_{p, in} / R)\) 
Bed expansion fraction from backwashing (T = 20C) 
\(X_{expan} = H_{expan,A} + H_{expan,B}u_{bw} + H_{expan,C}u_{bw}^{2}\) 
Bed expansion from backwashing 
\(H_{expan} = X_{expan}Z\) 
Regen volumetric flow rate 
\(Q_{regen} = \frac{Q_{p, in}N_{regen}}{R}\) 
Backwashing flow rate 
\(Q_{bw} = u_{bw} \frac{V_{bed}}{Z}n_{op}\) 
Rinse flow rate 
\(Q_{rinse} = u_{bed} \frac{V_{bed}}{Z}n_{op}\) 
Main pump power 
\(P_{main} = \frac{g \rho_{in} 0.70325p_{drop}Q_{p, in}}{\eta}\) 
Regen pump power 
\(P_{regen} = \frac{g \rho_{in} 0.70325p_{drop}Q_{regen}}{\eta}\) 
Rinse pump power 
\(P_{rinse} = \frac{g \rho_{in} 0.70325p_{drop}Q_{rinse}}{\eta}\) 
Backwash pump power 
\(P_{bw} = \frac{g \rho_{in} 0.70325p_{drop}Q_{bw}}{\eta}\) 
Pressure drop (T = 20C) 
\(p_{drop} = Z(p_{drop,A} + p_{drop,B}u_{bed} + p_{drop,C}u_{bed}^{2})\) 
Rinse time 
\(t_{rinse} = EBCT N_{rinse}\) 
Cycle time 
\(t_{cycle} = t_{break} + t_{waste}\) 
Waste time 
\(t_{waste} = t_{regen} + t_{bw} + t_{rinse}\) 
Reynolds number 
\(Re = \frac{u_{bed}d}{\mu}\) 
Schmidt number 
\(Sc = \frac{\mu}{D}\) 
Sherwood number 
\(Sh = 2.4 \epsilon^{0.66} Re^{0.34} Sc^{0.33}\) 
Bed Peclet number 
\(Pe_{bed} = Pe_{p} \frac{Z}{d}\) 
Particle Peclet number 
\(Pe_{p} = 0.05 Re^{0.48}\) 
Resin surface area per vol 
\(a_{s} = 6 \frac{1\epsilon}{d}\) 
Langmuir 

Langmuir isotherm 
\(\frac{C_{b}}{C_{0}} (1\frac{q_{eq}}{q_{max}}) = La (1\frac{C_{b}}{C_{0}})\frac{q_{eq}}{q_{max}}\) 
Constant pattern solution for Langmuir isotherm 
\(N(\tau  1) = 1 + \frac{\log{(C_{b}/C_{0})}  La \log{(1  C_{b}/C_{0})}}{1  La}\) 
Resin capacity mass balance 
\(q_{max} = q_{avail} + q_{eq}\) 
Partition ratio 
\(\Lambda = \frac{q_{eq} \rho_{b}}{C_{0}}\) 
Fluid mass transfer coeff 
\(k_{f} = \frac{D Sh}{d}\) 
Number of masstransfer units 
\(N = \frac{k_{f}a_{s}Z}{u_{bed}}\) 
Dimensionless time 
\(\tau = (\frac{u_{inter}t_{break} \epsilon}{Z}  \epsilon) / \Lambda\) 
Height of transfer unit 
\(HTU = \frac{u_{bed}}{\rho_{b}k}\) 
Rate coefficient 
\(k = 6 \frac{(1\epsilon)k_{f}}{\rho_{b}d}\) 
Mass removed 
\(M_{rem,j} = V_{res,tot}q_{eq} \rho_{b}\) 
Mass transfer term 
\(\dot{m}_j = M_{rem,j} / t_{break}\) 
Freundlich 

Breakthrough concentration 
\(X = \frac{C_b}{C_0}\) 
Bed volumes at breakthrough concentration 
\(BV = \frac{t_{break} u_{bed}}{Z}\) 
Clark equation with fundamental constants 
\(X = \frac{1}{\bigg(1 + (2^{n  1}  1)\text{exp}\bigg[\frac{k_T Z (n  1)}{BV_{50} u_{bed}} (BV_{50}  BV)\bigg]\bigg)^{\frac{1}{n1}}}\) 
Clark equation for fitting 
\(X = \frac{1}{A \text{exp}\big[\frac{r Z}{u_{bed}} BV\big]^{\frac{1}{n1}}}\) 
Mass transfer coefficient from Clark equation 
\(k_T = \frac{r BV_{50}}{n  1}\) 
Evenly spaced c_norm for trapezoids 
\(X_{trap,k} = X_{trap,min} + (k  1) \frac{X  X_{trap,min}}{n_{trap}  1}\) 
Breakthru time calculation for trapezoids 
\(t_{trap,k} =  \log{\frac{X_{trap,k}^{n1}1}{A}} / k_T\) 
Area of trapezoids 
\(A_{trap,k} = \frac{t_{trap,k}  t_{trap,k  1}}{t_{trap,n_{trap}}} \frac{X_{trap,k} + X_{trap,k  1}}{2}\) 
Average relative effluent concentration 
\(X_{avg} = \sum{A_{trap,k}}\) 
Mass transfer term 
\(\dot{m}_j = (1  X_{avg}) N_j\) 
Costing Method
The following is a list of variables and/or parameters that are created when applying the ion exchange costing method in the watertap_costing_package
:
Description 
Symbol 
Variable Name 
Default Value 
Units 
Notes 

Anion exchange resin cost 
\(c_{res}\) 

205 
\(\text{\$/}\text{ft}^{3}\) 
Assumes strong base polystyrenic geltype Type II. From EPAWBS cost model. 
Cation exchange resin cost 
\(c_{res}\) 

205 
\(\text{\$/}\text{ft}^{3}\) 
Assumes strong acid polystyrenic geltype. From EPAWBS cost model. 
Ion exchange column cost equation intercept 
\(C_{col,int}\) 

10010.86 
\(\text{\$}\) 
Carbon steel w/ plastic internals. From EPAWBS cost model. 
Ion exchange column cost equation A coeff 
\(C_{col,A}\) 

6e9 
\(\text{\$/}\text{gal}^{3}\) 
Carbon steel w/ plastic internals. From EPAWBS cost model. 
Ion exchange column cost equation B coeff 
\(C_{col,B}\) 

2.284e4 
\(\text{\$/}\text{gal}^{2}\) 
Carbon steel w/ plastic internals. From EPAWBS cost model. 
Ion exchange column cost equation C coeff 
\(C_{col,C}\) 

8.3472 
\(\text{\$/}\text{gal}\) 
Carbon steel w/ plastic internals. From EPAWBS cost model. 
Backwash/rinse tank cost equation intercept 
\(C_{bw,int}\) 

4717.255 
\(\text{\$}\) 
Fiberglass tank. From EPAWBS cost model. 
Backwash/rinse tank cost equation A coeff 
\(C_{bw,A}\) 

1e9 
\(\text{\$/}\text{gal}^{3}\) 
Fiberglass tank. From EPAWBS cost model. 
Backwash/rinse tank cost equation B coeff 
\(C_{bw,B}\) 

5.8587e05 
\(\text{\$/}\text{gal}^{2}\) 
Fiberglass tank. From EPAWBS cost model. 
Backwash/rinse tank cost equation C coeff 
\(C_{bw,C}\) 

2.2911 
\(\text{\$/}\text{gal}\) 
Fiberglass tank. From EPAWBS cost model. 
Regeneration solution tank cost equation intercept 
\(C_{regen,int}\) 

4408.327 
\(\text{\$}\) 
Stainless steel tank. From EPAWBS cost model. 
Regeneration solution tank cost equation A coeff 
\(C_{regen,A}\) 

3.258e5 
\(\text{\$/}\text{gal}^{2}\) 
Stainless steel tank. From EPAWBS cost model. 
Regeneration solution tank cost equation B coeff 
\(C_{regen,B}\) 

3.846 
\(\text{\$/}\text{gal}\) 
Stainless steel tank. From EPAWBS cost model. 
Fraction of resin replaced per year 
\(f_{res}\) 

0.05 
\(\text{yr}^{1}\) 
Estimated 45% per year. From EPAWBS cost model. 
Minimum hazardous waste disposal cost 
\(f_{haz,min}\) 

3240 
\(\text{\$/}\text{yr}\) 
Minimum cost per hazardous waste shipment. From EPAWBS cost model. 
Unit cost for hazardous waste resin disposal 
\(f_{haz,res}\) 

347.10 
\(\text{\$/}\text{ton}\) 
From EPAWBS cost model. 
Unit cost for hazardous waste regeneration solution disposal 
\(f_{haz,regen}\) 

3.64 
\(\text{\$/}\text{gal}\) 
From EPAWBS cost model. 
Number of cycles the regenerant can be reused before disposal 
\(f_{recycle}\) 

1 
\(\text{dimensionless}\) 
Can optionally be set by the user to investigate more efficient regen regimes. 
Costing factor to account for total installed cost installation of equipment 
\(f_{TIC}\) 

1.65 
\(\text{dimensionless}\) 

Unit cost of NaCl 
\(c_{regen}\) 

0.09 
\(\text{\$/}\text{kg}\) 
Assumes solid NaCl. From CatCost v 1.0.4 
Unit cost of HCl 
\(c_{regen}\) 

0.17 
\(\text{\$/}\text{kg}\) 
Assumes 37% solution HCl. From CatCost v 1.0.4 
Unit cost of NaOH 
\(c_{regen}\) 

0.59 
\(\text{\$/}\text{kg}\) 
Assumes 30% solution NaOH. From iDST 
Unit cost of Methanol (MeOH) 
\(c_{regen}\) 

3.395 
\(\text{\$/}\text{kg}\) 
Assumes 100% pure MeOH. From ICIS 
Capital Cost Calculations
Capital costs for ion exchange in the watertap_costing_package
are the summation of the total cost of the resin, columns, backwashing tank, and regeneration solution tank:
Resin is costed based on the total volume of resin required for the system, where \(c_{res}\) is the cost per volume of resin (either cation or anion exchange resin):
Vessel cost as a function of volume was fit to a polynomial regression of the following form to determine capital cost of each column:
The backwashing tank is assumed to include backwash and rinsing volumes. The total volume of this tank is:
Backwashing tank cost as a function of volume was fit to a polynomial regression of the following form to determine capital cost of the backwashing tank:
Regeneration tank cost as a function of volume was fit to a polynomial regression of the following form the determine capital cost of the regeneration tank:
And the total capital cost for the ion exchange system is the summation of these:
A total installed cost (\(f_{TIC}\)) factor of 1.65 is applied to account for installation costs.
Operating Cost Calculations
The operating costs for ion exchange includes the annual resin replacement cost, regeneration solution flow, energy consumption for booster pumps, and any hazardous waste handling costs.
Generally, the largest operating cost is the cost of the regeneration solution. The type of regeneration solution used is set via the
optional model configuration keyword regenerant
. Costing data is available for the following regenerant chemicals:
NaCl
HCl
NaOH
MeOH
If the user does not provide a value for this option, the model defaults to a NaCl regeneration solution. The dose of regenerant needed
is set by the model variable regen_dose
in kg regenerant per cubic meter of resin volume. The mass flow of regenerant solution [kg/yr] is:
Annual resin replacement cost is:
If the spent resin and regenerant contains hazardous material, the user designates this by the model configuration keyword hazardous_waste
. If set to True
, hazardous
disposal costs are calculated as a function of the annual mass of resin replaced and regenerant consumed:
Where \(M_{res}\) is the resin mass for a single bed and \(\dot{v}_{regen}\) is the volumetric flow of regenerant solution. If hazardous_waste
is set to False
,
\(C_{op,haz} = 0\)
The total energy consumed by the unit is the summation of the power required for each of the booster pump, backwashing pump, regeneration pump, and rinsing pump: