PhreeqcUsers Discussion Forum

Conceptual Models => Kinetics and rate controlling factors => Topic started by: isaoxer on June 11, 2021, 12:12:21 PM

Title: Manganese oxidation
Post by: isaoxer on June 11, 2021, 12:12:21 PM
Hello,
I am working on the Manganese oxidation and I was trying to compare my data with PHREEQC results.
I tried to model the oxidation of Mn through reading and using some of the script I found on internet and on this forum but it seems I am doing something wrong.

In laboratory, my Mn oxidation is completely abiotic and I have some soil sample in solution. I am using mainly oxygen in equilibrium with the atmosphere (constant O2 flux).

In the script, the LOG K and delta h I got them from phreeqc database and in SOLUTION I just used default concentrations. I read somewhere that in case O2 is constant in the reaction then the amount should be equal to 0.21 atm however I am not sure how true it is.

Could you please show me what I am doing wrong.I will appreciate any help.
The script is here below:

SOLUTION_MASTER_SPECIES
Mn_di              Mn_di+2    0.0     Mn_di              54,92

SOLUTION_SPECIES
Mn_di+2 = Mn_di+2
        log_k   0.0

Mn_di+2 + H2O = Mn_diOH+ + H+
        log_k   -10.590
        delta_h 14.00   kcal

END
SOLUTION 1
        pH  7      charge
        units        mol/l
        O(0)  -0.67
        Mn_di  0.1
        Na  0.01
        C(+4)     0.01
   N(5)     0.01
        water     1
EQUILIBRIUM_PHASES 1
        O (0)           -0.67

Rates
Mn_di_ox
  -start
  10 Mn_di = TOT ("Mn_di")
  20 if (Mn_di <= 0) then goto 200
  30  p_o2 = SR("O (0)")
  40  moles = 1.38* Mn_di * TIME
  200 SAVE moles
  -end

KINETICS 1
Mn_di_ox
        -formula  Mn_di  -1.0 
        -steps 100
        -step_divide 1e-4


USER_PUNCH
        -headings Days  Mn(2)                         
  10 PUNCH SIM_TIME / 60, TOT("Mn_di")*1e6, -LA("H+"),\
   
USER_GRAPH Example 9
        -headings _time_ Mn(2)           pH               
        -chart_title "Oxidation of Manganese"
        -axis_titles "Time, in hours" "Micromole per kilogram water" "pH"
       
  -start
  10 GRAPH_X TOTAL_TIME / 60
  20 GRAPH_Y TOT("Mn_di")*1e6                 #TOT("Mn_di")*1e6
  30 GRAPH_SY -LA("H+")
  -end
END












 
Title: Re: Manganese oxidation
Post by: dlparkhurst on June 11, 2021, 06:03:56 PM
Maybe this will get you started.

In SOLUTION, O(0) is used to define the total dissolved oxygen in the solution. If you want the amount of dissolved oxygen to be in equilibrium with the atmosphere, you specify the phase O2(g), as I have done in the SOLUTION data block.

In RATES, the partial pressure of O2(g) is obtained with the function SR("O2(g)"). Note that you currently do not use this value in the rate equation.

TIME and TOTAL_TIME are always in seconds, so convert them appropriately in RATES, USER_GRAPH, and USER_PUNCH.

The -formula in KINETICS should contain the change in total element concentrations relative to the solution. If you are precipitating MnO2, then use the formula I have given. If you are converting to another aqueous redox state, you will need to define that state as you have defined Mn_di and include it as a positive in the -formula.

Unless there are problems, I would use the default KINETICS parameters (step_divide).

At least for this simulation, you probably do not need to define Mn_di.  You should get the same results if you simply use Mn instead of Mn_di.

Code: [Select]
SOLUTION_MASTER_SPECIES
Mn_di              Mn_di+2    0.0     Mn_di              54.92

SOLUTION_SPECIES
Mn_di+2 = Mn_di+2
        log_k   0.0

Mn_di+2 + H2O = Mn_diOH+ + H+
        log_k   -10.590
        delta_h 14.00   kcal
END

SOLUTION 1
        pH  7      charge
        units        mol/l
        O(0)  1 O2(g) -0.67
        Mn_di  0.1
        Na  0.01
        C(+4)     0.01
        N(5)     0.01
        water     1

EQUILIBRIUM_PHASES 1
        O2(g)           -0.67

