VESIcal: An open-source thermodynamic model engine for mixed volatile (H₂O-CO₂) solubility in silicate melts
Contents
Inter-model Isobar Comparision
This notebook provides code to visualize differences in isobars plotted for an alkali basalt and a rhyolite sample using each of VESIcal’s H2O-CO2 models.
import VESIcal as v
import pandas as pd
%matplotlib inlinealkbasalt = v.Sample({'SiO2': 49.0,
'TiO2': 1.27,
'Al2O3': 19.7,
'Fe2O3': 3.74,
'FeO': 5.33,
'MnO': 0.17,
'MgO': 4.82,
'CaO': 8.85,
'Na2O': 4.23,
'K2O': 1.00,
'P2O5': 0.37,
'H2O': 4.51,
'CO2': 0.25})
rhyolite = v.Sample({'SiO2':77.19,
'TiO2':0.06,
'Al2O3':12.80,
'FeO':0.94,
'MgO':0.03,
'CaO':0.53,
'Na2O':3.98,
'K2O':4.65,
'CO2':0.05,
'H2O':0.26})
sample_table = pd.DataFrame([alkbasalt.get_composition(), rhyolite.get_composition()], index=["Alkali Basalt", "Rhyolite"])
sample_tableLoading...
#check calibration
v.calib_plot(user_data=alkbasalt.get_composition(), model='mixed', zoom='user_data')
v.calib_plot(user_data=rhyolite.get_composition(), model='mixed', zoom='user_data')

alkbasalt_isobars, alkbasalt_isopleths = v.calculate_isobars_and_isopleths(sample=alkbasalt, temperature=1200, pressure_list=[500, 1000, 2000], isopleth_list=[0.5], print_status=True).result
rhyolite_isobars, rhyolite_isopleths = v.calculate_isobars_and_isopleths(sample=rhyolite, temperature=800, pressure_list=[500, 1000, 2000], isopleth_list=[0.5]).resultIac_alkbasalt_isobars, Iac_alkbasalt_isopleths = v.calculate_isobars_and_isopleths(sample=alkbasalt, temperature=1200, pressure_list=[500, 1000, 2000], isopleth_list=[0.5], model="IaconoMarziano").result
Dixon_alkbasalt_isobars, Dixon_alkbasalt_isopleths = v.calculate_isobars_and_isopleths(sample=alkbasalt, temperature=1200, pressure_list=[500, 1000, 2000], isopleth_list=[0.5], model="Dixon").result
Shish_alkbasalt_isobars, Shish_alkbasalt_isopleths = v.calculate_isobars_and_isopleths(sample=alkbasalt, temperature=1200, pressure_list=[500, 1000, 2000], isopleth_list=[0.5], model="ShishkinaIdealMixing").result
Liu_rhyolite_isobars, Liu_rhyolite_isopleths = v.calculate_isobars_and_isopleths(sample=rhyolite, temperature=800, pressure_list=[500, 1000, 2000], isopleth_list=[0.5], model="Liu").resultfig, ax = v.plot(isobars=[alkbasalt_isobars, Iac_alkbasalt_isobars, Dixon_alkbasalt_isobars, Shish_alkbasalt_isobars], isobar_labels=["MagmaSat", "Iacono-Marziano", "Dixon", "Shishkina"])
v.show()
fig, ax = v.plot(isobars=[rhyolite_isobars, Liu_rhyolite_isobars], isobar_labels=["MagmaSat", "Liu"])
v.show()

fig, ax = v.plot(isobars=Shish_alkbasalt_isobars)
v.show()

