Click here to donate to keep PhreeqcUsers open
Welcome,
Guest
. Please
login
or
register
.
Did you miss your
activation email
?
1 Hour
1 Day
1 Week
1 Month
Forever
Login with username, password and session length
Forum Home
Login
Register
PhreeqcUsers Discussion Forum
»
Processes
»
Reactive transport modelling
»
Fluidized bed Ion exchange
« previous
next »
Print
Pages: [
1
]
Go Down
Author
Topic: Fluidized bed Ion exchange (Read 2319 times)
lpidoux
Contributor
Posts: 7
Fluidized bed Ion exchange
«
on:
November 18, 2020, 01:18:28 PM »
Hi all,
I would like to use PHREEQC to simulate an ion exchange process. The treatment we would like to model works as a fluidized bed where the resin (anion exchange) is in suspension inside the column, we would treat DOC and need to take into consideration competition between species in solution.
I have been looking into the PHREEQC (v3) manual to understand how we could proceed. We found the 3D and multicomponent diffusion options in the TRANSPORT data block, which should help us. But I am not quite sure if the software is suitable to model a Fluidized bed Ion exchange. Is the porosity that is included in the diffusive flux equation (p.242 of the manual, see attached) the porosity of the resin or of the bed?
I'd be happy to have any insight on this matter!
Thank you,
Lucie
Logged
dlparkhurst
Top Contributor
Posts: 3619
Re: Fluidized bed Ion exchange
«
Reply #1 on:
November 18, 2020, 06:36:20 PM »
The simplest approach is just to define an EXCHANGEr at equlibrium with infilling solution. The difference between the equilibrium condition and the initial exchange composition would give the capacity of the exchanger relative to the water to be treated.
If necessary, you can use ADVECTION or TRANSPORT to replace sequentially the solution in one cell. The cell would contain an appropriate amount of exchanger defined by EXCHANGE 1. As water moves through the system, the exchange composition will evolve from its initial condition until either EXCHANGE 1 is redefined, or until it reaches the equilibrium condition calculated above. I think you would simply use advection or advection and dispersion, but not diffusion. You could get more complicated to try to model continuous flow.
Logged
lpidoux
Contributor
Posts: 7
Re: Fluidized bed Ion exchange
«
Reply #2 on:
November 18, 2020, 07:11:09 PM »
Thank you for your reply.
We would like to use PHREEQC to simulate the regeneration step, and were hoping we could take into consideration the film diffusion and intraparticle diffusion that happen on the resin. Would the -mutli_D option not be able to simulate it as the equation used seems to come from Nernst-Planck equation? I am not very certain of the method since the porosity in that equation corresponds to the porosity of the bed and not of the resin.
Logged
dlparkhurst
Top Contributor
Posts: 3619
Re: Fluidized bed Ion exchange
«
Reply #3 on:
November 18, 2020, 09:12:05 PM »
Multicomponent diffusion represents a 1D column, and presumably at a micro scale from a recharging solution to the ion exchange sites for your exchanger. You will have to decide the appropriate porosity. Ions will diffuse at rates dependent on their specified tracer diffusion coefficients, but adjusted to produce zero current.
Logged
lpidoux
Contributor
Posts: 7
Re: Fluidized bed Ion exchange
«
Reply #4 on:
January 20, 2021, 10:28:02 AM »
Hello David,
I have been looking deeper into the simulation of the fluidized bed with suspended ion exchange resin. I added a stagnant layer in the TRANSPORT data block to define a mixing factor in order to simulate a CSTR. I defined the anion exchanger in cell 3 (tank) initially saturated with Cl.
I would like to simulate the diffusion occurring inside the resin beads and thought of using a second -stagnant layer where we could define diffusion, size, shape factor, porosity in exchange factor. However, I am unsure on where I should define this second -stagnant command. Should I define a second TRANSPORT block? I pasted my draft script below.
Many thanks in advance
Lucie
*************************************************************
SOLUTION_MASTER_SPECIES
Pola Pola- 0 Pola 1089.06
SOLUTION_SPECIES
Pola- = Pola-
log_k 0
EXCHANGE_MASTER_SPECIES
Y Y+
EXCHANGE_SPECIES
Y+ = Y+
log_k 0.0
Cl- + Y+ = ClY
log_k 0.5
-gamma 4.0 0.075
NO3- + Y+ = NO3Y
log_k 0.1
-gamma 3.5 0.015
HCO3- + Y+ = HCO3Y
log_k 0.2
-gamma 6.0 0.0
OH- + Y+ = OHY
log_k 0.2
-gamma 9.0 0.0
SO4-2 + 2Y+ = SO4Y2
log_k 0.3
-gamma 9.0 0.0
Pola- + Y+ = PolaY
log_k -0.25
-gamma 2.5 0.0
SOLUTION 0 #inlet solution
pH 6.95 charge
Na 4.06
Ca 0.865
C(4) 2.393 as HCO3
S(6) 0.583
N(5) 0.118
Cl 3.34
Pola 0.00597
SOLUTION 1
SOLUTION 3 #tank solution
Na 1
Cl 1
EXCHANGE 3
Y 0.0375 #1.25meq/l resin and 30ml resin/l solution
-equilibrate 3
MIX 3
3 0.8
0 0.2
-equilibrate 3
END
TRANSPORT
-cells 1
-boundary_conditions constant closed
-flow_direction diffusion_only
-stagnant 1
-time_step 0.1 hour
-shifts 40
-punch_cells 3
USER_GRAPH 1
-chart_title "Concentrations in treated water"
-headings Pola Cl HCO3 SO4 NO3 Na Ca
-axis_titles "Bed volumes" "mmol/L"
-axis_scale x_axis 0 8
-axis_scale y_axis 0 5
-initial_solutions true
10 tR=0.5*3600
20 plot_xy total_time/tR, 1e3*tot("Pola")
30 plot_xy total_time/tR, 1e3*tot("Cl")
40 plot_xy total_time/tR, 1e3*mol("HCO3-")
50 plot_xy total_time/tR, 1e3*tot("S(6)")
60 plot_xy total_time/tR, 1e3*tot("N(5)")
70 plot_xy total_time/tR, 1e3*tot("Na")
80 plot_xy total_time/tR, 1e3*tot("Ca")
USER_GRAPH 2
-chart_title "Concentrations in exchanger"
-headings PolaY ClY HCO3Y SO4Y2 NO3Y
-axis_titles "Bed volumes" "mmol/L"
-axis_scale x_axis 0 8
-axis_scale y_axis 0 8
-initial_solutions true
10 tR=0.5*3600
20 plot_xy total_time/tR, 1e3*mol("PolaY")
30 plot_xy total_time/tR, 1e3*mol("HCO3Y")
40 plot_xy total_time/tR, 1e3*mol("SO4Y2")
50 plot_xy total_time/tR, 1e3*mol("NO3Y")
60 plot_xy total_time/tR, 1e3*mol("ClY")
END
*************************************************************
Logged
dlparkhurst
Top Contributor
Posts: 3619
Re: Fluidized bed Ion exchange
«
Reply #5 on:
January 20, 2021, 07:25:03 PM »
There can be only one -stagnant definition in a TRANSPORT data block, and only one TRANSPORT data block is used at a time.
The conceptual model for the stagnant-zone TRANSPORT calculation is that cells 1-n represent advective transport, and the stagnant cells represent exchange or diffusion into side pores. So, one conceptual model would have a series of mobile cells, with side cells off of each one representing diffusion into beads. Here, the input water would interact with the stagnant cells of cell 1, before the solution is advected to cell 2.
Another approach could be to model one bead. In this case, you might not use -stagnant, and the cells of the TRANSPORT column simply represent diffusion into the bead. With this approach, you could use multicomponent diffusion which might be important for the differential transport of ions related to their tracer diffusion coefficients. The approach only allows closed or specified concentrations at the column boundaries.
So, I don't know which if either approach is best. If the beads are homogenized, maybe the latter makes sense using closed boundary conditions. The evolution of the water in the "outermost" cell represents the evolution of the water as it moves through the fluidized bed.
Logged
lpidoux
Contributor
Posts: 7
Re: Fluidized bed Ion exchange
«
Reply #6 on:
January 27, 2021, 07:08:12 PM »
Thank you for your reply.
If I understand correctly, PHREEQC requires to know the velocity of the water going through the column when using TRANSPORT (length/time_step). So I am assuming that would mean knowing the velocity of the water through the packed column (full of the adsorber) or through the resin bead?
Are the volumes of the cells adapted when defining a cell length? Or does the volume of the cell stay at 1L as it is set by default?
For example in the CSTR model: if no length is specified, does PHREEQC assume that 1L goes through the tank every shift?
Thank you in advance!
Lucie
Logged
dlparkhurst
Top Contributor
Posts: 3619
Re: Fluidized bed Ion exchange
«
Reply #7 on:
January 27, 2021, 07:36:45 PM »
The volume of each cell is defined by the SOLUTIONs that you put in them, but generally, the solutions are ~1 L.
If you are not using diffusion_only for the flow direction, then yes, the velocity is determined by the cell length and time step. At each shift, the contents of one cell is moved to the next, so if you did have a different volume in one cell or the infilling solution, that volume would advect to the next cell.
You will have to decide on your conceptual model. Advection in a bead does not seem to make sense, but diffusion does. I have never seen a fluidized bed reactor. If the beads are fixed in location, then advection through a column would make sense, but if the beads are continuously mixed through the reactor, then the column model would not work. For continuous mixing, I think one bead, as representative of all beads, with diffusion would work better.
Logged
lpidoux
Contributor
Posts: 7
Re: Fluidized bed Ion exchange
«
Reply #8 on:
February 16, 2021, 07:19:40 PM »
Hello,
I am challenging my experimental results (using the Strong Base Anion ion exchange resin) with Phreeqc predictions. The results are very close which is very encouraging!
However, I would like to understand how Phreeqc calculates the predicted equilibrium concentrations after each cycle. Can I find an example somewhere showing the maths behind the coding?
On another note, is it possible to create a 'loop' to simulate n treatment cycles as it is the same operation repeating n times?
My script is as follows to simulate 3 cycles without regenerating the resin:
SOLUTION 1 #regenerant
Na 100
Cl 100
EXCHANGE 1#resin initially saturated with Cl
-equilibrate 1
Y 0.025
SOLUTION 2 #raw water
...
END
USE exchange 1 #1st treatment of raw water
MIX
2 1 #1L of solution 2
SAVE exchange 1
END
USE exchange 1 #2nd treatment of raw water
MIX
2 1 #1L of solution 2
SAVE exchange 1
END
USE exchange 1 #3rd treatment of raw water
MIX
2 1 #1L of solution 2
SAVE exchange 1
END
Thank you so much,
Lucie
Logged
dlparkhurst
Top Contributor
Posts: 3619
Re: Fluidized bed Ion exchange
«
Reply #9 on:
February 16, 2021, 08:14:55 PM »
The manual for PHREEQC version 2 gives a fairly complete description of the equations that are solved (
https://pubs.er.usgs.gov/publication/wri994259
). For your exchange equilibrium, the equations are mass balance on each element in solution, mass balance on the exchanger, and a series of aqueous and exchange mass-action equations.
PHREEQC does not have an explicit looping capability. However, it is possible to code USER_PUNCH to write a repetitive series of input to a file, and then use INCLUDE$ to run those simulations. Example 8 in the version 3 manual demonstrates the capability. For a few repeats, it is simpler to cut and paste; if you are frequently doing repetitive calculations, it might be worth figuring out how to generate the repetitive sections.
Logged
lpidoux
Contributor
Posts: 7
Re: Fluidized bed Ion exchange
«
Reply #10 on:
July 05, 2021, 06:03:06 PM »
Hi,
I am wondering how Phreeqc calculates a new equilibrium when the anion resin is loaded with different ions, e.g. ClY=1.46E-02 mol, HCO3Y=3.14E-03 mol, SO4Y2=6.31E-03 etc.
Does Phreeqc split the resin into individual fractions (one per presaturant ion) and apply the equilibrium theory to each fraction? I'm guessing that each fraction would react with only a portion of the solution in contact?
Many thanks,
Lucie
Logged
dlparkhurst
Top Contributor
Posts: 3619
Re: Fluidized bed Ion exchange
«
Reply #11 on:
July 05, 2021, 10:17:29 PM »
No, there is no splitting into fractions. PHREEQC solves a mole balance equation, something like:
Total Xsites = NaX + KX
and mass action equations
Na+ + X- = NaX
K+ + X- = KX
with the stipulation that all sites are filled (the concentration of X- is negligible).
Logged
Print
Pages: [
1
]
Go Up
« previous
next »
PhreeqcUsers Discussion Forum
»
Processes
»
Reactive transport modelling
»
Fluidized bed Ion exchange