Beginners > PHREEQC manual examples

Example 9 Warning message.

(1/1)

serhatttt:
Hello everyone,

I studied example 9 in the manual. However, When I finished my simulation, I got "WARNING: Negative moles in solution 1 for Fe_di" messages in the output file. The graphic simulated doesn't seem as in manual Example 9.

Could you please help me with this problem?
Thank you.

I wrote the code as follows.

TITLE Example 9.--Kinetically controlled oxidation of ferrous iron. Decoupled valence states of iron.

SOLUTION_MASTER_SPECIES
Fe_di      Fe_di+2   0.0    Fe_di    55.847
Fe_tri     Fe_tri+3  0.0    Fe_tri   55.847

SOLUTION_SPECIES
      Fe_di+2 = Fe_di+2
              log_k   0.0
      Fe_tri+3 = Fe_tri+3
              log_k   0.0
#
# Fe+2 species
#
      Fe_di+2 + H2O = Fe_diOH+ + H+
              log_k     -9.5
         delta_h   13.20 kcal
#
#... and also other Fe+2 species
#
#
# Fe+3 species
#
      Fe_tri+3 + H2O = Fe_triOH+2 + H+
             log_k      -2.19
        delta_h    10.4 kcal
#
#...and also other Fe+3 species
#

PHASES
Goethite
      Fe_triOOH + 3 H+ = Fe_tri+3 + 2 H2O
      log_k      -1.0
END

SOLUTION 1
      pH      7.0
      pe      10.0   O2(g) -0.67
      Fe_di   0.1
      Na      10.
      Cl      10. charge
     
EQUILIBRIUM_PHASES 1
      O2(g)    -0.67
     
RATES
Fe_di_ox
-start
10 Fe_di = TOT("Fe_di")
20 if (Fe_di <= 0) then goto 200   
30 p_o2 = SR("O2(g)")
40 moles = (2.91e-9 + 1.33e12 * (ACT("OH-"))^2 * p_o2) * Fe_di * TIME
200 SAVE moles
-end

KINETICS 1
Fe_di_ox
      -formula Fe_di -1.0 Fe_tri 1.0
      -steps 100 400 3100 10800 21600 5.04e4 8.64e4 1.728e5 1.728e5 1.728e5 1.728e5
      -step_divide 1e-4
     
INCREMENTAL_REACTIONS true
SELECTED_OUTPUT
      -file ex9.sel
      -reset false

USER_PUNCH
      -headings Days Fe(2) Fe(3) pH si_goethite
10 PUNCH SIM_TIME / 3600 / 24, TOT("Fe_di")*1e6, TOT("Fe_tri")*1e6, -LA("H+"),\
            SI("Goethite")

USER_GRAPH Example 9
       -headings _time_ Fe(2) Fe(3) pH
       -chart_title "Oxidation of Ferrous Iron"
       -axis_titles "Time, in days" "Micromole per kilogram water" "pH"
       -axis_scale secondary_y_axis 4.0 7.0 1.0 0.5
-start
10 GRAPH_X TOTAL_TIME / 3600 / 24
20 GRAPH_Y TOT("Fe_tri")*1e6, TOT("Fe_di")*1e6
30 GRAPH_SY -LA("H+")
-end
END








dlparkhurst:
The message is only a "warning". As the rate integration proceeded, a negative concentration was produced, which is not possible; however, the numerical method recognizes a problem, and backs up to the last good point in the integration and then proceeds with a smaller time step. As long as the messages are warnings, the results should be reliable. "Error" messages indicate unrecoverable problems with the calculation.

The script in the manual for example 9 is not complete. Most of the species definitions were not included in the interest of space. If you are using PhreeqcI, the complete script can be found at C:\Program Files (x86)\USGS\Phreeqc Interactive 3.7.3-15968\examples\ex9.pqi, which is reproduced below.



--- Code: ---DATABASE C:\Program Files (x86)\USGS\Phreeqc Interactive 3.7.3-15968\database\phreeqc.dat
TITLE Example 9.--Kinetically controlled oxidation of ferrous
                  iron. Decoupled valence states of iron.
SOLUTION_MASTER_SPECIES
Fe_di              Fe_di+2    0.0     Fe_di              55.847
Fe_tri             Fe_tri+3   0.0     Fe_tri             55.847
SOLUTION_SPECIES
Fe_di+2 = Fe_di+2
        log_k   0.0
Fe_tri+3 = Fe_tri+3
        log_k   0.0
#
# Fe+2 species
#
Fe_di+2 + H2O = Fe_diOH+ + H+
        log_k   -9.5
        delta_h 13.20   kcal
#
#... and also other Fe+2 species
#
Fe_di+2 + Cl- = Fe_diCl+
        log_k   0.14
Fe_di+2 + CO3-2 = Fe_diCO3
        log_k   4.38
Fe_di+2 + HCO3- = Fe_diHCO3+
        log_k   2.0
