Skip to content

External Functions

XMapTools includes a set of external functions for calculating structural formulas, thermobarometry and other methods. Source code for all functions is available on the XMapTools GitHub repository.

Table of contents

Structural formulas

The following structural formula functions are available in XMapTools. Each function calculates structural formulas and end-member proportions on a specified oxygen basis.

Aluminosilicate > AlSil. (SF, 5-Ox. basis)

XMapTools External Function: structural formula of aluminosilicates. Version without loop & all Fe as Fe₂O₃. 5 Oxygen-basis.

Amphibole > CaAmp (SF, 23-Ox. basis)

XMapTools External Function: structural formula of Ca-amphibole. Fe₂O₃ added as possible input. Ti ordered onto M2 (Raase 1974).

End-memberT1(4)T2(2)M2(2)M13(2)M4(2)A(1)
Glaucophane (Gln)Si₄Si₄Al,AlMg,Mg,MgNa,NaV
Tremolite (Tr)Si₄Si₄Mg,MgMg,Mg,MgCa,CaV
F-tremolite (Ftr)Si₄Si₄Fe,FeFe,Fe,FeCa,CaV
Tschermakite (Ts)Si₄Si₂,Al₂Al,AlMg,Mg,MgCa,CaV
Pargasite (Prg)Si₄Si₂,Al₂Mg,AlMg,Mg,MgCa,CaNa

Other: Ti, Mn. 23 Oxygen-basis.

Amphibole > CaAmp_Fe3+ (SF, 23-Ox. basis)

XMapTools External Function: structural formula of Ca-amphibole with Fe³⁺ estimation. 23 Oxygen-basis. Not tested.

Biotite > Bt+ (SF, 11-Ox. basis)

XMapTools External Function: structural formula of biotite. Fe₂O₃ added as possible input. Ti assumed to be ordered onto M2, Al onto M1, Mn added (ordered onto M12).

End-memberT1(2)T2(2)M1(1)M2(2)A(1)
PhlogopiteSi,SiSi,AlMgMg,MgK
AnniteSi,SiSi,AlFeFe,FeK
EastoniteSi,SiAl,AlAlMg,MgK
SiderophylliteSi,SiAl,AlAlFe,FeK
Ti-biotiteSi,SiSi,AlMgTi,MgK
Mn-biotiteSi,SiSi,AlMnMn,MnK

11 Oxygen-basis.

Brucite > Brc (SF, 1-Ox. basis)

XMapTools External Function: structural formula of brucite. Version without loop & Fe₂O₃ as possible input. As₂O₃ is used instead of As₂O₅ in XMapTools 3.4.2. 1 Oxygen-basis.

Chlorite > Chl (SF, 14-Ox. basis)

XMapTools External Function: structural formula of chlorite. Ferri-sudoite added; Trincal & Lanari (2016) Clay Min. 51, 675–689. Fe₂O₃ added as possible input. 1 Input: XFe3 = Fe3/(Fe2+Fe3).

End-memberT1(2)T2(2)M1(1)M2-M3(4)M4(1)
Amesite (Ame)Si,SiAl,AlAlMg₄Al
Fe-Amesite (fAme)Si,SiAl,AlAlFe₄Al
Clinochlore (Clc)Si,SiSi,AlMgMg₄Al
Daphnite (Dph)Si,SiSi,AlFeFe₄Al
Sudoite (Sud)Si,SiSi,AlVMg₂,Al₂Al
FerriSudoite (fSud)Si,SiSi,AlVMg₂,Fe₂Al
AlfreeChl (afchl)Si,SiSi,SiMgMg₄Mg

14 Oxygen-basis.

Chloritoid > Ctd (SF, 12-Ox. basis)

XMapTools External Function: structural formula of chloritoid. Version without loop & Fe₂O₃ as possible input.

End-memberT1(2)T2(3)M1(1)M2(2)
Mg-chloritoid (Ctd)Si,SiAl₃AlMg,Mg
Fe-chloritoid (fCtd)Si,SiAl₃AlFe,Fe
Mn-chloritoid (mCtd)Si,SiAl₃AlMn,Mn

