This page was generated from
docs/benchmarking/sulfur_saturation.ipynb.
Interactive online version:
.
Benchmarking models for sulfur saturation
This notebook benchmarks the models for sulfur saturation in VolFe where possible.
Python set-up
[1]:
import pandas as pd
import VolFe as vf
import math
Version of VolFe
[2]:
vf.__version__
[2]:
'0.4.1'
Composition and conditions used for benchmarking
Average of high-SiO2 pillow-rim glasses in HSDP from Mauna Kea volcano from Brounce et al. (2017).
[3]:
my_analysis = {
"Sample": "Hawaiian basalt",
"T_C": 1200.0, # Temperature in 'C
"SiO2": 51.29, # wt%
"TiO2": 2.50, # wt%
"Al2O3": 13.70, # wt%
"FeOT": 11.04, # wt%
"MnO": 0.02, # wt%
"MgO": 6.70, # wt%
"CaO": 11.03, # wt%
"Na2O": 2.27, # wt%
"K2O": 0.43, # wt%
"P2O5": 0.21, # wt%
"H2O": 3., # wt%
"CO2ppm": 1000., # ppm
"STppm": 0., # ppm
"Xppm": 0.0, # ppm
"Fe3FeT": 0.1,
}
my_analysis = pd.DataFrame(my_analysis, index=[0])
PT = {"P":1000.}
PT["T"]=1200.
melt_wf=vf.melt_comp(0.,my_analysis)
melt_wf['CO2'] = my_analysis.loc[0.,"CO2ppm"]/1000000.
melt_wf["H2OT"] = my_analysis.loc[0,"H2O"]/100.
melt_wf['ST'] = my_analysis.loc[0.,"STppm"]/1000000.
melt_wf['CT'] = (melt_wf['CO2']/vf.species.loc['CO2','M'])*vf.species.loc['C','M']
melt_wf['HT'] = (melt_wf['H2OT']/vf.species.loc['H2O','M'])*(2.*vf.species.loc['H','M'])
melt_wf['XT'] = my_analysis.loc[0.,"Xppm"]/1000000.
melt_wf["Fe3FeT"] = my_analysis.loc[0.,"Fe3FeT"]
Models for Sulfide Content at Sulfide Saturation (S2-CSS)
option = SCSS, function = SCSS
Models calculated using PySulfSat have been benchmarked in PySulfSat:
‘Fortin15_pss’ Fortin et al. (2015) using PySulfSat by Wieser & Gleeson (2023)
‘Liu21_pss’ Liu et al. (2021) using PySulfSat by Wieser & Gleeson (2023)
‘ONeill22_pss’ O’Neill & Mavrogenes (2022) using PySulfSat by Wieser & Gleeson (2023)
‘ONeill21_pss’ O’Neill (2021) using PySulfSat by Wieser & Gleeson (2023)
‘Smythe17_pss’ Smythe et al. (2017) using PySulfSat by Wieser & Gleeson (2023)
‘Li22_pss’ Li and Zhang (2022) using PySulfSat by Wieser and Gleeson (2023)
‘Blanchard21eq11_pss’ Eq. (11) from Blanchard et al. (2021) using PySulfSat by Wieser and Gleeson (2023)
‘Blanchard21eq12_pss’ Eq. (12) from Blanchard et al. (2021) using PySulfSat by Wieser and Gleeson (2023)
The following models do not have material available in the original papers for benchmarking:
‘ONeill21hyd’ Eq. (10.34, 10.43, 10.45, 10.46, 10.49) from O’Neill (2021)
‘ONeill21dil’ Eq. (10.34, 10.43, 10.45, 10.46) including water dilution from O’Neill (2021)
‘Liu07’ Eq. (9) in Liu et al. (2007)
‘ONeill21’ Eq. (10.34, 10.43, 10.45, 10.46) excluding water dilution from O’Neill (2021)
Supplementary spreadsheet (sulfide,SCSS=ONeill21.xlsx)
Cell AR14: 7.437
Matches to 3 decimal places: Note spreadsheet uses +273 to convert to K, rather than 273.15 used in VolFe so T in spreadsheet = 1200.15 ‘C
[4]:
my_models = [["SCSS", "ONeill21"],["sulfide", "ONeill21"]]
my_models = vf.make_df_and_add_model_defaults(my_models)
math.log(vf.SCSS(PT,melt_wf,models=my_models))
[4]:
7.4369918428928115
Models for Sulfate Content at Anhydrite Saturation (S6+CAS)
option = SCAS, function = SCAS
Models calculated using PySulfSat have been benchmarked in PySulfSat:
‘Chowdhury19_pss’ Chowdhury & Dasgupta (2019) using PySulfSat by Wieser and Gleeson (2023)
‘Zajacz19_pss’ Zajacz and Tsay (2019) using PySulfSat by Wieser and Gleeson (2023)
The following models do not have material available in the original papers for benchmarking:
‘Liu23’ Eq. (4) Liu et al. (2023)
There are no other models to benchmark in VolFe.