Fe_di+2 + SO4-2 = Fe_diSO4
        log_k   2.25
        delta_h 3.230   kcal
Fe_di+2 + HSO4- = Fe_diHSO4+
        log_k   1.08
Fe_di+2 + 2HS- = Fe_di(HS)2
        log_k   8.95
Fe_di+2 + 3HS- = Fe_di(HS)3-
        log_k   10.987
Fe_di+2 + HPO4-2 = Fe_diHPO4
        log_k   3.6
Fe_di+2 + H2PO4- = Fe_diH2PO4+
        log_k   2.7
Fe_di+2 + F- = Fe_diF+
        log_k   1.0
#
# Fe+3 species
#
Fe_tri+3 + H2O = Fe_triOH+2 + H+
        log_k   -2.19
        delta_h 10.4    kcal
#
#... and also other Fe+3 species
#
Fe_tri+3 + 2 H2O = Fe_tri(OH)2+ + 2 H+
        log_k   -5.67
        delta_h 17.1    kcal
Fe_tri+3 + 3 H2O = Fe_tri(OH)3 + 3 H+
        log_k   -12.56
        delta_h 24.8    kcal
Fe_tri+3 + 4 H2O = Fe_tri(OH)4- + 4 H+
        log_k   -21.6
        delta_h 31.9    kcal
2 Fe_tri+3 + 2 H2O = Fe_tri2(OH)2+4 + 2 H+
        log_k   -2.95
        delta_h 13.5    kcal
3 Fe_tri+3 + 4 H2O = Fe_tri3(OH)4+5 + 4 H+
        log_k   -6.3
        delta_h 14.3    kcal
Fe_tri+3 + Cl- = Fe_triCl+2
        log_k   1.48
        delta_h 5.6     kcal
Fe_tri+3 + 2 Cl- = Fe_triCl2+
        log_k   2.13
Fe_tri+3 + 3 Cl- = Fe_triCl3
        log_k   1.13
Fe_tri+3 + SO4-2 = Fe_triSO4+
        log_k   4.04
        delta_h 3.91    kcal
Fe_tri+3 + HSO4- = Fe_triHSO4+2
        log_k   2.48
Fe_tri+3 + 2 SO4-2 = Fe_tri(SO4)2-
        log_k   5.38
        delta_h 4.60    kcal
Fe_tri+3 + HPO4-2 = Fe_triHPO4+
        log_k   5.43
        delta_h 5.76    kcal
Fe_tri+3 + H2PO4- = Fe_triH2PO4+2
        log_k   5.43
Fe_tri+3 + F- = Fe_triF+2
        log_k   6.2
        delta_h 2.7     kcal
Fe_tri+3 + 2 F- = Fe_triF2+
        log_k   10.8
        delta_h 4.8     kcal
Fe_tri+3 + 3 F- = Fe_triF3
        log_k   14.0
        delta_h 5.4     kcal
PHASES
Goethite
        Fe_triOOH + 3 H+ = Fe_tri+3 + 2 H2O
        log_k   -1.0
END
SOLUTION 1
        pH  7.0
        pe 10.0  O2(g) -0.67
        Fe_di  0.1
        Na  10.
        Cl  10.  charge
EQUILIBRIUM_PHASES 1
        O2(g)           -0.67
RATES
Fe_di_ox
  -start
  10  Fe_di = TOT("Fe_di")
  20  if (Fe_di <= 0) then goto 200
  30  p_o2 = SR("O2(g)")
  40  moles = (2.91e-9 + 1.33e12 * (ACT("OH-"))^2 * p_o2) * Fe_di * TIME
  200 SAVE moles
  -end
KINETICS 1
Fe_di_ox
        -formula  Fe_di  -1.0  Fe_tri  1.0
        -steps 100 400 3100 10800 21600 5.04e4 8.64e4 1.728e5 1.728e5 1.728e5 1.728e5
        -step_divide 1e-4
INCREMENTAL_REACTIONS true
SELECTED_OUTPUT
        -file ex9.sel
        -reset false
USER_PUNCH
        -headings Days  Fe(2)  Fe(3)  pH  si_goethite
  10 PUNCH SIM_TIME / 3600 / 24, TOT("Fe_di")*1e6, TOT("Fe_tri")*1e6, -LA("H+"), \
           SI("Goethite")
USER_GRAPH Example 9
        -headings _time_ Fe(2) Fe(3) pH
        -chart_title "Oxidation of Ferrous Iron"
        -axis_titles "Time, in days" "Micromole per kilogram water" "pH"
        -axis_scale secondary_y_axis 4.0 7.0 1.0 0.5
  -start
  10 GRAPH_X TOTAL_TIME / 3600 / 24
  20 GRAPH_Y TOT("Fe_di")*1e6, TOT("Fe_tri")*1e6
  30 GRAPH_SY -LA("H+")
  -end
END

--- End code ---

serhatttt:
Thank you so much for your kind answer. It works now.

Navigation

[0] Message Index

Go to full version