12 Oxygen-basis.

Chromite > Chr (SF, 32-Ox. basis)

XMapTools External Function: structural formula of chromite. Version without loop & Fe₂O₃ as possible input. Fe³⁺ estimated using Droop (1987). 32 Oxygen-basis. Not tested in this version.

Clinopyroxene > Cpx (SF, 6-Ox. basis)

XMapTools External Function: structural formula of clinopyroxene. Version without loop & Fe₂O₃ as possible input.

End-memberT1(2)M1(1)M2(1)
Jadeite (Jd)Si,SiAlNa
Diopside (Di)Si,SiMgCa
Hedenbergite (Hd)Si,SiFeCa
Ca-Tschermak (Cats)Si,AlAlCa

6 Oxygen-basis.

Clinopyroxene > Cpx_Fe3+ (SF, 6-Ox. basis)

XMapTools External Function: structural formula of clinopyroxene with Fe³⁺ estimation.

End-memberT1(2)M1(1)M2(1)
Jadeite (Jd)Si,SiAlNa
Diopside (Di)Si,SiMgCa
Hedenbergite (Hd)Si,SiFe²Ca
Ca-Tschermak (Cats)Si,AlAlCa
Acmite (Acm)Si,SiFe³Na

6 Oxygen-basis.

Cordierite > Crd (SF, 18-Ox. basis)

XMapTools External Function: structural formula of cordierite. Version without loop & Fe₂O₃ as possible input.

End-memberT1(2)T2(3)M1(2)
Mg-Cordierite (Crd)Si₅Al₄Mg,Mg
Fe-Cordierite (fCrd)Si₅Al₄Fe,Fe
Mn-Cordierite (mCrd)Si₅Al₄Mn,Mn

18 Oxygen-basis.

Epidote > Ep (SF, 12.5-Ox. basis)

XMapTools External Function: structural formula of epidote. Version without loop & all iron as Fe³⁺.

End-memberT1(3)M1(1)M2(1)M3(1)A1(2)
Epidote (Ep)Si₃AlAlFeCa,Ca
Fe-epidote (fEp)Si₃FeAlFeCa,Ca
Zoisite (Zo)Si₃AlAlAlCa,Ca
Mn-epidote (mEp)Si₃AlAlMnCa,Ca

12.5 Oxygen-basis.

Feldspar > Fsp (SF, 8-Ox. basis)

XMapTools External Function: structural formula of feldspar. Version without loop & Fe₂O₃ as possible input.

End-memberT1(2)T2(2)M1(1)
Albite (Ab)Si,SiSi,AlNa
Anorthite (An)Si,SiAl,AlCa
Sanidine (Sn)Si,SiSi,AlK

8 Oxygen-basis.

Garnet > Grt (SF, 12-Ox. basis)

XMapTools External Function: structural formula of garnet. Version without loop & Fe₂O₃ as possible input.

End-memberX(3)Y(2)O/T(3)
Almandine (Alm)Fe₃Al₂(SiO₄)₃
Pyrope (Prp)Mg₃Al₂(SiO₄)₃
Grossular (Grs)Ca₃Al₂(SiO₄)₃
Spessartine (Sps)Mn₃Al₂(SiO₄)₃

12 Oxygen-basis.

Garnet > Grt_Fe3+ (SF, 12-Ox. basis)

XMapTools External Function: structural formula of garnet with Fe³⁺ estimation. Method of Droop (1987) implemented.

End-memberX(3)Y(2)O/T(3)
Almandine (Alm)Fe₃Al₂(SiO₄)₃
Pyrope (Prp)Mg₃Al₂(SiO₄)₃
Grossular (Grs)Ca₃Al₂(SiO₄)₃
Spessartine (Sps)Mn₃Al₂(SiO₄)₃
Andradite (And)Ca₃Fe₂(SiO₄)₃

12 Oxygen-basis.

Ilmenite > Ilm (SF, 3-Ox. basis)

XMapTools External Function: structural formula of ilmenite. Approximation of Fe³⁺ and Fe²⁺; works fine with Ca-Na-K ignored.