Rates
Mn_di_ox
  -start
  10 Mn_di = TOT("Mn_di")
  20 if (Mn_di <= 0) then goto 200
  30  p_o2 = SR("O2(g)")
  40  moles = 1.38* Mn_di * (TIME/3600)
  200 SAVE moles
  -end

KINETICS 1
Mn_di_ox
    -formula  Mn_diO2  -1
    -m        1
    -m0       1
    -tol      1e-08
-steps       100 in 10 steps # seconds

USER_GRAPH Example 9
        -headings _time_ Mn(2)           pH               
        -chart_title "Oxidation of Manganese"
        -axis_titles "Time, in hours" "Micromole per kilogram water" "pH"
  -start
  10 GRAPH_X TOTAL_TIME / 3600
  20 GRAPH_Y TOT("Mn_di")*1e6                 #TOT("Mn_di")*1e6
  30 GRAPH_SY -LA("H+")
  -end
END
Title: Re: Manganese oxidation
Post by: isaoxer on August 19, 2021, 10:01:40 AM
Hello,

Thank you for the help.
I am sorry for my late answer, I was in field trip and it was hard to have any connection.

Getting back to the oxidation of Mn and after reading some reference articles, I know now that in abiotic conditions the heterogeneous oxidation dominates. Therefore I tried to add this part by implementing the surface species function and the adequate rate equation.
Although I tried very hard to understand what was happening and by taking some parts of the script from the example of Fe oxidation. It seems that there is no difference if I put the surface species or no. It is evident I am doing something wrong.

I would very much appreciate your help.
I am so sorry for asking so much help.

SOLUTION_MASTER_SPECIES
Mn_di              Mn_di+2    0.0     Mn_di              54.92

SOLUTION_SPECIES
Mn_di+2 = Mn_di+2
        log_k   0.0

Mn_di+2 + H2O = Mn_diOH+ + H+
        log_k   -10.590
        delta_h 14.00   kcal

SURFACE_SPECIES 1

     Hfo_sOH + Mn+2 = Hfo_sOMn+ + H+
     log_k -0.4
     Hfo_wOH + Mn+2 = Hfo_wOMn+ + H+
     log_k -3.5
 

SURFACE 1

    Hfo_sOH 5e-5 600 7.5
    Hfo_wOH 2e-3


SOLUTION 1
        pH     9.28
        units        mol/l
        O(0)  1 O2(g) -0.67
        Mn_di  0.000055
        Na  0.01
        C(+4)     0.01 as HCO3-
        #N(5)     0.01
        #water     1

EQUILIBRIUM_PHASES 1
        O2(g)           -0.67

             

Rates
Mn_di_ox
  -start
  10 Mn_di = TOT("Mn_di")
  20 if (Mn_di <= 0) then goto 200
  30  p_o2 = SR("O2(g)")
  40  rate = (0.04 + 0.13 *(ACT("OH-"))^2* p_O2)*Mn_di
  50  moles = rate * Time
  60  PRINT moles, (0.04 + 0.13 *(ACT("OH-"))^2* p_O2)* Mn_di* Time
  200 SAVE moles
  -end

KINETICS 1
Mn_di_ox
    -formula  Mn_diO2  -1.0
    -steps     0 1 2 3 4 5 10 20 30 40 50 60 70 80 90 100 120 130

USER_GRAPH

        -headings _time_ Mn(2)            pH         
        -chart_title "Oxidation of Manganese"
        -axis_titles "Time, in hours" "Millimole per kilogram water" "pH"
       
  -start
  10  H_Mn = SURF("Mn", "Hfo") + EDL("Mn", "Hfo")
  20  Hfo_Mn = (mol("Hfo_wOMn+") + mol("Hfo_sOMn+")) * 54.9e6
  30  Mn_t  = Mn_di + Hfo_Mn
  40 GRAPH_X TOTAL_TIME
  50 GRAPH_Y TOT("Mn_di")*178.95*1000   
 #20 GRAPH_Y Mn_t*178.95*1000                 
  60 GRAPH_SY -LA("H+")
  -end
END


Title: Re: Manganese oxidation
Post by: dlparkhurst on August 19, 2021, 05:31:41 PM
Code: [Select]
SURFACE_SPECIES 1
     Hfo_sOH + Mn_di+2 = Hfo_sOMn_di+ + H+
     log_k -0.4
     Hfo_wOH + Mn_di+2 = Hfo_wOMn_di+ + H+
     log_k -3.5