Author Topic: Mixed oxidation states in CalcZAF  (Read 8374 times)

jeffchen

  • Graduate
  • **
  • Posts: 6
Re: Mixed oxidation states in CalcZAF
« Reply #30 on: February 11, 2018, 03:01:19 pm »
I understand the purpose of recalculating the oxidation state of multi-valent elements is to satisfy the "assumed chemical formula" of a crystalline phase. In the context of high temperature metallurgy, many phases do not really have fixed "formula", an example is magnetite. At high temperature(~1450oC) in air, magnetite can take significant more Fe3+ so that Fe3+/Fe2+ in it is greater than 2. 

I'd appreciate if someone could educate me to what extent mineral phases are close to their the theoretical chemical formulas in geological context.

Hi Jeff,
I am not a geologist so I probably can't help you, but I have a question.  Are you saying, for example, that in the case of magnetite Fe3O4, which is ideally composed of one FeO molecule and one Fe2O3 molecule, that at high temperatures, the ratio of FeO to Fe2O3 is no longer 1:1?  That there are more Fe2O3 molecules than FeO molecules in high temperature magnetite?
john

Hi John,

That's correct, I attached a FeO-Fe2O3 phase diagram at 1atm presssure. As you can see the magnetite can have more Fe2O3 than Fe3O4, it starts at around 1100oC and reaches maximum at around 1800oC.

Probeman

  • Emeritus
  • *****
  • Posts: 1883
  • Never sleeps...
    • John Donovan
Re: Mixed oxidation states in CalcZAF
« Reply #31 on: February 11, 2018, 05:08:55 pm »
Hi Jeff,
I learn something new everyday!     :)

So in natural magnetites, what is the observed range of compositions?   I guess this is what you were asking about in your original post?   

Maybe I should ask, if stoichiometric Fe3O4 is 72.36 wt% iron and 27.64 wt.% oxygen, based on that phase diagram you posted, how much would we expect to see the Fe concentration change in natural materials (on Earth!)?

Again apologies for asking basic geology questions.
john
« Last Edit: February 11, 2018, 09:55:55 pm by Probeman »
The only stupid question is the one not asked!

John Donovan

  • Administrator
  • Emeritus
  • *****
  • Posts: 2443
  • Other duties as assigned...
    • Probe Software
Re: Mixed oxidation states in CalcZAF
« Reply #32 on: August 19, 2019, 03:58:11 pm »
It has taken some time but with the help of a number of friends (Andrew Locock, Anette von der Handt, John Fournelle, and Emma Bullock), we have finally realized Brian Joy's most excellent suggestion to implement a ferrous/ferric calculation into the matrix correction physics.

The implementation of this feature in Probe for EPMA will be described in this post and others soon to follow:

https://probesoftware.com/smf/index.php?topic=92.msg8591#msg8591

But I thought I'd start here with the implementation in CalcZAF. Though both PFE and CalcZAF are using exactly the same code for the ferrous/ferric calculation and subsequent treatment in the ZAFSmp routine as shown here (and hosted on Github):

Code: [Select]
' Calculate element relative to stoichiometric oxygen based on previous iteration calculation of oxygen
If zaf.il%(zaf.in0%) = 0 Then    ' if calculating oxygen by stoichiometry
For i% = 1 To zaf.in1%
If zaf.il%(i%) = 15 Then
r1!(i%) = (r1!(zaf.in0%) / zaf.atwts!(zaf.in0%)) * sample(1).StoichiometryRatio! * zaf.atwts!(i%)
zaf.ksum! = zaf.ksum! + r1!(i%)
zaf.krat!(i%) = r1!(i%)
End If
Next i%

' Calculate amount of stoichiometric oxygen and add to total
r1!(zaf.in0%) = 0#
For i% = 1 To zaf.in1%
r1!(zaf.in0%) = r1!(zaf.in0%) + r1!(i%) * zaf.p1!(i%)
Next i%

' Calculate equivalent oxygen from halogens and subtract from calculated oxygen if flagged
If UseOxygenFromHalogensCorrectionFlag Then
r1!(zaf.in0%) = r1!(zaf.in0%) - ConvertHalogensToOxygen(zaf.in1%, sample(1).Elsyms$(), sample(1).DisableQuantFlag%(), r1!())
If ierror Then Exit Sub
End If

' Calculate excess oxygen from ferric Fe
If sample(1).FerrousFerricCalculationFlag Then
Call ConvertFerrousFerricRatioFromComposition(zaf.in0%, zaf.Z%(), zaf.atwts!(), r1!(), sample(1).numcat%(), sample(1).numoxd%(), zaf.p1!(), sample(1).DisableQuantFlag%(), sample(1).FerrousFerricTotalCations!, sample(1).FerrousFerricTotalOxygens!, tFerricToTotalIronRatio!, tFerricOxygen!, tFe_as_FeO!, tFe_as_Fe2O3!)
If ierror Then Exit Sub
r1(zaf.in0%) = r1(zaf.in0%) + tFerricOxygen! / 100#
End If