End-memberFormula
Ilmenite (Ilm)Fe(1)Ti(1)O(3)
Mn-Ilmenite (mIlm)Mn(1)Ti(1)O(3)
Hematite (Hem)Fe(2)O(3)

3 Oxygen-basis.

Magnetite > Mag (SF, 4-Ox./3-cat. basis)

XMapTools External Function: structural formula of magnetite. Version without loop & Fe₂O₃ as possible input. Normalized to 3 cations (assuming 4 oxygen). 4 Oxygen-basis.

Olivine > Ol (SF, 4-Ox. basis)

XMapTools External Function: structural formula of olivine. Version without loop & Fe₂O₃ as possible input.

End-memberFormula
Forsterite (Fo)Mg(2)Si(1)O(4)
Fayalite (Fa)Fe(2)Si(1)O(4)
Tephroite (Tep)Mn(2)Si(1)O(4)

4 Oxygen-basis.

Orthopyroxene > Opx (SF, 3-Ox. basis)

XMapTools External Function: structural formula of orthopyroxene. Version without loop & Fe₂O₃ as possible input.

End-memberT1(1)M1(1)
Enstatite (En)Si₂Mg₂
Ferrosilite (Fs)Si₂Fe₂
Tschermak-px (Mgts)Si,AlAl,Mg

3 Oxygen-basis.

Rutile > Rt (SF, 2-Ox. basis)

XMapTools External Function: structural formula of rutile. Version without loop & Fe₂O₃ as possible input. 2 Oxygen-basis.

Serpentine > Srp (SF, 14-Ox. basis)

XMapTools External Function: structural formula of serpentine. Number of oxygen changed from 14.5 to 14. Ratio Si/(Si+Fe+Mg) added. Version without loop & Fe₂O₃ as possible input. 14 Oxygen-basis.

Spinel > Spl (SF, 4-Ox. basis)

XMapTools External Function: structural formula of spinel. Version without loop & Fe₂O₃ as possible input. Fe³⁺ estimated using Droop (1987).

Al spinels (AlSpinel):

End-memberX(1)Y(2)
Hercynite (Hc)FeAl₂
Spinel (Spl)MgAl₂
Galaxite (Glx)MnAl₂
Gahnite (Ghn)ZnAl₂

Cr spinels (CrSpinel):

End-memberX(1)Y(2)
Chromite (Chr)FeCr₂
Magnesiochromite (mChr)MgCr₂
Nichromite (Nic)NiCr₂

Fe spinels (FeSpinel):

End-memberX(1)Y(2)
Magnesioferrite (Mfr)MgFe₂
Magnetite (Mag)FeFe₂
Ulvospinel (tSpl)TiFe₂
Jacobsite (Jac)MnFe₂
Franklinite (Frk)ZnFe₂
Trevorite (Tre)NiFe₂

Olivine spinels (OlSpinel):

End-memberX(1)Y(2)
Ringwoodite (Rwd)SiMg₂

4 Oxygen-basis. Calculated assuming equipartition of Fe²⁺/Mg²⁺/Mn²⁺/Zn²⁺/Ni. Not tested.

Staurolite > St (SF, 22-Ox. basis)

XMapTools External Function: structural formula of staurolite. Version without loop & Fe₂O₃ as possible input.

End-memberZ(11)Y(2)X(4)
Staurolite (St)Si(4)Al(7)Al,AlFe₄
Mg-Staurolite (Mst)Si(4)Al(7)Al,AlMg₄
Mn-Staurolite (MnSt)Si(4)Al(7)Al,AlMn₄

24 Oxygen-basis.

White mica > Mica (SF, 11-Ox. basis)

XMapTools External Function: structural formula of white mica (generic). Version without loop & Fe₂O₃ as possible input.

End-memberT1(2)T2(2)M1(1)M2(2)A(1)
Celadonite-Mg (Cel)Si,SiSi,SiVAl,MgK
Celadonite-Fe (fCel)Si,SiSi,SiVAl,FeK
Muscovite (Ms)Si,SiSi,AlVAl,AlK
Paragonite (Pg)Si,SiSi,AlVAl,AlNa
Pyrophyllite (Prl)Si,SiSi,SiVAl,AlV

