This page was generated from docs/Examples/Liquid_Ol_Liq_Themometry/Olivine_Liquid_hygrometry.ipynb. Interactive online version: Binder badge.

Python Notebook Download

Olivine-Liquid Hygrometry

You need to install Thermobar once on your machine, if you haven’t done this yet, uncomment the line below (remove the #)

[1]:
#!pip install Thermobar
[2]:
# Loading various python things
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import Thermobar as pt
[3]:
# Setting plotting parameters
# This sets some plotting things
plt.rcParams["font.family"] = 'arial'
plt.rcParams["font.size"] =12
plt.rcParams["mathtext.default"] = "regular"
plt.rcParams["mathtext.fontset"] = "dejavusans"
plt.rcParams['patch.linewidth'] = 1
plt.rcParams['axes.linewidth'] = 1
plt.rcParams["xtick.direction"] = "in"
plt.rcParams["ytick.direction"] = "in"
plt.rcParams["ytick.direction"] = "in"
plt.rcParams["xtick.major.size"] = 6 # Sets length of ticks
plt.rcParams["ytick.major.size"] = 4 # Sets length of ticks
plt.rcParams["ytick.labelsize"] = 12 # Sets size of numbers on tick marks
plt.rcParams["xtick.labelsize"] = 12 # Sets size of numbers on tick marks
plt.rcParams["axes.titlesize"] = 14 # Overall title
plt.rcParams["axes.labelsize"] = 14 # Axes labels

Step 1 - load data

[4]:
out=pt.import_excel('Liquid_only_Thermometry.xlsx', sheet_name="Ol-Liq")
my_input=out['my_input']
myLiquids1=out['Liqs']
myOls1=out['Ols']
display(myOls1.head())
display(myLiquids1.head())
SiO2_Ol TiO2_Ol Al2O3_Ol FeOt_Ol MnO_Ol MgO_Ol CaO_Ol Na2O_Ol K2O_Ol Cr2O3_Ol NiO_Ol Sample_ID_Ol
0 40.5 0.02 0.08 12.40 0.17 47.4 0.30 0.0 0 0.03 0.0 0
1 41.3 0.03 0.11 9.59 0.14 50.2 0.31 0.0 0 0.00 0.0 1
2 39.7 0.05 0.11 15.60 0.18 44.5 0.31 0.0 0 0.03 0.0 2
3 40.5 0.05 0.10 13.20 0.18 46.8 0.29 0.0 0 0.02 0.0 3
4 40.5 0.00 0.10 9.41 0.10 49.3 0.31 0.0 0 0.00 0.0 4
SiO2_Liq TiO2_Liq Al2O3_Liq FeOt_Liq MnO_Liq MgO_Liq CaO_Liq Na2O_Liq K2O_Liq Cr2O3_Liq P2O5_Liq H2O_Liq Fe3Fet_Liq NiO_Liq CoO_Liq CO2_Liq Sample_ID_Liq
0 57.023602 0.623106 16.332899 4.36174 0.103851 4.19180 6.94858 3.59702 0.896895 0.000000 0.226584 5.59 0.2 0.0 0.0 0.0 0
1 57.658600 0.654150 17.194799 3.90621 0.084105 2.86892 5.91538 3.85948 1.018600 0.000000 0.214935 6.55 0.2 0.0 0.0 0.0 1
2 60.731201 0.862054 17.144199 4.07781 0.077488 2.50867 5.22075 4.45556 1.414160 0.000000 0.319638 3.14 0.2 0.0 0.0 0.0 2
3 61.532799 0.440860 16.508801 3.32990 0.037520 1.64150 4.34294 4.40860 1.407000 0.000000 0.215740 6.20 0.2 0.0 0.0 0.0 3
4 52.969101 0.803412 17.563000 5.93217 0.149472 3.78351 7.65110 3.80219 0.551178 0.037368 0.196182 6.58 0.2 0.0 0.0 0.0 4

Example 1 - Simple calculation for just the H2O content of the liquid

  • outputs just the wt% H2O in the liquid, using the hygrometer of Gavrilenko et al. (2016)

[5]:
H2O_Calc_Thermobar=pt.calculate_ol_liq_hygr(liq_comps=myLiquids1, ol_comps=myOls1,
                                               equationH="H_Gavr2016")
H2O_Calc_Thermobar
[5]:
0    2.030582
1    1.364482
2    0.344844
3   -0.344697
4    2.860205
5    1.508569
6   -1.769123
7    1.909273
8    0.834843
9    2.860872
dtype: float64

Example 2 - Melt matching

  • in reality, you may not have olivine-liquid pairs that you know are in equilibrium.

  • Instead, you can feed in all measured olivines and liquids, and it will pair up all possible matches

  • For the equilibrium tests, if you want to use Toplis, you need a temperature

  • In this example, we use a constant temperature

[6]:
H2O_Calc_Thermobar=pt.calculate_ol_liq_hygr_matching(liq_comps=myLiquids1, ol_comps=myOls1,
                                               equationH="H_Gavr2016", eq_tests=True,
                                                    T=1300)
H2O_Calc_Thermobar.head()
Considering N=10 Ol & N=10 Liqs, which is a total of N=100 Liq- Ol pairs, be patient if this is >>1 million!
You have not selected a pressure, so we have calculated Toplis Kd at 1kbar
[6]:
H2O_calc Temp used for calcs P used for calcs Kd Meas Kd calc (Toplis) ΔKd, Toplis (M-P) ΔKd, Roeder (M-P) ΔKd, Matzen (M-P) SiO2_Liq TiO2_Liq ... ID_Ol Si_Ol_cat_frac Mg_Ol_cat_frac Fet_Ol_cat_frac Ca_Ol_cat_frac Al_Ol_cat_frac Na_Ol_cat_frac K_Ol_cat_frac Mn_Ol_cat_frac Ti_Ol_cat_frac
0 2.030582 1300 1 0.314264 0.326180 -0.011916 0.014264 -0.025736 57.023602 0.623106 ... 0.0 0.331677 0.578691 0.084925 0.002632 0.000772 0.0 0.0 0.001179 0.000123
1 1.682297 1300 1 0.240169 0.327530 -0.087362 -0.059831 -0.099831 57.658600 0.654150 ... 0.0 0.331677 0.578691 0.084925 0.002632 0.000772 0.0 0.0 0.001179 0.000123
2 0.704945 1300 1 0.201173 0.308546 -0.107373 -0.098827 -0.138827 60.731201 0.862054 ... 0.0 0.331677 0.578691 0.084925 0.002632 0.000772 0.0 0.0 0.001179 0.000123
3 -0.777583 1300 1 0.161199 0.312636 -0.151436 -0.138801 -0.178801 61.532799 0.440860 ... 0.0 0.331677 0.578691 0.084925 0.002632 0.000772 0.0 0.0 0.001179 0.000123
4 3.105922 1300 1 0.208562 0.334102 -0.125540 -0.091438 -0.131438 52.969101 0.803412 ... 0.0 0.331677 0.578691 0.084925 0.002632 0.000772 0.0 0.0 0.001179 0.000123

5 rows × 73 columns

We can also specify an olivine-liquid thermometer

  • The hygrometer isn’t T sensitive, so once we have a H2O estimate, we can plug that into a liquid-olivine thermometer. That gives us a temp for solving equilibrium at

[7]:
H2O_Calc_Teq22=pt.calculate_ol_liq_hygr_matching(liq_comps=myLiquids1, ol_comps=myOls1,
                                               equationH="H_Gavr2016",  equationT='T_Put2008_eq22',
                                                 eq_tests=True, P=5,
                                                    T=1300)
H2O_Calc_Teq22.head()
Considering N=10 Ol & N=10 Liqs, which is a total of N=100 Liq- Ol pairs, be patient if this is >>1 million!
[7]:
H2O_calc T_K_calc P used for calcs Kd Meas Kd calc (Toplis) ΔKd, Toplis (M-P) ΔKd, Roeder (M-P) ΔKd, Matzen (M-P) SiO2_Liq TiO2_Liq ... Al_Ol_cat_frac Na_Ol_cat_frac K_Ol_cat_frac Mn_Ol_cat_frac Ti_Ol_cat_frac DMg_Meas CNML CSiO2L NF Den_Beat93
0 2.030582 1306.094822 5 0.314264 0.331693 -0.017429 0.014264 -0.025736 57.023602 0.623106 ... 0.000772 0.0 0.0 0.001179 0.000123 9.490384 0.170076 0.556427 -0.760264 9.813745
1 1.682297 1246.358585 5 0.240169 0.320346 -0.080177 -0.059831 -0.099831 57.658600 0.654150 ... 0.000772 0.0 0.0 0.001179 0.000123 13.711088 0.137693 0.568999 -0.815019 10.226597
2 0.704945 1278.487099 5 0.201173 0.308304 -0.107131 -0.098827 -0.138827 60.731201 0.862054 ... 0.000772 0.0 0.0 0.001179 0.000123 16.264149 0.121869 0.577797 -0.790522 10.330149
3 -0.777583 1196.823888 5 0.161199 0.295190 -0.133991 -0.138801 -0.178801 61.532799 0.440860 ... 0.000772 0.0 0.0 0.001179 0.000123 24.065168 0.097450 0.604665 -0.765547 10.732471
4 3.105922 1265.970449 5 0.208562 0.331112 -0.122550 -0.091438 -0.131438 52.969101 0.803412 ... 0.000772 0.0 0.0 0.001179 0.000123 10.410636 0.186517 0.522022 -0.840343 10.135819

5 rows × 78 columns

Example 2b- Filtering these matches

  • This is all Ol-Liq matches, you probably want to filter based on your choice of Kd filter

  • First, lets plot up these equilibrium tests

[9]:
fig, ((ax1, ax2, ax3)) = plt.subplots(1,3, figsize = (10,3), sharex=True) # adjust dimensions
ax1.hist(H2O_Calc_Teq22['ΔKd, Roeder (M-P)'], ec='k')
ax2.hist(H2O_Calc_Teq22['ΔKd, Toplis (M-P)'], ec='k')
ax3.hist(H2O_Calc_Teq22['ΔKd, Matzen (M-P)'], ec='k')

ax1.set_xlabel('ΔKd, Roeder (M-P)')
ax2.set_xlabel('ΔKd, Toplis (M-P)')
ax3.set_xlabel('ΔKd, Matzen (M-P)')

[9]:
Text(0.5, 0, 'ΔKd, Matzen (M-P)')
../../_images/Examples_Liquid_Ol_Liq_Themometry_Olivine_Liquid_hygrometry_14_1.png

Now we can filter out based on common values

[10]:
H2O_Calc_Teq22_FiltRoedder=H2O_Calc_Teq22.loc[H2O_Calc_Teq22['ΔKd, Roeder (M-P)'].between(-0.03, 0.03)]
H2O_Calc_Teq22_FiltToplis=H2O_Calc_Teq22.loc[H2O_Calc_Teq22['ΔKd, Toplis (M-P)'].between(-0.03, 0.03)]
H2O_Calc_Teq22_FiltMatzen=H2O_Calc_Teq22.loc[H2O_Calc_Teq22['ΔKd, Matzen (M-P)'].between(-0.03, 0.03)]

Now we can plot up values for this

[11]:
plt.plot(H2O_Calc_Teq22_FiltRoedder['Al2O3_Ol'], H2O_Calc_Teq22_FiltRoedder['H2O_calc'], 'ok')
[11]:
[<matplotlib.lines.Line2D at 0x1c0317ddd60>]
../../_images/Examples_Liquid_Ol_Liq_Themometry_Olivine_Liquid_hygrometry_18_1.png
[12]:
H2O_Calc_Thermobar=pt.calculate_ol_liq_hygr_matching(liq_comps=myLiquids1, ol_comps=myOls1,
                                               equationH="H_Gavr2016", equationT="T_Put2008_eq22",
                                                     eq_tests=True)
H2O_Calc_Thermobar.head()
Considering N=10 Ol & N=10 Liqs, which is a total of N=100 Liq- Ol pairs, be patient if this is >>1 million!
You have not selected a pressure, so we have calculated Toplis Kd at 1kbar
[12]:
H2O_calc T_K_calc P used for calcs Kd Meas Kd calc (Toplis) ΔKd, Toplis (M-P) ΔKd, Roeder (M-P) ΔKd, Matzen (M-P) SiO2_Liq TiO2_Liq ... Al_Ol_cat_frac Na_Ol_cat_frac K_Ol_cat_frac Mn_Ol_cat_frac Ti_Ol_cat_frac DMg_Meas CNML CSiO2L NF Den_Beat93
0 2.030582 1285.005221 1 0.314264 0.323039 -0.008775 0.014264 -0.025736 57.023602 0.623106 ... 0.000772 0.0 0.0 0.001179 0.000123 9.490384 0.170076 0.556427 -0.760264 9.813745
1 1.682297 1225.765914 1 0.240169 0.311488 -0.071319 -0.059831 -0.099831 57.658600 0.654150 ... 0.000772 0.0 0.0 0.001179 0.000123 13.711088 0.137693 0.568999 -0.815019 10.226597
2 0.704945 1257.615992 1 0.201173 0.300042 -0.098869 -0.098827 -0.138827 60.731201 0.862054 ... 0.000772 0.0 0.0 0.001179 0.000123 16.264149 0.121869 0.577797 -0.790522 10.330149
3 -0.777583 1176.711359 1 0.161199 0.286619 -0.125420 -0.138801 -0.178801 61.532799 0.440860 ... 0.000772 0.0 0.0 0.001179 0.000123 24.065168 0.097450 0.604665 -0.765547 10.732471
4 3.105922 1245.204726 1 0.208562 0.322130 -0.113568 -0.091438 -0.131438 52.969101 0.803412 ... 0.000772 0.0 0.0 0.001179 0.000123 10.410636 0.186517 0.522022 -0.840343 10.135819

5 rows × 78 columns

[13]:
CalcH2O=pt.calculate_ol_liq_hygr(meltmatch=H2O_Calc_Thermobar,
   equationH="H_Gavr2016", P=5, T=1300)
CalcH2O
Column already exists in dataframe. Have ovewritten
[14]:
H2O_Calc_Thermobar.head()
[14]:
H2O_calc T_K_calc P used for calcs Kd Meas Kd calc (Toplis) ΔKd, Toplis (M-P) ΔKd, Roeder (M-P) ΔKd, Matzen (M-P) SiO2_Liq TiO2_Liq ... Al_Ol_cat_frac Na_Ol_cat_frac K_Ol_cat_frac Mn_Ol_cat_frac Ti_Ol_cat_frac DMg_Meas CNML CSiO2L NF Den_Beat93
0 2.030582 1285.005221 1 0.314264 0.323039 -0.008775 0.014264 -0.025736 57.023602 0.623106 ... 0.000772 0.0 0.0 0.001179 0.000123 9.490384 0.170076 0.556427 -0.760264 9.813745
1 1.682297 1225.765914 1 0.240169 0.311488 -0.071319 -0.059831 -0.099831 57.658600 0.654150 ... 0.000772 0.0 0.0 0.001179 0.000123 13.711088 0.137693 0.568999 -0.815019 10.226597
2 0.704945 1257.615992 1 0.201173 0.300042 -0.098869 -0.098827 -0.138827 60.731201 0.862054 ... 0.000772 0.0 0.0 0.001179 0.000123 16.264149 0.121869 0.577797 -0.790522 10.330149
3 -0.777583 1176.711359 1 0.161199 0.286619 -0.125420 -0.138801 -0.178801 61.532799 0.440860 ... 0.000772 0.0 0.0 0.001179 0.000123 24.065168 0.097450 0.604665 -0.765547 10.732471
4 3.105922 1245.204726 1 0.208562 0.322130 -0.113568 -0.091438 -0.131438 52.969101 0.803412 ... 0.000772 0.0 0.0 0.001179 0.000123 10.410636 0.186517 0.522022 -0.840343 10.135819

5 rows × 78 columns

[15]:
Liq_Ols=H2O_Calc_Thermobar
import inspect
func = pt.Liquid_olivine_hygr_funcs_by_name["H_Gavr2016"]
sig=inspect.signature(func)
kwargs = {name: Liq_Ols[name] for name, p in sig.parameters.items() if p.kind == inspect.Parameter.KEYWORD_ONLY}
H2O_Calc_np=func(**kwargs)
[16]:
H2O_Calc_np
[16]:
array([ 2.03058223,  1.68229723,  0.70494526, -0.77758337,  3.10592163,
        2.61247201,  1.7569024 ,  2.65237953,  2.97082766,  3.4382364 ,
        1.76002335,  1.36448163,  0.34484373, -1.21046986,  2.86020533,
        2.33649615,  1.43635461,  2.40467736,  2.70382963,  3.24578146,
        1.76002335,  1.36448163,  0.34484373, -1.21046986,  2.86020533,
        2.33649615,  1.43635461,  2.40467736,  2.70382963,  3.24578146,
        2.30114112,  2.00011282,  1.06504679, -0.34469688,  3.35163792,
        2.88844787,  2.07745018,  2.9000817 ,  3.2378257 ,  3.63069135,
        1.76002335,  1.36448163,  0.34484373, -1.21046986,  2.86020533,
        2.33649615,  1.43635461,  2.40467736,  2.70382963,  3.24578146,
        0.94834669,  0.41103486, -0.73546085, -2.50912934,  2.12305644,
        1.50856857,  0.47471126,  1.66157084,  1.90283551,  2.66841664,
       -0.9455655 , -1.81367429, -3.25617155, -5.53933479,  0.40304236,
       -0.42326244, -1.76912324, -0.07234437,  0.03384924,  1.32123206,
        1.21890558,  0.72885045, -0.37535933, -2.07624285,  2.36877274,
        1.78454443,  0.79525904,  1.90927301,  2.16983355,  2.86087158,
       -0.13388885, -0.86022751, -2.17586697, -4.24067531,  1.14019125,
        0.40466514, -0.80747988,  0.67076215,  0.83484336,  1.89859688,
        1.21890558,  0.72885045, -0.37535933, -2.07624285,  2.36877274,
        1.78454443,  0.79525904,  1.90927301,  2.16983355,  2.86087158])

Example 2 - Calculating equilibrium tests

  • In this example, we calculate equilibrium tests, as water contents calculated from non-equilibrium pairs are likely to be nonsense.

  • A variety of options are included for calculating Kd bewteen olivine and liquid, P and T are needed for Toplis Kd parameterization, here we enter fixed values (in kbar and K)

[17]:
H2O_Calc_Thermobar_eqTest1=pt.calculate_ol_liq_hygr(liq_comps=myLiquids1, ol_comps=myOls1,
                                               equationH="H_Gavr2016", eq_tests=True, P=1, T=1300)
H2O_Calc_Thermobar_eqTest1
[17]:
H2O_calc Temp used for calcs P used for calcs Kd Meas Kd calc (Toplis) ΔKd, Toplis (M-P) ΔKd, Roeder (M-P) ΔKd, Matzen (M-P) SiO2_Ol TiO2_Ol ... Mg_Number_Liq_Fe3 Si_Ol_cat_frac Mg_Ol_cat_frac Fet_Ol_cat_frac Ca_Ol_cat_frac Al_Ol_cat_frac Na_Ol_cat_frac K_Ol_cat_frac Mn_Ol_cat_frac Ti_Ol_cat_frac
0 2.030582 1300 1 0.314264 0.326180 -0.011916 0.014264 -0.025736 40.5 0.02 ... 0.681666 0.331677 0.578691 0.084925 0.002632 0.000772 0.0 0.0 0.001179 0.000123
1 1.364482 1300 1 0.175383 0.321910 -0.146527 -0.124617 -0.164617 41.3 0.03 ... 0.620707 0.331038 0.599846 0.064284 0.002662 0.001039 0.0 0.0 0.000950 0.000181
2 0.344844 1300 1 0.269582 0.314838 -0.045256 -0.030418 -0.070418 39.7 0.05 ... 0.578196 0.331560 0.554039 0.108956 0.002774 0.001083 0.0 0.0 0.001273 0.000314
3 -0.344697 1300 1 0.173799 0.314138 -0.140339 -0.126201 -0.166201 40.5 0.05 ... 0.523445 0.332170 0.572216 0.090539 0.002548 0.000967 0.0 0.0 0.001250 0.000309
4 2.860205 1300 1 0.152172 0.328355 -0.176184 -0.147828 -0.187828 40.5 0.00 ... 0.586967 0.330886 0.600452 0.064294 0.002714 0.000963 0.0 0.0 0.000692 0.000000
5 1.508569 1300 1 0.159554 0.332767 -0.173213 -0.140446 -0.180446 40.5 0.02 ... 0.565465 0.331178 0.591229 0.072488 0.002979 0.000964 0.0 0.0 0.001039 0.000123
6 -1.769123 1300 1 0.215915 0.342292 -0.126376 -0.084085 -0.124085 40.2 0.04 ... 0.528731 0.334056 0.552506 0.106326 0.003650 0.002155 0.0 0.0 0.001056 0.000250
7 1.909273 1300 1 0.404699 0.412296 -0.007597 0.104699 0.064699 39.6 0.04 ... 0.620033 0.333016 0.530297 0.131513 0.002973 0.000595 0.0 0.0 0.001353 0.000253
8 0.834843 1300 1 0.314115 0.391918 -0.077802 0.014115 -0.025885 39.8 0.05 ... 0.583864 0.334067 0.539307 0.120735 0.003417 0.000594 0.0 0.0 0.001564 0.000316
9 2.860872 1300 1 0.429135 0.289064 0.140072 0.129135 0.089135 39.7 0.03 ... 0.665729 0.330714 0.546417 0.117735 0.002945 0.000589 0.0 0.0 0.001411 0.000188

10 rows × 70 columns

Can filter outputs, so only get calculated H2O contents for those with delta Kd Roeder <0.1

[18]:
InEq=H2O_Calc_Thermobar_eqTest1.loc[H2O_Calc_Thermobar_eqTest1['ΔKd, Roeder (M-P)']<0.1]
InEq
[18]:
H2O_calc Temp used for calcs P used for calcs Kd Meas Kd calc (Toplis) ΔKd, Toplis (M-P) ΔKd, Roeder (M-P) ΔKd, Matzen (M-P) SiO2_Ol TiO2_Ol ... Mg_Number_Liq_Fe3 Si_Ol_cat_frac Mg_Ol_cat_frac Fet_Ol_cat_frac Ca_Ol_cat_frac Al_Ol_cat_frac Na_Ol_cat_frac K_Ol_cat_frac Mn_Ol_cat_frac Ti_Ol_cat_frac
0 2.030582 1300 1 0.314264 0.326180 -0.011916 0.014264 -0.025736 40.5 0.02 ... 0.681666 0.331677 0.578691 0.084925 0.002632 0.000772 0.0 0.0 0.001179 0.000123
1 1.364482 1300 1 0.175383 0.321910 -0.146527 -0.124617 -0.164617 41.3 0.03 ... 0.620707 0.331038 0.599846 0.064284 0.002662 0.001039 0.0 0.0 0.000950 0.000181
2 0.344844 1300 1 0.269582 0.314838 -0.045256 -0.030418 -0.070418 39.7 0.05 ... 0.578196 0.331560 0.554039 0.108956 0.002774 0.001083 0.0 0.0 0.001273 0.000314
3 -0.344697 1300 1 0.173799 0.314138 -0.140339 -0.126201 -0.166201 40.5 0.05 ... 0.523445 0.332170 0.572216 0.090539 0.002548 0.000967 0.0 0.0 0.001250 0.000309
4 2.860205 1300 1 0.152172 0.328355 -0.176184 -0.147828 -0.187828 40.5 0.00 ... 0.586967 0.330886 0.600452 0.064294 0.002714 0.000963 0.0 0.0 0.000692 0.000000
5 1.508569 1300 1 0.159554 0.332767 -0.173213 -0.140446 -0.180446 40.5 0.02 ... 0.565465 0.331178 0.591229 0.072488 0.002979 0.000964 0.0 0.0 0.001039 0.000123
6 -1.769123 1300 1 0.215915 0.342292 -0.126376 -0.084085 -0.124085 40.2 0.04 ... 0.528731 0.334056 0.552506 0.106326 0.003650 0.002155 0.0 0.0 0.001056 0.000250
8 0.834843 1300 1 0.314115 0.391918 -0.077802 0.014115 -0.025885 39.8 0.05 ... 0.583864 0.334067 0.539307 0.120735 0.003417 0.000594 0.0 0.0 0.001564 0.000316

8 rows × 70 columns

  • We can also use a thermometer to calculate temperatures to perform Toplis calculations at

[19]:
H2O_Calc_Thermobar_eqTest2=pt.calculate_ol_liq_hygr(liq_comps=myLiquids1, ol_comps=myOls1,
                            equationH="H_Gavr2016", eq_tests=True, P=1, equationT="T_Put2008_eq22")
H2O_Calc_Thermobar_eqTest2
[19]:
H2O_calc T_K_calc P used for calcs Kd Meas Kd calc (Toplis) ΔKd, Toplis (M-P) ΔKd, Roeder (M-P) ΔKd, Matzen (M-P) SiO2_Ol TiO2_Ol ... Al_Ol_cat_frac Na_Ol_cat_frac K_Ol_cat_frac Mn_Ol_cat_frac Ti_Ol_cat_frac DMg_Meas CNML CSiO2L NF Den_Beat93
0 2.030582 1285.005221 1 0.314264 0.323039 -0.008775 0.014264 -0.025736 40.5 0.02 ... 0.000772 0.0 0.0 0.001179 0.000123 9.490384 0.170076 0.556427 -0.760264 9.813745
1 1.364482 1219.815185 1 0.175383 0.304486 -0.129103 -0.124617 -0.164617 41.3 0.03 ... 0.001039 0.0 0.0 0.000950 0.000181 14.212311 0.137693 0.568999 -0.815019 10.298404
2 0.344844 1265.431802 1 0.269582 0.307956 -0.038374 -0.030418 -0.070418 39.7 0.05 ... 0.001083 0.0 0.0 0.001273 0.000314 15.571306 0.121869 0.577797 -0.790522 10.243083
3 -0.344697 1178.402781 1 0.173799 0.288518 -0.114719 -0.126201 -0.166201 40.5 0.05 ... 0.000967 0.0 0.0 0.001250 0.000309 23.795917 0.097450 0.604665 -0.765547 10.709968
4 2.860205 1238.836216 1 0.152172 0.314913 -0.162742 -0.147828 -0.187828 40.5 0.00 ... 0.000963 0.0 0.0 0.000692 0.000000 10.802119 0.186517 0.522022 -0.840343 10.209647
5 1.508569 1224.693789 1 0.159554 0.316022 -0.156468 -0.140446 -0.180446 40.5 0.02 ... 0.000964 0.0 0.0 0.001039 0.000123 12.298898 0.167758 0.532846 -0.831744 10.289637
6 -1.769123 1221.171616 1 0.215915 0.324840 -0.108924 -0.084085 -0.124085 40.2 0.04 ... 0.002155 0.0 0.0 0.001056 0.000250 14.115866 0.145510 0.546226 -0.818818 10.317328
7 1.909273 1179.473286 1 0.404699 0.380321 0.024377 0.104699 0.064699 39.6 0.04 ... 0.000595 0.0 0.0 0.001353 0.000253 7.372863 0.220036 0.554167 -0.789435 9.844920
8 0.834843 1142.994309 1 0.314115 0.351192 -0.037077 0.014115 -0.025885 39.8 0.05 ... 0.000594 0.0 0.0 0.001564 0.000316 10.512978 0.180240 0.551142 -0.873211 10.228352
9 2.860872 1318.154242 1 0.429135 0.292274 0.136862 0.129135 0.089135 39.7 0.03 ... 0.000589 0.0 0.0 0.001411 0.000188 7.071114 0.228369 0.498136 -0.840454 9.673521

10 rows × 75 columns

  • We can also change the proportion of Fe3 used for the equilibrium tests

[20]:
H2O_Calc_Thermobar_eqTest3=pt.calculate_ol_liq_hygr(liq_comps=myLiquids1, ol_comps=myOls1,
                                               equationH="H_Gavr2016", eq_tests=True,
                                                P=1, equationT="T_Put2008_eq22", Fe3Fet_Liq=0.3)
H2O_Calc_Thermobar_eqTest3
[20]:
H2O_calc T_K_calc P used for calcs Kd Meas Kd calc (Toplis) ΔKd, Toplis (M-P) ΔKd, Roeder (M-P) ΔKd, Matzen (M-P) SiO2_Ol TiO2_Ol ... Al_Ol_cat_frac Na_Ol_cat_frac K_Ol_cat_frac Mn_Ol_cat_frac Ti_Ol_cat_frac DMg_Meas CNML CSiO2L NF Den_Beat93
0 2.030582 1285.005221 1 0.359158 0.323039 0.036120 0.059158 0.019158 40.5 0.02 ... 0.000772 0.0 0.0 0.001179 0.000123 9.490384 0.170076 0.556427 -0.760264 9.813745
1 1.364482 1219.815185 1 0.200438 0.304486 -0.104048 -0.099562 -0.139562 41.3 0.03 ... 0.001039 0.0 0.0 0.000950 0.000181 14.212311 0.137693 0.568999 -0.815019 10.298404
2 0.344844 1265.431802 1 0.308094 0.307956 0.000138 0.008094 -0.031906 39.7 0.05 ... 0.001083 0.0 0.0 0.001273 0.000314 15.571306 0.121869 0.577797 -0.790522 10.243083
3 -0.344697 1178.402781 1 0.198628 0.288518 -0.089891 -0.101372 -0.141372 40.5 0.05 ... 0.000967 0.0 0.0 0.001250 0.000309 23.795917 0.097450 0.604665 -0.765547 10.709968
4 2.860205 1238.836216 1 0.173911 0.314913 -0.141003 -0.126089 -0.166089 40.5 0.00 ... 0.000963 0.0 0.0 0.000692 0.000000 10.802119 0.186517 0.522022 -0.840343 10.209647
5 1.508569 1224.693789 1 0.182347 0.316022 -0.133675 -0.117653 -0.157653 40.5 0.02 ... 0.000964 0.0 0.0 0.001039 0.000123 12.298898 0.167758 0.532846 -0.831744 10.289637
6 -1.769123 1221.171616 1 0.246761 0.324840 -0.078079 -0.053239 -0.093239 40.2 0.04 ... 0.002155 0.0 0.0 0.001056 0.000250 14.115866 0.145510 0.546226 -0.818818 10.317328
7 1.909273 1179.473286 1 0.462513 0.380321 0.082191 0.162513 0.122513 39.6 0.04 ... 0.000595 0.0 0.0 0.001353 0.000253 7.372863 0.220036 0.554167 -0.789435 9.844920
8 0.834843 1142.994309 1 0.358989 0.351192 0.007797 0.058989 0.018989 39.8 0.05 ... 0.000594 0.0 0.0 0.001564 0.000316 10.512978 0.180240 0.551142 -0.873211 10.228352
9 2.860872 1318.154242 1 0.490441 0.292274 0.198167 0.190441 0.150441 39.7 0.03 ... 0.000589 0.0 0.0 0.001411 0.000188 7.071114 0.228369 0.498136 -0.840454 9.673521

10 rows × 75 columns

[ ]:

[ ]:

[ ]: