Processes > Dissolution and precipitation
Arsenopyrite Precipitation, Saturation Index
(1/1)
Gunther_Schletter:
Currently working on developing a model for a set of column experiments in which in-situ arsenic removal was simulated. In our observed results there was high iron and arsenic removal in the aqueous solution. We also have solid analysis results of the column substrate before and after the treatment period where higher substrate concentrations were found of iron, arsenic and sulfur minerals. Decided on Arsenopyrite as the precipitating mineral because its one of the most commonly found arsenic minerals and it would explain liquid phase removal of iron, arsenic and sulfur (1). FeS(ppt) is also included because overall we see a greater formation of iron and sulfur minerals.
Rate equations chosen off of selected literature (2) and standard rate equations for mineral precipitation using saturation ratio (3).
The issue I am having (or at least suspected issue) is the saturation index isn't above one and therefore not precipitating, resulting in no removal of iron and arsenic from solution. Any ideas to resolve this or overall improve my input is greatly appreciated!
References
1. Welch, A. H., & Stollenwerk, K. G. (Eds.). (2003). Arsenic in ground water: geochemistry and occurrence. Springer Science & Business Media.
2. Sun, J., Prommer, H., Siade, A. J., Chillrud, S. N., Mailloux, B. J., & Bostick, B. C. (2018). Model-based analysis of arsenic immobilization via iron mineral transformation under advective flows. Environmental science & technology, 52(16), 9243-9253.
3. Appelo, C. A. J., & Postma, D. (2004). Geochemistry, groundwater and pollution. CRC press.
SOLUTION_MASTER_SPECIES
#element species alk gfw_formula element_gfw
Fe_di Fe_di+2 0.0 Fe_di 55.847 #Fe(+2)
As_three H3As_threeO3 0.0 As_three 74.9216
#
## Organic Species
Lac Lac- 0.0 Lac 12.0111
Acetate Acetate- 0.0 Acetate 12.0111
SOLUTION_SPECIES
# Fe2
Fe_di+2 = Fe_di+2
log_k 0.0
-gamma 6.0 0.0
-dw 0.719e-9
#As3 primary master species
H3As_threeO3 = H3As_threeO3
log_k 0.0
## lactate and acetate solution species
Lac- = Lac-
log_k 0.0
Acetate- = Acetate-
log_k 0.0
PHASES
Arsenopyrite
Fe_diAs_threeS + 2H2O + OH- = Fe_di+2 + H3As_threeO3 + HS- + H+ + 3e-
log_k 15.966 # -10 and -20 decreasing log K didn't increase SI
RATES
Lac
-start
10 mLac = TOT("Lac")
20 rate = parm(1) * mLac
30 moles = rate * time
35 put(rate,10)
40 save moles
-end
FeS(ppt)
-start
10 rate = PARM(1)*(1-SR("FeS(ppt)")) # IAP/Ksp
20 moles = rate*TIME
25 put(rate,12)
30 SAVE moles
-end
Arsenopyrite
-start
10 rate = PARM(1)*(1-SR("Arsenopyrite"))
20 moles = rate*time
25 put(rate,13)
30 SAVE moles
-end
KINETICS 0-40 #Three kinetic reactions for all cells
Lac
-formula Acetate- 2 H+ 1 HCO3- 2 HS- 1 Lac- -2 SO4-2 -1
-parms 1e-07
-tol 1e-08
FeS(ppt)
-formula Fe_di -1 As_three -1 FeS(ppt) 1
-m 0
-m0 0
-parms 1e-16
-tol 1e-08
Arsenopyrite
-formula Fe_di -1 As_three -1 HS- -1 Arsenopyrite 1
-parms 1e-08
-tol 1e-08
EQUILIBRIUM_PHASES 0-40
Arsenopyrite 0 0 precipitate_only
#---------------------------------------#
# Equilibrium with GW at site GWA
#---------------------------------------#
SOLUTION 1-40
temp 15
pH 7.87
pe -4
units mmol/kgw
density 1
Alkalinity 5.81
#As_five 0.2 umol/kgw
As_three 1.388 umol/kgw
Ca 1.921
Cl 6.798
Fe_di 0.895 umol/kgw
K 0.169
Lac 0.18 mmol/kgw
Mg 2.304
Mn 282 ug/kgw
N 1.357
Na 9.482
S(6) 2.719
-water 1 # kg
END
#---------------------------------------#
# First Introduction of Groundwater YCB
#---------------------------------------#
SOLUTION 0 injection
temp 15
pH 7.77
pe -1.87
units mmol/kgw
density 1
Alkalinity 9.51
Lac 0.5 mmol/kgw
Ca 1.799
Cl 3.695
Fe_di 9.45538 umol/kgw # Originally 1.611, changed based on measured influent iron data, see GWa_b_input.xlsx
K 0.041
Mg 1.074
Mn 316 ug/kgw
N 0.149
Na 8.264
S(6) 0.807
#As_five 0.267 umol/kgw
As_three 1.188 umol/kgw
-water 1 # kg
END
TRANSPORT
-cells 40
-shifts 700
-flow_direction Forward
# -initial_time 0
-time_step 33231
-boundary_conditions flux flux
-diffusion_coefficient 0.0
-lengths 40*.0025
-dispersivities 40*0.0000245
-correct_disp true
-punch_cells 40
END
dlparkhurst:
I'm not sure where to begin. I think you should first try a batch calculation to get the chemistry right.
Your formulas for KINETICS are not correct. You should not include both the mineral and its component aqueous species. I am not sure your other formulas are correct either. I would start without separating As_three or Fe_di.
I doubt you will reach equilibrium with arsenopyrite. I think it is more likely that arsenic sorbs, precipitates as a trace component of FeS, or precipitates as As2S3 (orpiment).
I have crudely hacked a SOLID_SOLUTION such that arsenic will coprecipitate. Alternatively, you can simply include orpiment as a kinetic reaction or an equilibrium phase.
I have simplified to include Acetate as a kinetic reaction, and I have used llnl.dat because it contains definitions for Acetate.
These comments will not fix all of your problems, but maybe it will give you a start.
--- Code: ---PHASES
FeS(ppt)
FeS + H+ = Fe+2 + HS-
-log_k -3.915
RATES
Acetate
-start
10 mAc = TOT("Acetate")
20 rate = parm(1) * mAc
30 moles = rate * time
35 put(rate,10)
40 save moles
-end
END
USER_GRAPH 1
-headings time Fe As
-axis_titles "Time" "Moles" ""
-axis_scale y_axis auto auto auto auto log
-initial_solutions true
-connect_simulations true
-plot_concentration_vs x
-start
10 GRAPH_X TOTAL_TIME
20 GRAPH_Y TOT("Fe"), TOT("As")
-end
-active true
SOLUTION 1
temp 15
pH 7.87
pe -4
units mmol/kgw
density 1
Alkalinity 5.81
As 1.388 umol/kgw
Ca 1.921
Cl 6.798
Fe 0.895 umol/kgw
K 0.169
Acetate 0.18 mmol/kgw
Mg 2.304
Mn 282 ug/kgw
N 1.357
Na 9.482
S(6) 2.719
-water 1 # kg
END
USE solution 1
KINETICS 1 #Three kinetic reactions for all cells
Acetate
-formula Acetate -1 CH3COOH 1
-parms 1e-05
-tol 1e-08
-step 86400 in 10
SOLID_SOLUTION
Fe-As-S
-comp FeS(ppt) 0 0
-comp Orpiment 0 0
END
--- End code ---
Gunther_Schletter:
Thank you so much for taking the time I really appreciate it. My apologies after reviewing the phreeqc manual and the example block in kinetics I can see the aqueous species aren?t included for precipitation reactions. Just a couple of questions:
1. What function does the Acetate reaction in this example serve in precipitation of iron and arsenic minerals?
2. Is there any particular reason why you chose to do the precipitation reaction using the SOLID_SOLUTIONS datablock?
3. Is the proper way to input a precipitation reaction using the KINETICS block by simply making the mineral phase something like: -formula FeS(ppt) 1? If so is this just relying on the Saturation index to be greater than 0, resulting in precipitation?
dlparkhurst:
1. What function does the Acetate reaction in this example serve in precipitation of iron and arsenic minerals?
The addition of CH3COOH causes reduction. Any carbon added must end up as either C(4) (carbonate species) or C(-4) (methane); there are no other carbon valences in (most) databases. If it is acetate is oxidized to C(4), then an electron acceptor must be reduced. In your system, Fe(3), As(5), or S(6) could be the electron acceptor. The most thermodynamically favorable electron acceptor that is present will be used. If all electron acceptors are exhausted, methane will be produced.
2. Is there any particular reason why you chose to do the precipitation reaction using the SOLID_SOLUTIONS datablock?
I did not think arsenopyrite would precipitate, but I assumed you observed a decrease in As. You will have to pick your reaction for arsenic, which could be sorption, precipitation of orpiment, or coprecipitation with FeS. Maybe you can think of others. I arbitrarily, and perhaps unjustifiably, set up a coprecipitation reaction.
3. Is the proper way to input a precipitation reaction using the KINETICS block by simply making the mineral phase something like: -formula FeS(ppt) 1?
Yes.
If so is this just relying on the Saturation index to be greater than 0, resulting in precipitation?
KINETICS relies on the RATES equation that you use. Logically, precipitation of a mineral should occur only when supersaturated, but that requires that your RATES equation enforces that condition. A RATES definition will do whatever is programmed.
Gunther_Schletter:
Thanks buddy!
Navigation
[0] Message Index
Go to full version