Not considered: Biotite (Si,Si | Si,Al | MgFe | MgFeTi | K). 11 Oxygen-basis.

Thermobarometry and other methods

Function headers for thermobarometry and other methods. Source code is available on the XMapTools GitHub repository. Several functions are taken from the PTtoolbox package of Joshua Laughton.

Map-mode

Amphibole > T.Amp (all calibrations)

XMapTools External Function: amphibole thermobarometry. 23 Oxygen-basis.

Output variables:

  • T_HB94: Holland & Blundy (1994) – no quartz
  • T_HB94q: Holland & Blundy (1994) – with quartz

Biotite > T.Bt (all calibrations)

XMapTools External Function: biotite thermobarometry. 22 Oxygen-basis.

Output variables:

  • T_W20: Wu & Chen (2015)
  • T_H05: Henry et al. (2005)

Chlorite > T.Chl (all calibrations)

XMapTools External Function: chlorite thermometry (all calibrations). Fe₂O₃ added as possible input. 14 Oxygen-basis.

Output variables:

  • T_L14_2: Lanari et al. (2014) Contrib. Miner. Petrol. 167:167–968 (LWV2)
  • T_B13: Bourdelle et al. (2013) Contrib. Miner. Petrol. 165:723–735
  • T_ZF95: Zang & Fyfe (1995) Miner. Depos. 30:30–38
  • T_HV91: Hillier & Velde (1991) Clay Miner. 26:149–168
  • T_J91: Jowett (1991) Program Abstr. 16:A62
  • T_C88: Cathelineau (1988) Clay Miner. 23:471–485
  • T_KM87: Kranidiotis & MacLean (1987) Econ. Geol. 82:1898–1911
  • T_CN85: Cathelineau & Nieva (1985) Contrib. Miner. Petrol. 91:235–244

Monazite > Age.Mz (Montel 1996)

XMapTools External Function: monazite geochronology.

Output variables:

  • Age_M96: Montel (1996)

Input variables: ThO₂, UO₂ and PbO in wt% (use the converter if your data were calibrated in a different format).

Quartz > T.Qz (all calibrations)

XMapTools External Function: quartz thermobarometry (all calibrations).

Output variables:

  • T_WW06: Wark & Watson (2006)
  • T_KO08: Kawasaki & Osanai (2008)
  • T_T10: Thomas et al. (2010)
  • T_HA12: Huang & Audétat (2012)
  • T_O22: Osborne et al. (2022) CPM 177:31

Input variables: TiO₂ (wt%).

Rutile > T.Rt (all calibrations)

XMapTools External Function: rutile thermobarometry (all calibrations).

Output variables:

  • T_Z04: Zack et al. (2004)
  • T_W06: Watson et al. (2006)
  • T_FW07: Ferry & Watson (2007), CMP 154:429–437
  • T_T07: Tomkins et al. (2007)

Input variables: ZrO₂ (wt%).

Titanite > T.Ttn (all calibrations)

XMapTools External Function: titanite thermometry (all calibrations).

Output variables:

  • T_H08: Hayden et al. (2008)

White mica > P.Phg (all calibrations)

XMapTools External Function: phengite barometry. 11 Oxygen-basis.

Output variables:

  • P_MS87: Massone & Schreyer (1987)

Zircon > T.Zrn (all calibrations)

XMapTools External Function: zircon thermobarometry (all calibrations).

Output variables:

  • T_W06: Watson et al. (2006)
  • T_FW07: Ferry & Watson (2007), CMP 154:429–437

Multi-equilibrium

Amphibole > T.Grt-Hbl (all calibrations)

XMapTools External Function: Garnet-Hornblende thermometry. 12 Oxygen-basis for Garnet, 23 Oxygen-basis for Hornblende.

Output variables:

  • T_GP84: Graham & Powell (1984)
  • T_Per85: Perchuk et al. (1985)
  • T_Pow85: Powell (1985)
  • T_R00: Ravna (2000)