' Add to sum
zaf.ksum! = zaf.ksum! + r1!(zaf.in0%)
End If

So here's an example in CalcZAF of a magnetite unknown using magnetite as a standard:



And calculating Fe as FeO we see the expected low totals due to some of the iron being Fe2O3:

Magnetite

STANDARD PARAMETERS (TOA= 40):

 ELEMENT  STDNUM STDCONC STDKFAC   Z-BAR  ABSCOR  FLUCOR  ZEDCOR  ZAFCOR                 
   Fe Ka      39  72.359   .6810 21.0246   .9969  1.0000  1.0660  1.0626

 ELEMENT STP-POW BKS-COR   F(x)e   F(x)s      Eo      Ec   Eo/Ec
   Fe Ka  1.0935   .9748   .9846   .9877   15.00  7.1120  2.1091


SAMPLE: 2, TOA: 40, ITERATIONS: 1, Z-BAR: 21.99148

 ELEMENT  ABSCOR  FLUCOR  ZEDCOR  ZAFCOR STP-POW BKS-COR   F(x)u      Ec   Eo/Ec    MACs uZAF/sZAF
   Fe ka   .9974  1.0000  1.0530  1.0503  1.0753   .9793   .9871  7.1120  2.1091 53.4587  .9883946

 ELEMENT   K-RAW K-VALUE ELEMWT% OXIDWT% ATOMIC% FORMULA KILOVOL                                       
   Fe ka 1.00023  .68111  71.536  92.031  50.000   1.000   15.00                                       
   O                        .000    .000    .000    .000
   O                      20.495   -----  50.000   1.000
   TOTAL:                 92.031  92.031 100.000   2.000

So by calculating Fe as FeO we get 71.536 wt% Fe, but are missing about 7 wt% excess oxygen from ferric iron. Now clicking on the Calculation Options button in CalcZAF we see a new checkbox and two text fields for the mineral stoichiometry.



Since this is a magnetite, that would be 3 total cations and 4 totals oxygens. Other common minerals as follows (I'm no geologist so please let me know if I got these wrong):

Mineral   Cations  Oxygens
hematite     2        3
olivine      3        4
ilmenite     2        3
garnet       8       12
feldspar     5        8
pyroxene     4        6

With this flag checked and the 3 cations and 4 oxygens specified we now get this result:

Magnetite

STANDARD PARAMETERS (TOA= 40):

 ELEMENT  STDNUM STDCONC STDKFAC   Z-BAR  ABSCOR  FLUCOR  ZEDCOR  ZAFCOR                 
   Fe Ka      39  72.359   .6810 21.0246   .9969  1.0000  1.0660  1.0626

 ELEMENT STP-POW BKS-COR   F(x)e   F(x)s      Eo      Ec   Eo/Ec
   Fe Ka  1.0935   .9748   .9846   .9877   15.00  7.1120  2.1091

SAMPLE: 2, TOA: 40, ITERATIONS: 2, Z-BAR: 21.02464

 ELEMENT  ABSCOR  FLUCOR  ZEDCOR  ZAFCOR STP-POW BKS-COR   F(x)u      Ec   Eo/Ec    MACs uZAF/sZAF
   Fe ka   .9969  1.0000  1.0660  1.0626  1.0935   .9748   .9877  7.1120  2.1091 55.6448  1.000000

 ELEMENT   K-RAW K-VALUE ELEMWT% OXIDWT% ATOMIC% FORMULA KILOVOL                                       
   Fe ka 1.00023  .68111  72.376  93.111  42.857   1.000   15.00                                       
   O                        .000    .000    .000    .000
   O                      27.647   -----  57.143   1.333
   TOTAL:                100.023 100.023 100.000   2.333

Note that not only did our total get much better, but our Fe wt% went from 71.536 to 72.376, just from adding the ferric oxygen into the matrix correction!  This is simply because Fe Ka is absorbed more by oxygen, than by iron and therefore needs to be included in the matrix correction phsyics as suggested originally by Brian Joy. 

But of course the cool part is the new output as seen here:

FerricIronToTotalIronRatio:    .6667
Ferrous Oxide (FeO):         30.6769
Ferric Oxide (Fe2O3):        68.1855
Excess Oxygen from Fe2O3:     6.8316

Right now it outputs this twice (once for each iteration loop), so I'll need to fix that, but the new code calculates the ferric to total iron ratio, the ferrous and ferric iron, and the excess oxygen from the ferric iron.

Please download and try it out and let me know what you think.  I have no idea how much of an effect this will have on ones calculated temperatures and pressures, so let us know if you find anything interesting.
John J. Donovan, Pres. 
(541) 343-3400

"Not Absolutely Certain, Yet Reliable"