Biotite > T.Grt-Bt (all calibrations)

XMapTools External Function: Garnet-Biotite thermometry. 12 Oxygen-basis for Garnet, 11 Oxygen-basis for Biotite.

Output variables:

  • T_T76: Thompson (1976)
  • T_GA77: Goldman & Albee (1977)
  • T_HL77: Holdaway & Lee (1977)
  • T_FS78: Ferry & Spear (1978)
  • T_HS82: Hodges & Spear (1982)
  • T_PL83: Perchuk & Lavrent'eva (1983)
  • T_GS84: Ganguly & Saxena (1984)
  • T_IM85: Indares & Martignole (1985)
  • T_P85: Perchuk et al. (1985)
  • T_D91: Dasgupta et al. (1991)
  • T_B92: Bhattacharya et al. (1992)

Chlorite > T.Grt-Chl (all calibrations)

XMapTools External Function: Garnet-Chlorite thermometry. 12 Oxygen-basis for Garnet, 14 Oxygen-basis for Chlorite.

Output variables:

  • T_DH86: Dickenson & Hewitt (1986)
  • T_G90: Grambling (1990)
  • T_P91: Perchuk (1991)

Clinopyroxene > T.Grt-Cpx (all calibrations)

XMapTools External Function: Garnet-Clinopyroxene thermometry. 12 Oxygen-basis for Garnet, 6 Oxygen-basis for Clinopyroxene.

Output variables:

  • T_MH72: Mysen & Heier (1972)
  • T_RG74: Raheim & Green (1974)
  • T_MG78: Mori & Green (1978)
  • T_EG79: Ellis & Green (1979)
  • T_S79: Saxena (1979)
  • T_D80: Dahl (1980)
  • T_P85: Powell (1985)
  • T_K88: Krogh (1988)
  • T_A94: Ai (1994)
  • T_R00: Ravna (2000)
  • T_N09: Nakamura (2009)

Cordierite > T.Grt-Crd (all calibrations)

XMapTools External Function: Garnet-Cordierite thermometry. 12 Oxygen-basis for Garnet, 18 Oxygen-basis for Cordierite.

Output variables:

  • T_C71: Currie (1971)
  • T_T76: Thompson (1976)
  • T_HL77: Holdaway & Lee (1977)
  • T_P85: Perchuk et al. (1985)
  • T_B88: Bhattacharya et al. (1988)
  • T_B93: Bhattacharya (1993)

Ilmenite > T.Grt-Ilm (all calibrations)

XMapTools External Function: Garnet-Ilmenite thermometry. 12 Oxygen-basis for Garnet, 3 Oxygen-basis for Ilmenite. Not tested.

Output variables:

  • T_P87: Pownceby et al. (1987)
  • T_P91: Pownceby et al. (1991)
  • T_M10: Martin et al. (2010)

Orthopyroxene > T.Grt-Opx (all calibrations)

XMapTools External Function: Garnet-Orthopyroxene thermometry. 12 Oxygen-basis for Garnet, 6 Oxygen-basis for Orthopyroxene.

Output variables:

  • T_MG78: Mori & Green (1978)
  • T_D80: Dahl (1980)
  • T_R83: Raith et al. (1983)
  • T_H84: Harley (1984)
  • T_LG84: Lee & Ganguly (1984)
  • T_SB84: Sen & Bhattacharya (1984)
  • T_P85: Perchuk et al. (1985)
  • T_LG88: Lee & Ganguly (1988)
  • T_AP89: Aranovich & Podlesskii (1989)
  • T_PL90: Perchuk & Lavrente'va (1990)
  • T_B91: Bhattacharya et al. (1991)

White Mica > T.Grt-Ph (all calibrations)

XMapTools External Function: Garnet-Phengite thermometry. 12 Oxygen-basis for Garnet, 11 Oxygen-basis for Phengite.

Output variables:

  • T_KR88: Krogh & Raheim (1978)
  • T_GH82: Green & Hellman (1982)
  • T_HF88: Hynes & Forest (1988)
  • T_W02: Wu et al. (2002)

XMapTools - Quantitative compositional mapping