{ "cells": [ { "cell_type": "markdown", "id": "a73c4346-37c0-48a6-a496-6a3c9086a52d", "metadata": {}, "source": [ "# Olivine-Liquid Hygrometry\n", "- This workbook shows how to perform calculations for Olivine-Liquid hygrometry\n", "- You can download the Excel spreadsheet here: https://github.com/PennyWieser/Thermobar/blob/main/docs/Examples/Liquid_Ol_Liq_Themometry/Liquid_only_Thermometry.xlsx" ] }, { "cell_type": "markdown", "id": "18ef2762-4944-4d08-9cb1-e0e4ccc9b0c5", "metadata": {}, "source": [ "### You need to install Thermobar once on your machine, if you haven't done this yet, uncomment the line below (remove the #)" ] }, { "cell_type": "code", "execution_count": 1, "id": "53e29324-cafb-4bc7-8fb0-a2f40a0a8987", "metadata": {}, "outputs": [], "source": [ "#!pip install Thermobar" ] }, { "cell_type": "code", "execution_count": 2, "id": "81a1a82f-2075-44fb-b2b3-1da72c1778e8", "metadata": {}, "outputs": [], "source": [ "# Loading various python things\n", "import numpy as np\n", "import pandas as pd\n", "import matplotlib.pyplot as plt\n", "import Thermobar as pt" ] }, { "cell_type": "code", "execution_count": 3, "id": "e84c94fd-5554-4570-b03d-09b2eeb06b51", "metadata": {}, "outputs": [], "source": [ "# Setting plotting parameters\n", "# This sets some plotting things\n", "plt.rcParams[\"font.family\"] = 'arial'\n", "plt.rcParams[\"font.size\"] =12\n", "plt.rcParams[\"mathtext.default\"] = \"regular\"\n", "plt.rcParams[\"mathtext.fontset\"] = \"dejavusans\"\n", "plt.rcParams['patch.linewidth'] = 1\n", "plt.rcParams['axes.linewidth'] = 1 \n", "plt.rcParams[\"xtick.direction\"] = \"in\"\n", "plt.rcParams[\"ytick.direction\"] = \"in\"\n", "plt.rcParams[\"ytick.direction\"] = \"in\"\n", "plt.rcParams[\"xtick.major.size\"] = 6 # Sets length of ticks\n", "plt.rcParams[\"ytick.major.size\"] = 4 # Sets length of ticks\n", "plt.rcParams[\"ytick.labelsize\"] = 12 # Sets size of numbers on tick marks\n", "plt.rcParams[\"xtick.labelsize\"] = 12 # Sets size of numbers on tick marks\n", "plt.rcParams[\"axes.titlesize\"] = 14 # Overall title\n", "plt.rcParams[\"axes.labelsize\"] = 14 # Axes labels" ] }, { "cell_type": "markdown", "id": "aba9a301-d3b9-46dd-ba2e-2f9bfdd6d72c", "metadata": {}, "source": [ "## Step 1 - load data" ] }, { "cell_type": "code", "execution_count": 4, "id": "31b100b6-c286-4776-a531-3fa17d85f30d", "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
SiO2_OlTiO2_OlAl2O3_OlFeOt_OlMnO_OlMgO_OlCaO_OlNa2O_OlK2O_OlCr2O3_OlNiO_OlSample_ID_Ol
040.50.020.0812.400.1747.40.300.000.030.00
141.30.030.119.590.1450.20.310.000.000.01
239.70.050.1115.600.1844.50.310.000.030.02
340.50.050.1013.200.1846.80.290.000.020.03
440.50.000.109.410.1049.30.310.000.000.04
\n", "
" ], "text/plain": [ " SiO2_Ol TiO2_Ol Al2O3_Ol FeOt_Ol MnO_Ol MgO_Ol CaO_Ol Na2O_Ol \\\n", "0 40.5 0.02 0.08 12.40 0.17 47.4 0.30 0.0 \n", "1 41.3 0.03 0.11 9.59 0.14 50.2 0.31 0.0 \n", "2 39.7 0.05 0.11 15.60 0.18 44.5 0.31 0.0 \n", "3 40.5 0.05 0.10 13.20 0.18 46.8 0.29 0.0 \n", "4 40.5 0.00 0.10 9.41 0.10 49.3 0.31 0.0 \n", "\n", " K2O_Ol Cr2O3_Ol NiO_Ol Sample_ID_Ol \n", "0 0 0.03 0.0 0 \n", "1 0 0.00 0.0 1 \n", "2 0 0.03 0.0 2 \n", "3 0 0.02 0.0 3 \n", "4 0 0.00 0.0 4 " ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
SiO2_LiqTiO2_LiqAl2O3_LiqFeOt_LiqMnO_LiqMgO_LiqCaO_LiqNa2O_LiqK2O_LiqCr2O3_LiqP2O5_LiqH2O_LiqFe3Fet_LiqNiO_LiqCoO_LiqCO2_LiqSample_ID_Liq
057.0236020.62310616.3328994.361740.1038514.191806.948583.597020.8968950.0000000.2265845.590.20.00.00.00
157.6586000.65415017.1947993.906210.0841052.868925.915383.859481.0186000.0000000.2149356.550.20.00.00.01
260.7312010.86205417.1441994.077810.0774882.508675.220754.455561.4141600.0000000.3196383.140.20.00.00.02
361.5327990.44086016.5088013.329900.0375201.641504.342944.408601.4070000.0000000.2157406.200.20.00.00.03
452.9691010.80341217.5630005.932170.1494723.783517.651103.802190.5511780.0373680.1961826.580.20.00.00.04
\n", "
" ], "text/plain": [ " SiO2_Liq TiO2_Liq Al2O3_Liq FeOt_Liq MnO_Liq MgO_Liq CaO_Liq \\\n", "0 57.023602 0.623106 16.332899 4.36174 0.103851 4.19180 6.94858 \n", "1 57.658600 0.654150 17.194799 3.90621 0.084105 2.86892 5.91538 \n", "2 60.731201 0.862054 17.144199 4.07781 0.077488 2.50867 5.22075 \n", "3 61.532799 0.440860 16.508801 3.32990 0.037520 1.64150 4.34294 \n", "4 52.969101 0.803412 17.563000 5.93217 0.149472 3.78351 7.65110 \n", "\n", " Na2O_Liq K2O_Liq Cr2O3_Liq P2O5_Liq H2O_Liq Fe3Fet_Liq NiO_Liq \\\n", "0 3.59702 0.896895 0.000000 0.226584 5.59 0.2 0.0 \n", "1 3.85948 1.018600 0.000000 0.214935 6.55 0.2 0.0 \n", "2 4.45556 1.414160 0.000000 0.319638 3.14 0.2 0.0 \n", "3 4.40860 1.407000 0.000000 0.215740 6.20 0.2 0.0 \n", "4 3.80219 0.551178 0.037368 0.196182 6.58 0.2 0.0 \n", "\n", " CoO_Liq CO2_Liq Sample_ID_Liq \n", "0 0.0 0.0 0 \n", "1 0.0 0.0 1 \n", "2 0.0 0.0 2 \n", "3 0.0 0.0 3 \n", "4 0.0 0.0 4 " ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "out=pt.import_excel('Liquid_only_Thermometry.xlsx', sheet_name=\"Ol-Liq\")\n", "my_input=out['my_input']\n", "myLiquids1=out['Liqs']\n", "myOls1=out['Ols']\n", "display(myOls1.head())\n", "display(myLiquids1.head())" ] }, { "cell_type": "markdown", "id": "c915a94c-057a-4abf-851e-0476b18a5335", "metadata": {}, "source": [ "## Example 1 - Simple calculation for just the H2O content of the liquid\n", "- outputs just the wt% H2O in the liquid, using the hygrometer of Gavrilenko et al. (2016)" ] }, { "cell_type": "code", "execution_count": 5, "id": "6a4cd8e5-1255-43a5-9683-ab279d2b81bb", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "0 2.030582\n", "1 1.364482\n", "2 0.344844\n", "3 -0.344697\n", "4 2.860205\n", "5 1.508569\n", "6 -1.769123\n", "7 1.909273\n", "8 0.834843\n", "9 2.860872\n", "dtype: float64" ] }, "execution_count": 5, "metadata": {}, "output_type": "execute_result" } ], "source": [ "H2O_Calc_Thermobar=pt.calculate_ol_liq_hygr(liq_comps=myLiquids1, ol_comps=myOls1, \n", " equationH=\"H_Gavr2016\")\n", "H2O_Calc_Thermobar" ] }, { "cell_type": "markdown", "id": "b4cc2b0e-2dc2-4a88-9982-94a5894b9cd8", "metadata": {}, "source": [ "## Example 2 - Melt matching\n", "- in reality, you may not have olivine-liquid pairs that you know are in equilibrium. \n", "- Instead, you can feed in all measured olivines and liquids, and it will pair up all possible matches\n", "- For the equilibrium tests, if you want to use Toplis, you need a temperature\n", "- In this example, we use a constant temperature" ] }, { "cell_type": "code", "execution_count": 6, "id": "974e7e66-ee60-477b-8c96-60dafc4db06f", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Considering N=10 Ol & N=10 Liqs, which is a total of N=100 Liq- Ol pairs, be patient if this is >>1 million!\n", "You have not selected a pressure, so we have calculated Toplis Kd at 1kbar\n" ] }, { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
H2O_calcTemp used for calcsP used for calcsKd MeasKd calc (Toplis)ΔKd, Toplis (M-P)ΔKd, Roeder (M-P)ΔKd, Matzen (M-P)SiO2_LiqTiO2_Liq...ID_OlSi_Ol_cat_fracMg_Ol_cat_fracFet_Ol_cat_fracCa_Ol_cat_fracAl_Ol_cat_fracNa_Ol_cat_fracK_Ol_cat_fracMn_Ol_cat_fracTi_Ol_cat_frac
02.030582130010.3142640.326180-0.0119160.014264-0.02573657.0236020.623106...0.00.3316770.5786910.0849250.0026320.0007720.00.00.0011790.000123
11.682297130010.2401690.327530-0.087362-0.059831-0.09983157.6586000.654150...0.00.3316770.5786910.0849250.0026320.0007720.00.00.0011790.000123
20.704945130010.2011730.308546-0.107373-0.098827-0.13882760.7312010.862054...0.00.3316770.5786910.0849250.0026320.0007720.00.00.0011790.000123
3-0.777583130010.1611990.312636-0.151436-0.138801-0.17880161.5327990.440860...0.00.3316770.5786910.0849250.0026320.0007720.00.00.0011790.000123
43.105922130010.2085620.334102-0.125540-0.091438-0.13143852.9691010.803412...0.00.3316770.5786910.0849250.0026320.0007720.00.00.0011790.000123
\n", "

5 rows × 73 columns

\n", "
" ], "text/plain": [ " H2O_calc Temp used for calcs P used for calcs Kd Meas \\\n", "0 2.030582 1300 1 0.314264 \n", "1 1.682297 1300 1 0.240169 \n", "2 0.704945 1300 1 0.201173 \n", "3 -0.777583 1300 1 0.161199 \n", "4 3.105922 1300 1 0.208562 \n", "\n", " Kd calc (Toplis) ΔKd, Toplis (M-P) ΔKd, Roeder (M-P) ΔKd, Matzen (M-P) \\\n", "0 0.326180 -0.011916 0.014264 -0.025736 \n", "1 0.327530 -0.087362 -0.059831 -0.099831 \n", "2 0.308546 -0.107373 -0.098827 -0.138827 \n", "3 0.312636 -0.151436 -0.138801 -0.178801 \n", "4 0.334102 -0.125540 -0.091438 -0.131438 \n", "\n", " SiO2_Liq TiO2_Liq ... ID_Ol Si_Ol_cat_frac Mg_Ol_cat_frac \\\n", "0 57.023602 0.623106 ... 0.0 0.331677 0.578691 \n", "1 57.658600 0.654150 ... 0.0 0.331677 0.578691 \n", "2 60.731201 0.862054 ... 0.0 0.331677 0.578691 \n", "3 61.532799 0.440860 ... 0.0 0.331677 0.578691 \n", "4 52.969101 0.803412 ... 0.0 0.331677 0.578691 \n", "\n", " Fet_Ol_cat_frac Ca_Ol_cat_frac Al_Ol_cat_frac Na_Ol_cat_frac \\\n", "0 0.084925 0.002632 0.000772 0.0 \n", "1 0.084925 0.002632 0.000772 0.0 \n", "2 0.084925 0.002632 0.000772 0.0 \n", "3 0.084925 0.002632 0.000772 0.0 \n", "4 0.084925 0.002632 0.000772 0.0 \n", "\n", " K_Ol_cat_frac Mn_Ol_cat_frac Ti_Ol_cat_frac \n", "0 0.0 0.001179 0.000123 \n", "1 0.0 0.001179 0.000123 \n", "2 0.0 0.001179 0.000123 \n", "3 0.0 0.001179 0.000123 \n", "4 0.0 0.001179 0.000123 \n", "\n", "[5 rows x 73 columns]" ] }, "execution_count": 6, "metadata": {}, "output_type": "execute_result" } ], "source": [ "H2O_Calc_Thermobar=pt.calculate_ol_liq_hygr_matching(liq_comps=myLiquids1, ol_comps=myOls1, \n", " equationH=\"H_Gavr2016\", eq_tests=True,\n", " T=1300)\n", "H2O_Calc_Thermobar.head()" ] }, { "cell_type": "markdown", "id": "47ec5b4c-9c80-4dc1-8fa2-2ae04a3c65bd", "metadata": {}, "source": [ "## We can also specify an olivine-liquid thermometer\n", "- 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" ] }, { "cell_type": "code", "execution_count": 7, "id": "6814c5a2-fd26-411b-8b49-0570ead4b8f4", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Considering N=10 Ol & N=10 Liqs, which is a total of N=100 Liq- Ol pairs, be patient if this is >>1 million!\n" ] }, { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
H2O_calcT_K_calcP used for calcsKd MeasKd calc (Toplis)ΔKd, Toplis (M-P)ΔKd, Roeder (M-P)ΔKd, Matzen (M-P)SiO2_LiqTiO2_Liq...Al_Ol_cat_fracNa_Ol_cat_fracK_Ol_cat_fracMn_Ol_cat_fracTi_Ol_cat_fracDMg_MeasCNMLCSiO2LNFDen_Beat93
02.0305821306.09482250.3142640.331693-0.0174290.014264-0.02573657.0236020.623106...0.0007720.00.00.0011790.0001239.4903840.1700760.556427-0.7602649.813745
11.6822971246.35858550.2401690.320346-0.080177-0.059831-0.09983157.6586000.654150...0.0007720.00.00.0011790.00012313.7110880.1376930.568999-0.81501910.226597
20.7049451278.48709950.2011730.308304-0.107131-0.098827-0.13882760.7312010.862054...0.0007720.00.00.0011790.00012316.2641490.1218690.577797-0.79052210.330149
3-0.7775831196.82388850.1611990.295190-0.133991-0.138801-0.17880161.5327990.440860...0.0007720.00.00.0011790.00012324.0651680.0974500.604665-0.76554710.732471
43.1059221265.97044950.2085620.331112-0.122550-0.091438-0.13143852.9691010.803412...0.0007720.00.00.0011790.00012310.4106360.1865170.522022-0.84034310.135819
\n", "

5 rows × 78 columns

\n", "
" ], "text/plain": [ " H2O_calc T_K_calc P used for calcs Kd Meas Kd calc (Toplis) \\\n", "0 2.030582 1306.094822 5 0.314264 0.331693 \n", "1 1.682297 1246.358585 5 0.240169 0.320346 \n", "2 0.704945 1278.487099 5 0.201173 0.308304 \n", "3 -0.777583 1196.823888 5 0.161199 0.295190 \n", "4 3.105922 1265.970449 5 0.208562 0.331112 \n", "\n", " ΔKd, Toplis (M-P) ΔKd, Roeder (M-P) ΔKd, Matzen (M-P) SiO2_Liq \\\n", "0 -0.017429 0.014264 -0.025736 57.023602 \n", "1 -0.080177 -0.059831 -0.099831 57.658600 \n", "2 -0.107131 -0.098827 -0.138827 60.731201 \n", "3 -0.133991 -0.138801 -0.178801 61.532799 \n", "4 -0.122550 -0.091438 -0.131438 52.969101 \n", "\n", " TiO2_Liq ... Al_Ol_cat_frac Na_Ol_cat_frac K_Ol_cat_frac \\\n", "0 0.623106 ... 0.000772 0.0 0.0 \n", "1 0.654150 ... 0.000772 0.0 0.0 \n", "2 0.862054 ... 0.000772 0.0 0.0 \n", "3 0.440860 ... 0.000772 0.0 0.0 \n", "4 0.803412 ... 0.000772 0.0 0.0 \n", "\n", " Mn_Ol_cat_frac Ti_Ol_cat_frac DMg_Meas CNML CSiO2L NF \\\n", "0 0.001179 0.000123 9.490384 0.170076 0.556427 -0.760264 \n", "1 0.001179 0.000123 13.711088 0.137693 0.568999 -0.815019 \n", "2 0.001179 0.000123 16.264149 0.121869 0.577797 -0.790522 \n", "3 0.001179 0.000123 24.065168 0.097450 0.604665 -0.765547 \n", "4 0.001179 0.000123 10.410636 0.186517 0.522022 -0.840343 \n", "\n", " Den_Beat93 \n", "0 9.813745 \n", "1 10.226597 \n", "2 10.330149 \n", "3 10.732471 \n", "4 10.135819 \n", "\n", "[5 rows x 78 columns]" ] }, "execution_count": 7, "metadata": {}, "output_type": "execute_result" } ], "source": [ "H2O_Calc_Teq22=pt.calculate_ol_liq_hygr_matching(liq_comps=myLiquids1, ol_comps=myOls1, \n", " equationH=\"H_Gavr2016\", equationT='T_Put2008_eq22',\n", " eq_tests=True, P=5,\n", " T=1300)\n", "H2O_Calc_Teq22.head()" ] }, { "cell_type": "markdown", "id": "5f90f789-0643-4c1f-99f6-82502de9b60d", "metadata": {}, "source": [ "## Example 2b- Filtering these matches\n", "- This is all Ol-Liq matches, you probably want to filter based on your choice of Kd filter\n", "- First, lets plot up these equilibrium tests" ] }, { "cell_type": "code", "execution_count": 9, "id": "810364fc-2dae-4928-9952-19788826d6ec", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "Text(0.5, 0, 'ΔKd, Matzen (M-P)')" ] }, "execution_count": 9, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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qo9AzRfp0jF32223qXHjxgoODlbbtm2VkJDg9odSunQe/aBBg/T222+re/fuCg0NVatWrfTII48oNze31G14ukZm7dq1uv766xUZGanw8HB169ZNCxYsUGFh4Y+O+a9//avy8/NLnFSNGTNGtWvX9jjJ2Lhxo/Lz8zVhwoQf3U55eMoI6VJRVVBQoL/+9a8+3R6qJytnxfjx45Wfn6/Nmzd7fF0xMTHq0aOHx3U3bNigwYMHKzo62nWd74gRI9zmEK1bt9bKlSslSW3atNGAAQNc19SV9jh27Jirj48++kgjRoxQZGSkQkJCFBsbqwULFujixYuuZYr6nD9/vhYvXqzY2FiFhISoWbNmevDBB5Wdnf2j+4K5iH9RyHjwyiuvKDg42PVLN3nyZBljtGTJkhLXKQoOu92uXbt2qX379h6X27p1q26++WYdPnxYv//97zVjxgy99dZbpU7IfSErK0s7d+5UvXr11KFDB1f7Aw88oPj4eOXn52v27NmaPXu28vLydMcdd+ihhx5y6+N3v/udJk6cqHr16mnOnDn64x//qOzsbI0cOVILFy50LZeTk6Of/exnWrZsmX7xi19o/vz5ioyM1I033lhsXKdPn1afPn304osvavjw4XruuecUHx+vdevW6dprr1V6errb8kePHlVCQoISEhL02GOPlXph2saNG2WM0ejRo0tcZsKECTp37lyxi3nfeOMNnTt3TrfeemuJ61bEiRMndODAAbVu3brYee6jR4/Wt99+q48++sin20T1Eoj5Ikm7d+/Wtddeq61bt2ry5MlatGiR+vbtq7/85S/q1auXTp065bZ8WlqaRowYoa5du2rBggW67rrrNHfuXMXFxZWpACny+uuv69Zbb1XdunX11FNPacGCBYqKitL06dP1+9///kfX37Bhg6655hq1bt3a4/NRUVEaOHCgNm7cWOwP+6uvvqrrr79eLVq0KPN4y+Ltt9+WJPXq1cutvWXLlurevXuFz5eHtVg5K37+85+rfv36Wrt2rVt7fn6+NmzYUOLf1kWLFmnMmDEqKChQYmKinn/+eY0ePVrbtm3T4MGDXYXWwoULXdd+/OUvf9Gjjz6qhg0batWqVcUeU6dOlST16dNHzZo1k3Tp2ra+ffvqP//5j2bOnKn58+erXbt2mj59um655RYZY9zG9eKLL2rWrFkaM2aMnnvuOV111VV67rnndP/99//ovmAu4mdVeV5bdXTgwAEjyYwePdrVlp+fb6Kjo01kZKTJzc11tRedn/nrX//a1K5d29hsNiPJLFq0yGPfhYWFpk2bNiYiIsJ89913rvYzZ86Y9u3b++QamVOnTrk9MjIyzLZt20zv3r2NJLNw4ULXOu+9956RZAYOHOh2/nd+fr658cYbjSSTmppqjDHmH//4h5Fkpk2b5rbdomWDg4PNiRMnjDHGzJ4920gyS5cudVt2xowZxa6RmTZtmqldu7bZu3ev27L/+te/jMPhMEOGDHG19e/f30gyL7zwQpn2yaBBg4zD4TAFBQVu7UXnpSYmJpqcnBwTFhZmxo8f77bMmDFjTM+ePd22WxZF56U+99xzbj+Hr776yqSkpJju3bsbSeaVV14ptm7RObRPPvlkmbYF67FqvlzO0/n4Fy9eNDExMcbhcJh///vfbsu/9NJLRpKZPHmyq60or5566im3ZX/zm98YSWbFihXGGM/XyFx5PA4bNszUqVPH7fqWCxcumP79+5vhw4eX+lq++uorI8ncfffdJb7Oo0ePmldeecVIMikpKa7nMzMzjd1uNy+88EK5r+XxlNcnT540Bw8eNIsWLTJhYWEmOjra7edY5Je//KWR5MpbBCarZkWrVq1Mq1atjDGXru8JDg52u95i8+bNRpLZv39/setxLly4YKKjo80111xjLly44NZv0fxh/fr1xV53adfIHDx40ERFRZk2bdqYkydPGmOMOXfunImOjjbdu3c3P/zwg9vyjz32mJFkkpOTjTH/y6CQkBBz7Ngx13IXL140HTp0MHa73Zw7d67UfcJcxL/4ROYKr7zyiiTpjjvucLXZ7Xbdfvvt+v777z2eXvDCCy+offv2+vDDD1W/fn3NnDlTn332WbHl9u3bp6NHj+qOO+5Qo0aNXO3169d3vWPgrYYNG7o9WrZsqbi4OJ06dUpLly51+5Sl6J2S2bNny263u73eJ554QpJct/ssusPIhAkT5HQ6XY+srCxNmDBB+fn52rJli6RL75BGRETorrvuchvb7373O7dTQowxevXVV9W5c2e1b9/erd/GjRurT58+evvtt4t91D1y5Mgy7Yv//Oc/atOmTal3eAkPD9fQoUO1detW1ykt2dnZSklJ8eodkAceeMDt59C8eXMNHTpU3377rV544QVNmTKl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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "fig, ((ax1, ax2, ax3)) = plt.subplots(1,3, figsize = (10,3), sharex=True) # adjust dimensions \n", "ax1.hist(H2O_Calc_Teq22['ΔKd, Roeder (M-P)'], ec='k')\n", "ax2.hist(H2O_Calc_Teq22['ΔKd, Toplis (M-P)'], ec='k')\n", "ax3.hist(H2O_Calc_Teq22['ΔKd, Matzen (M-P)'], ec='k')\n", "\n", "ax1.set_xlabel('ΔKd, Roeder (M-P)')\n", "ax2.set_xlabel('ΔKd, Toplis (M-P)')\n", "ax3.set_xlabel('ΔKd, Matzen (M-P)')\n" ] }, { "cell_type": "markdown", "id": "20baf63f-858b-4b1b-b953-629a0b75e871", "metadata": {}, "source": [ "### Now we can filter out based on common values" ] }, { "cell_type": "code", "execution_count": 10, "id": "c8145aed-97f0-4ab5-9c3c-334930d7c57c", "metadata": {}, "outputs": [], "source": [ "H2O_Calc_Teq22_FiltRoedder=H2O_Calc_Teq22.loc[H2O_Calc_Teq22['ΔKd, Roeder (M-P)'].between(-0.03, 0.03)]\n", "H2O_Calc_Teq22_FiltToplis=H2O_Calc_Teq22.loc[H2O_Calc_Teq22['ΔKd, Toplis (M-P)'].between(-0.03, 0.03)]\n", "H2O_Calc_Teq22_FiltMatzen=H2O_Calc_Teq22.loc[H2O_Calc_Teq22['ΔKd, Matzen (M-P)'].between(-0.03, 0.03)]" ] }, { "cell_type": "markdown", "id": "1cfdfe1f-b656-46fe-adab-17c43c25c3af", "metadata": {}, "source": [ "## Now we can plot up values for this" ] }, { "cell_type": "code", "execution_count": 11, "id": "c17a95db-1626-4ca7-be74-3bc156c5b616", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "[]" ] }, "execution_count": 11, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAhsAAAGZCAYAAAAgt/PzAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjUuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8qNh9FAAAACXBIWXMAAA9hAAAPYQGoP6dpAAAndklEQVR4nO3df3DU9Z3H8dc3C0Q0JhTqj718I9EwoVp65RCr9W6bULRYb2rq3paeiHeWXqvgeRuoxlpx8Nc0Chaz45Q5f9IqFWuXr56eVKwWcKfI1INzbu5G21JAQyZX0BZiLBL7zef+oJtj3QRCsp/98d3nY2Znup/97n4/b1I/+9rvj8/HMcYYAQAAWFJR6A4AAIBgI2wAAACrCBsAAMAqwgYAALCKsAEAAKwibAAAAKsIGwAAwCrCBgAAsGpMoTsgSe+88442bNig+vp6jR8/vtDdAQAAw3Dw4EHt3r1bc+bM0cc//vEhtyuKsLFhwwbNnz+/0N0AAAAjsGbNGl155ZVDvl4UYaO+vl7S4c6effbZhe0MAAAYljfeeEPz588f+B4fSlGEjfSpk7PPPlszZswocG8AAMDxONYlEFwgCgAArCJsAAAAqwgbAADAKsIGAACwirABAACsImwAAACrCBsAAMAqwgYAALCqKCb1Agbj+75SqZS6u7sVDocViUQUCoUK3S0AwHEibKAoeZ6neDyuPXv2DLS5rqtEIqFoNFrAngEAjhenUVB0PM9TLBbLCBqS1NXVpVgsJs/zCtQzAMBIEDZQVHzfVzwelzEm67V0W2trq3zfz3fXAAAjRNhAUUmlUllHNI5kjFFnZ6dSqVQeewUAGA3CBopKd3d3TrcDABQeYQNFJRwO53Q7AEDhETZQVCKRiFzXleM4g77uOI7q6uoUiUTy3DMAwEgRNlBUQqGQEomEJGUFjvTzjo4O5tsAgBJC2EDRiUajSiaTqq2tzWh3XVfJZJJ5NgCgxDCpF4pSNBpVS0sLM4gCQAAQNkpY0KfzDoVCam5uLnQ3AACjRNgoUUznDQAoFVyzUYKYzhsAUEoIGyWG6bwBAKWGsFFimM4bAFBqCBslhum8AQClhrBRYpjOGwBQaggbJYbpvAEApYawUWKYzhsAUGoIGyWI6bwBAKWESb1KFNN5AwBKBWGjhDGdNwCgFHAaBQAAWEXYAAAAVhE2AACAVYQNAABgFWEDAABYRdgAAABWETYAAIBVhA0AAGAVYQMAAFhF2AAAAFYRNgAAgFWEDQAAYBVhAwAAWGUlbPi+r7vvvltTpkzR+PHj9elPf1pr1qyxsSsAAFDkrCwx/53vfEf33Xef7rzzTs2cOVPr16/XVVddpYqKCs2bN8/GLgEAQJHKedjo7e3V/fffr8WLF+umm26SJM2ePVvbtm3T/fffT9gAAKDM5DxsnHDCCXr11Vd1+umnZ7SPGzdOPT09ud4dAAAocjkPG2PGjNGnP/1pSZIxRr/73e+0evVqvfTSS3rooYdyvTsAAFDkrFyzkfbEE09o/vz5kqRLL71UX/3qV4+6fW9vb9bRj8rKSlVWVlrrIwAAsMvqra/nn3++Nm/erAcffFDbt2/XhRdeqA8++GDI7ZuamlRTU5PxaG9vt9lFAABgmdUjG1OmTNGUKVP0uc99Tg0NDZo9e7bWrVunK6+8ctDtN2/erOnTp2e0cVQDAIDSlvMjG3v37tUPf/hD7d27N6P9vPPOkyR1dnYO+d6qqipVV1dnPAgbAACUtpyHjd7eXl199dV6+OGHM9pfeOEFSRq4eBQoNr7va9OmTVq7dq02bdok3/cL3SUACIScn0Y566yz9A//8A+64447FAqFdN555+k//uM/dNddd2nOnDm65JJLcr1LYNQ8z1M8HteePXsG2lzXVSKRUDQaLWDPAKD0Wblm48EHH1RjY6MeffRRLVu2TOFwWPF4XEuXLpXjODZ2CYyY53mKxWIyxmS0d3V1KRaLKZlMEjgAYBQc89ERtgC2b9+uc889V9u2bdOMGTMK3R2UEd/3VV9fn3FE40iO48h1Xe3atUuhUCjPvQOA4jbc729WfUVZS6VSQwYN6fDEdJ2dnUqlUnnsFQAEC2EDZa27uzun2wEAshE2UNbC4XBOtwMAZCNsoKxFIhG5rjvkhcuO46iurk6RSCTPPQOA4CBsoKyFQiElEglJygoc6ecdHR1cHAoAo0DYQNmLRqNKJpP6i7/4i4z22tpabnsFgBwgbAB/xhwwAGAHYQNlLz2p10dvgU1P6uV5XoF6BgDBQNhAWfN9X/F4PGv2UEkDba2trayTAgCjQNhAWWNSLwCwj7CBssakXgBgH2EDZY1JvQDAPsIGyhqTegGAfYQNlDUm9QIA+wgbKHvpSb1qa2sz2l3XZVIvAMiBMYXuAFAMotGoWlpalEql1N3drXA4rEgkwhENAMgBwgbwZ6FQSM3NzYXuBgAEDqdRAACAVYQNAABgFWEDAABYRdgAAABWETYAAIBV3I0C/Jnv+9z6CgAWEDYASZ7nKR6PZ6wA67quEokEk3oBwCgF9jSK7/vatGmT1q5dq02bNsn3/UJ3CUXK8zzFYrGspea7uroUi8XkeV6BegYAwRDIsOF5nurr6zVr1izNmzdPs2bNUn19PV8ayOL7vuLxuIwxWa+l21pbWwmrADAKgQsb/ErF8UilUln/XzmSMUadnZ1KpVJ57BUABEugwga/UnG8uru7c7odACBboMIGv1JxvMLhcE63AwBkC1TY4FcqjlckEpHrunIcZ9DXHcdRXV2dIpFInnsGAMERqLDBr1Qcr1AopEQiIUlZgSP9vKOjg/k2AGAUAhU2+JWKkYhGo0omk6qtrc1od11XyWSSeTYAYJQCNalX+ldqLBaT4zgZF4ryKxVHE41G1dLSwgyiAGBBoMKG9P+/UgebDbKjo4NfqRhSKBRSc3NzobsBAIETuLAh8SsVAIBiEsiwIfErFQCAYhHYsMEKngAAFIdAhg1W8AQAoHgE6tZXibVRAAAoNoEKG6yNAgBA8QlU2GBtFAAAik+gwgZrowAAUHwCFTZYGwUAgOITqLDB2igAABSfQIWNclvB0/d9bdq0SWvXrtWmTZu48BUAUJSshA1jjB588EH95V/+paqqqnTWWWeptbVVPT09NnaXoVxW8PQ8T/X19Zo1a5bmzZunWbNmqb6+nlt7AQBFx8qkXitWrNB3vvMd3XjjjZo9e7Z27NihW2+9Vf/93/+tn/3sZ0Oe5siVoK+Nkp5L5KO3+KbnEglSqAIAlL6ch43+/n61t7frmmuuUXt7uyTpoosu0qRJkzR37lxt27ZNM2fOzPVuswR1bZRjzSXiOI5aW1vV0tISmHAFAChtOT+N0tPTo/nz52vevHkZ7Y2NjZKk3/72t7neZVlhLhEAQKnJ+ZGNCRMm6P77789qT19LMG3atFzvsqwwlwgAoNTkZSG2LVu26J577tGXv/xlffKTnxxyu97e3qyLSCsrK1VZWWm7iyWDuUQAAKXG+q2vqVRKl156qRoaGvTII48cddumpibV1NRkPNLXfeAw5hIBAJQaq0c2nnzySV199dWaOnWqNmzYoIkTJx51+82bN2v69OkZbRzVyJSeSyQWi8lxnIwLRYM4lwgAoPRZO7KxYsUKzZs3TxdccIFeeeUVnX766cd8T1VVlaqrqzMehI1s5TKXCAAgGKwc2XjggQfU1tamuXPn6vHHH9e4ceNs7KasBX0uEQBAcOQ8bPzv//6vFi9erMmTJ+v666/X9u3bM15vaGjQKaeckuvdlqWgziUCAAiWnIeN9evX6+DBg3rrrbcGvUhx9erVuvrqq3O9WwAAUKRyHjYWLFigBQsW5PpjAQBAicrLPBuF0NfXp1WrVum3v/2tGhoatGjRIq4dAQCgAAIZNtra2rRy5cqMJddvuOEGLVmyRMuXLy9gzwAAKD+BCxttbW1asWJFVrvv+wPtBA4AAPLH+gyi+dTX16eVK1cedZuVK1eqr68vTz0CAACBChurVq3KOHUyGN/3tWrVqjz1CAAABCpsDHf5epa5BwAgfwIVNhoaGnK6HQAAGL1AhY1FixYdc7ruUCikRYsW5alHAAAgUGFj3LhxWrJkyVG3WbJkCfNtAACQR4G79TV9W+tH59kIhULMswEAQAEELmxIhwPHXXfdxQyiAAAUgUCGDenwKZXW1tZCdwMAgLIXqGs2AABA8SFsAAAAqwgbAADAKsIGAACwirABAACsImwAAACrCBsAAMAqwgYAALCKsAEAAKwibAAAAKsIGwAAwCrCBgAAsCqwC7EBx8v3faVSKXV3dyscDisSiSgUChW6WwBQ8ggbgCTP8xSPx7Vnz56BNtd1lUgkFI1GC9gzACh9nEZB2fM8T7FYLCNoSFJXV5disZg8zytQzwAgGAgbKGu+7ysej8sYk/Vauq21tVW+7+e7awAQGIQNlLVUKpV1RONIxhh1dnYqlUrlsVcAECyEDZS17u7unG4HAMhG2EBZC4fDOd0OAJCNsIGyFolE5LquHMcZ9HXHcVRXV6dIJJLnngFAcBA2UNZCoZASiYQkZQWO9POOjg7m2wCAUSBsoOxFo1Elk0nV1tZmtLuuq2QyyTwbADBKTOoF6HDgaGlpYQZRALCAsAH8WSgUUnNzc6G7AQCBw2kUAABgVWCPbLCoFgAAxSGQYYNFtQAAKB6BO43ColoAABSXQIUNFtUCAKD4BCpssKgWAADFJ1Bhg0W1AAAoPoEKGyyqBQBA8QlU2GBRLQAAik9ewkZnZ6cmTJigTZs2Wd0Pi2oBAFB8rIeNt956SxdffLEOHDhge1eSWFQLAIBiY21Sr/7+fv3whz/UDTfcYGsXQ2JRLQAAioe1sPFf//VfWrhwoRYtWqSLLrpIf/u3f2trV4NiUS0AAIqDtbBxxhlnaMeOHXJd1/q1GgAAoHhZCxsTJ07UxIkTj+s9vb296unpyWirrKxUZWVlLrsGAADyqKhufW1qalJNTU3Go729vdDdAgAAo1BUq75u3rxZ06dPz2jjqAYAAKWtqMJGVVWVqqurC90NAACQQ0V1GgUAAARPUR3ZyCXf95lnAwCAIhDIsOF5nuLxeMZy867rKpFIMIMoAAB5lpew0dzcLGNMPnYlz/MUi8Wy9tfV1aVYLMaU5QAA5FmgrtnwfV/xeHzQYGOMkTFGra2t8n2/AL0DAKA8BSpspFKpjFMng+ns7FQqlcpTjwAAQKDCRldXV063AwAAoxeosLFv376cbgcAAEYvUGHjlFNOyel2AABg9AIVNmpra3O6HQAAGL1AhY1IJCLXdY+6TV1dnSKRSJ56BAAAAhU2QqGQEomEHMcZ9HXHcdTR0cFMogAA5FGgwoYkRaNRJZPJrCMcdXV1TOgFAEABBHK68mg0qpaWFtZGAQCgCAQybEiHT6k0NzcXuhsAAJS9wJ1GAQAAxYWwAQAArCJsAAAAqwgbAADAKsIGAACwirABAACsImwAAACrCBsAAMAqwgYAALCKsAEAAKwibAAAAKsCuzaK7/ssxAYAKGvF8l0YyLDheZ7i8bj27Nkz0Oa6rhKJBEvMAwDKQjF9FwbuNIrneYrFYhn/uJLU1dWlWCwmz/MK1DMAAPKj2L4LAxU2fN9XPB6XMSbrtXRba2urfN/Pd9cAAMiLYvwuDFTYSKVSWSnuSMYYdXZ2KpVK5bFXAADkTzF+FwYqbHR3d+d0OwAASk0xfhcGKmyEw+GcbgcAQKkpxu/CQIWNSCQi13XlOM6grzuOo7q6OkUikTz3DACA/CjG78JAhY1QKKREIiFJWf/I6ecdHR3MtwEACKxi/C4MVNiQpGg0qmQyqdra2ox213WVTCaZZwMAEHjF9l0YyEm9otGoWlpaimLWNAAACqGYvgsDGTakw4eRmpubC90NAAAKpli+CwN3GgUAABQXwgYAALCKsAEAAKwibAAAAKsIGwAAwCrCBgAAsIqwAQAArCJsAAAAqwgbAADAqsDOIAoAQLnzfZ/pygEAgB2e5ykej2vPnj0Dba7rKpFI5H0hNqunUV544QXNnDlTJ554oiZPnqz29nYZY2zuEgCAsud5nmKxWEbQkKSuri7FYjF5npfX/lgLG1u2bNFll12ms88+W57n6aqrrtItt9yi7373u7Z2CQBA2fN9X/F4fNAf9+m21tZW+b6ftz5ZO41y++23a/r06Xr88cclSZdccok+/PBD3X333VqyZInGjx9va9cAAJStVCqVdUTjSMYYdXZ2KpVK5W1FWCtHNg4dOqRNmzZlnROKxWLq7e1VKpWysVsAAMped3d3TrfLBSthY+fOnerr61NjY2NG+5QpUyRJv/71rwd9X29vr3p6ejIehw4dstFFAAACKRwO53S7XLASNvbv3y9Jqq6uzmg/+eSTJUk9PT2Dvq+pqUk1NTUZj/b2dhtdBAAgkCKRiFzXleM4g77uOI7q6uoUiUTy1icr12z09/dL0pCFVlQMnnE2b96s6dOnZ7RVVlbmtG8AAARZKBRSIpHQ3/3d3w36ujFGHR0deZ1vw0rYmDBhgqTsIxjvvfeeJKmmpmbQ91VVVWUdDQEAAKXNymmUhoYGhUIh7dixI6M9/fycc86xsVsAAMpe+tbXoTiOk/dbX62EjRNOOEGf+9zn5Hlexn2+yWRSEyZM0Gc+8xkbuwUAoOwdz62v+WJtno2lS5fqoosu0ty5c7VgwQJt2bJFK1as0D333MMcGwAAWFI2t75K0uc//3mtW7dOv/rVr/TlL39ZP/rRj7RixQrdeOONtnYJAEDZK8ZbX60uxHb55Zfr8ssvt7kLAABwhPStr11dXYNOWe44jlzXzeutr1YXYgMAAPmVvvVVyp6CIv0837e+EjYAAAiYaDSqZDKp2trajHbXdZVMJvO+xLzV0ygAAKAwotGoWlpalEql1N3drXA4rEgkktcjGmmEDQAAAioUCuVtZdej4TQKAACwirABAACsImwAAACrCBsAAMAqwgYAALAqsHej+L5fFLf7AABQ7gIZNjzPUzwez1j1znVdJRKJvE9kAgBAuQvcaRTP8xSLxbKW1+3q6lIsFpPneQXqGQAA5SlQYcP3fcXj8UEXnkm3tba2yvf9fHcNAICyFaiwkUqlso5oHMkYo87OTqVSqTz2CgCA8haosNHd3Z3T7QAAwOgFKmyEw+GcbgcAAEYvUGEjEonIdV05jjPo647jqK6uTpFIJM89AwCgfAUqbIRCISUSCUnKChzp5x0dHcy3AQBAHgUqbEhSNBpVMplUbW1tRrvrukomk8yzAQBAngVyUq9oNKqWlhZmEAUAoAgEMmxIh0+pNDc3F7obAACUvcCdRgEAAMWFsAEAAKwibAAAAKsIGwAAwCrCBgAAsIqwAQAArCJsAAAAqwgbAADAKsIGAACwirABAACsImwAAACrCBsAAMAqwgYAALCKsAEAAKwibAAAAKsIGwAAwCrCBgAAsIqwAQAArCJsAAAAqwgbAADAKsIGAACwirABAACsImwAAACrCBsAAMAq62Hj2WefleM4tncDAACKlNWw8fLLL2vevHk2dwEAAIqclbDx3nvv6eabb9acOXNUWVlpYxcAAKBEWAkbjzzyiB555BF9//vf1/XXX29jFwAAoERYCRtf+tKXtHv3bl1zzTXH9b7e3l719PRkPA4dOmSjiwAAIE/GHM/G77//vp5++ukhXz/ttNN08cUXq6GhYUSdaWpqympbtmyZbrvtthF9HgAAKLzjChv79u3TVVddNeTrTU1Nuvjii0fcmc2bN2v69OkZbVzzAQBAaTuusFFfXy9jjK2+qKqqStXV1dY+HwAA5B+TegEAAKsIGwAAwCrCBgAAsIqwAQAArLIeNm677TarF5UCAIDixpENAABgFWEDAABYRdgAAABWETYAAIBVhA0AAGAVYQMAAFhF2AAAAFYRNgAAgFWEDQAAYBVhAwAAWEXYAAAAVhE2AACAVYQNAABgFWEDAABYRdgAAABWETYAAIBVhA0AAGAVYQMAAFhF2AAAAFYRNgAAgFWEDQAAYBVhAwAAWEXYAAAAVhE2AACAVYQNAABgFWEDAABYRdgAAABWETYAAIBVhA0AAGAVYQMAAFhF2AAAAFYRNgAAgFWEDQAAYBVhAwAAWDWm0B0AAAB2+L6vVCql7u5uhcNhRSIRhUKhvPeDsAEAQAB5nqd4PK49e/YMtLmuq0QioWg0mte+cBoFAICA8TxPsVgsI2hIUldXl2KxmDzPy2t/CBsAAASI7/uKx+MyxmS9lm5rbW2V7/t56xNhAwCAAEmlUllHNI5kjFFnZ6dSqVTe+kTYAAAgQLq7u3O6XS4QNgAACJBwOJzT7XKBsAEAQIBEIhG5rivHcQZ93XEc1dXVKRKJ5K1PhA0AAAIkFAopkUhIUlbgSD/v6OjI63wbhA0AAAImGo0qmUyqtrY2o911XSWTybzPs8GkXgAABFA0GlVLS0tRzCBq5cjGe++9p7a2Nk2ZMkUnnXSSpk2bpu9///vq7++3sTsAADCIUCik5uZmXXHFFWpubi5I0JAsHdm44oortHXrVt1+++36xCc+oY0bNyoej+v3v/+9br31Vhu7BAAARSrnYWP79u16/vnn9dRTT+krX/mKJGn27Nn6wx/+oOXLl2vp0qVDXiELAACCx8pplG9+85uaPXt2RltjY6N6e3u1d+9eG7sEAABFKudHNmbMmKEHHnggq93zPJ166qk65ZRThnxvb2+venp6MtoqKytVWVmZ624CAIA8Oa6w8f777+vpp58e8vXTTjtNF198cVb7ypUr9corr6ijo0MVFUMfTGlqaspqW7ZsmW677bbj6aakwwvRFMMVuAAAlLvjChv79u3TVVddNeTrTU1NWWEjkUjohhtu0BVXXKF/+Zd/Oernb968WdOnT89oG8lRDc/zFI/HMxaicV1XiUQi7/cWAwBQ7o4rbNTX1w+6ZO1g+vv7deONN2rlypW68sor9YMf/OCYF4ZWVVWpurr6eLqUxfM8xWKxrH52dXUpFosVZDITAADKmZULRPv6+hSLxbRy5Uq1trbq8ccf15gx9ucP831f8Xh80ECUbmttbZXv+9b7AgAADrMSNv7xH/9RzzzzjO677z7dd999ebvVNZVKZZw6+ShjjDo7O5VKpfLSHwAAYOFulH/7t3/Tk08+qcsuu0wXXHCBtm7dmvH6X/3VX1m7u6S7uzun2wEAgNHLedhYt26dJOnZZ5/Vs88+m/X6rl27VF9fn+vdSpLC4XBOtwMAAKOX89Mojz32mIwxQz5sBQ1JikQimjRp0lG3mTRpkiKRiLU+AACATCwxDwAArApU2EilUnr33XePus27777LBaIAAORRoMIGF4gCAFB8AhU2uEAUAIDiE6iwEYlE5LrukPN6OI6juro6LhAFACCPAhU2QqGQEomEJGUFjvTzjo4OFmQDACCPAhU2JCkajSqZTKq2tjaj3XVd1kUBAKAA7C9YUgDRaFQtLS0sMQ8AQBEIZNiQDp9SaW5uLnQ3AAAoe4E7jQIAAIoLYQMAAFgV6LBx6NAh3XbbbTp06FChu2JN0GukvtIX9BqDXp8U/Bqpzz7HGGMKtvc/2759u84991xt27ZNM2bMyNnn9vT0qKamRgcOHFB1dXXOPreYBL1G6it9Qa8x6PVJwa+R+kZuuN/fgT6yAQAACo+wAQAArCJsAAAAqwgbAADAKsIGAACwqihmED148KAk6Y033sjp5/b29kqSXn/9dVVVVeX0s4tF0GukvtIX9BqDXp8U/Bqpb+TS39vp7/GhFMWtrz/60Y80f/78QncDAACMwJo1a3TllVcO+XpRhI133nlHGzZsUH19vcaPH1/o7gAAgGE4ePCgdu/erTlz5ujjH//4kNsVRdgAAADBxQWiAADAKsIGAACwqqTCxgsvvKCZM2fqxBNP1OTJk9Xe3q5jnQVas2aNPvnJT2r8+PGaOnWqHn744axt3nzzTV122WWqrq7WpEmTdPnll2vnzp22yhiSrfqeeeYZnXvuuaqqqtKUKVN0++23q6+vz1YZRzWSGtO2bdumsWPHavfu3Vmv/fKXv1RTU5Oqqqp0+umn64YbbijIokO26lu3bp0+85nPqLq6WnV1dbr66qv1u9/9Lse9PzZb9R1p8eLFchwnB70dGVs1lvI4k3a0+kp5nOnr61N7e7s+8YlP6KSTTtLUqVN1xx13ZPW/VMeZ4dZndZwxJeIXv/iFGTt2rJk/f7756U9/am655RbjOI656667hnzPU089ZRzHMa2treaFF14w1157rZFk1qxZM7DN22+/bSZOnGg++9nPmueee8489dRTprGx0TQ0NJg//vGP+SjNGGOvvhdffNE4jmP+/u//3rz44ovme9/7nqmsrDTXXXddPsrKMJIa015//XVz2mmnGUlm165dGa/t2LHDVFdXm0suucQ8//zz5t577zWVlZXmn/7pnyxVMjhb9T311FNGkrnmmmvMhg0bzGOPPWbq6+vNOeecYw4ePGipmmy26jvS5s2bTUVFhSnU0GSrxlIeZ9KOVl+pjzMLFy40J554omlvbzcvvfSSWb58uTnxxBPNggULBrYp5XFmOPXZHmdKJmx84QtfMOedd15GW1tbm6mqqhryP9bGxkbzla98JaNt7ty5pqGhYeD51772NTN58mTz/vvvD7S99tprJhwOm1deeSWHFRydrfquuOIKM3nyZPOnP/1poO2mm24y48aNM319fTms4NhGUuOhQ4fMvffea8aPH28mTpw46ED3zW9+09TW1ppDhw4NtK1atcpUVFSY3bt357yOodiq71Of+pS59NJLM9p++ctfGknmJz/5SU5rOBpb9aX19vaas846y7iuW7CwYavGUh5nhlNfKY8z7777rnEcxyxfvjyjffny5UaS2bt3rzGmdMeZ4dZne5wpibDxwQcfmHHjxpn29vaM9vQ/xIYNG7Les2vXLiPJrF27NqM9nd5+9atfmf7+flNTU2PuuOMOq/0/Flv1GWNMNBo155xzTsY2K1asMJLMu+++m+NKhjaSGo0x5umnnzYnn3yyueuuu8xDDz006EA3efJkc80112S07d2710gyDzzwQE7rGIqt+nzfN0uWLDHPPPNMxvv2799vJJm7774757UMxubfL+3aa681F154obn11lsLEjZs1VjK44wxw/sblvI4s3PnTrNw4ULz5ptvZrQ/88wzRpLZunWrMaZ0x5nh1JePcaYkrtnYuXOn+vr61NjYmNE+ZcoUSdKvf/3rrPekZzU72nt2796tAwcOqL6+Xtddd50mTZqkE044QV/60pf09ttv2yhlULbqk6R//ud/1m9+8xutWLFC+/fv19atW9XR0aFLL71UEydOzHktQxlJjZJ03nnnaffu3brllls0Zkz2hLcHDx7UW2+9lfW5p5xyiqqrq4f83FyzVV9FRYW+973vqaWlJaPd8zxJ0rRp03LR/WOyVV/az372Mz322GNavXq1KioKMyzZqrGUxxlpeH/DUh5nzjzzTK1atUpTp07NaPc8T2PHjlVjY2NJjzPDqS8f40xJhI39+/dLkqqrqzPaTz75ZElST0/PiN6zb98+SdJNN92krq4urV27Vg8//LBef/11zZo1S++//34uyxiSrfokqbm5WW1tbWpra9PHPvYxffazn9Wpp56qJ554IpclHNNIapSk2traow5WQ31u+rOH+txcs1XfYH7zm9/oxhtv1IwZM/TFL37x+Ds7AjbrO3DggL7+9a/rjjvuyBpE88lWjaU8zkjD+xuW+jjzUevWrdPjjz+u6667Th/72MdKfpz5qI/WN5hcjzMlETb6+/slacgr1Af7JTTUe8yfr9itqKgYuBL3tNNOk+d5+sIXvqD58+frJz/5iXbu3Kk1a9bkrIajsVWfJF177bVavny5li5dqo0bN+rRRx/VO++8o0suuUR//OMfc1bDsYykxtF+rjEmb7+SbdX3UW+88YZmzZqlyspKJZPJQNTX2toq13W1ePHiEX9GLtiqsZTHmeEK0jiTTCY1b948NTU16e677z7m55baODNYfR9lY5wpibAxYcIESdmp7b333pMk1dTUDPs96QVpampqBtLgF7/4xYx/zAsuuEATJkzQ66+/novuH5Ot+rq6uvTQQw+pra1Nd955p5qbm/W1r31N69ev19atW/Xoo4/muJKhjaTG0XyudPjfYqSfm6t+jLa+I23cuFEXXnihKioq9POf/1xnnnnmqD9zuGzV9+///u968skn9dBDD6m/v19/+tOfBgbUI/93PtiqsZTHmeEI0jizcuVKffWrX9Xf/M3f6LnnnlNlZeVRP1cqrXFmqPqOZGucKYmw0dDQoFAopB07dmS0p5+fc845We9Jn5862nsaGhpUUVEx6H3SH374Yd7WabFV39tvvy1jjP76r/86Y5tp06Zp0qRJ+p//+Z+c1XAsI6lxOE466STV1tZmfe6+ffvU09Mz4s89XrbqS3viiSc0Z84c1dbWasuWLVnnX22zVV8ymdQHH3ygadOmaezYsRo7dqzuvPNOSdLYsWO1YMGC0XX8ONiqsZTHmeEIwjhjjNH111+vb33rW4rFYlq/fn3G6qilPs4cq740q+PMqC8xzZNZs2aZCy64wPT39w+0tbW1mQkTJgx5y9ZZZ51l5s6dm9E2d+5c09jYOPC8qanJ1NfXmw8++GCg7aWXXjKSjOd5Oa5iaDbq27t3rwmFQubmm2/O2ObNN980ksw999yT4yqObiQ1Hmn16tVD3lZ4xhlnZPwNV61aZUKhkHn77bdz1v9jsVXf888/b0KhkGlqajL79+/PdbeHzUZ9u3btMq+99lrG4xvf+IaRZF577bWjzslhg62/YSmPM0carL4gjDPf/va3jSSzePHijPcdqZTHmeHUZ3ucKZmw8fLLLxvHcUwsFjPr1683S5cuzbh3+MCBA+bVV18duGfYmP//D2PhwoXmpz/9qVm4cKGRZH784x8PbLNlyxYzbtw48/nPf96sX7/erF692px66qnm/PPPz7hnvFTr+9a3vmXGjBljbr75ZvPzn//crF692tTX15szzjjD/P73v89bfSOt8UhDDeRvvPGGOeGEE8ysWbPMc889NzCh0KJFi2yXlMFGfQcPHjThcNhMmDDBvPjii+bVV1/NeHR2duajNGOMvb/fRy1btqxg82zYqrGUx5kjDVVfKY8z//mf/2kcxzEzZ87M+u/r1VdfNQcOHDDGlO44M5z68jHOlEzYMMYYz/PMpz71KTNu3Dhz5plnmnvvvXfgtY0bNxpJZvXq1Rnv+dd//VczZcoUU1lZac4++2zz2GOPZX3uL37xC9Pc3GzGjx9vJk2aZL7+9a+bP/zhD5aryWajvv7+fnPfffeZqVOnmnHjxpnJkyebb3zjG0MOJraNpMa0o31ZvfLKK+b88883lZWVpra21nz72982H374oaUqhpbr+l5++WUjacjHsmXL7Bb0Ebb+fkcqZNgwxl6NpTzOpA1VXymPM+l5XYZ6bNy4ceC9pTjODKe+fIwzLDEPAACsKokLRAEAQOkibAAAAKsIGwAAwCrCBgAAsIqwAQAArCJsAAAAqwgbAADAKsIGAACwirABAACsImwAAACrCBsAAMAqwgYAALDq/wCkjIiYDlnfowAAAABJRU5ErkJggg==\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "plt.plot(H2O_Calc_Teq22_FiltRoedder['Al2O3_Ol'], H2O_Calc_Teq22_FiltRoedder['H2O_calc'], 'ok')" ] }, { "cell_type": "code", "execution_count": 12, "id": "fb9a3046-1d59-414a-b331-d6e62fe3bd98", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Considering N=10 Ol & N=10 Liqs, which is a total of N=100 Liq- Ol pairs, be patient if this is >>1 million!\n", "You have not selected a pressure, so we have calculated Toplis Kd at 1kbar\n" ] }, { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
H2O_calcT_K_calcP used for calcsKd MeasKd calc (Toplis)ΔKd, Toplis (M-P)ΔKd, Roeder (M-P)ΔKd, Matzen (M-P)SiO2_LiqTiO2_Liq...Al_Ol_cat_fracNa_Ol_cat_fracK_Ol_cat_fracMn_Ol_cat_fracTi_Ol_cat_fracDMg_MeasCNMLCSiO2LNFDen_Beat93
02.0305821285.00522110.3142640.323039-0.0087750.014264-0.02573657.0236020.623106...0.0007720.00.00.0011790.0001239.4903840.1700760.556427-0.7602649.813745
11.6822971225.76591410.2401690.311488-0.071319-0.059831-0.09983157.6586000.654150...0.0007720.00.00.0011790.00012313.7110880.1376930.568999-0.81501910.226597
20.7049451257.61599210.2011730.300042-0.098869-0.098827-0.13882760.7312010.862054...0.0007720.00.00.0011790.00012316.2641490.1218690.577797-0.79052210.330149
3-0.7775831176.71135910.1611990.286619-0.125420-0.138801-0.17880161.5327990.440860...0.0007720.00.00.0011790.00012324.0651680.0974500.604665-0.76554710.732471
43.1059221245.20472610.2085620.322130-0.113568-0.091438-0.13143852.9691010.803412...0.0007720.00.00.0011790.00012310.4106360.1865170.522022-0.84034310.135819
\n", "

5 rows × 78 columns

\n", "
" ], "text/plain": [ " H2O_calc T_K_calc P used for calcs Kd Meas Kd calc (Toplis) \\\n", "0 2.030582 1285.005221 1 0.314264 0.323039 \n", "1 1.682297 1225.765914 1 0.240169 0.311488 \n", "2 0.704945 1257.615992 1 0.201173 0.300042 \n", "3 -0.777583 1176.711359 1 0.161199 0.286619 \n", "4 3.105922 1245.204726 1 0.208562 0.322130 \n", "\n", " ΔKd, Toplis (M-P) ΔKd, Roeder (M-P) ΔKd, Matzen (M-P) SiO2_Liq \\\n", "0 -0.008775 0.014264 -0.025736 57.023602 \n", "1 -0.071319 -0.059831 -0.099831 57.658600 \n", "2 -0.098869 -0.098827 -0.138827 60.731201 \n", "3 -0.125420 -0.138801 -0.178801 61.532799 \n", "4 -0.113568 -0.091438 -0.131438 52.969101 \n", "\n", " TiO2_Liq ... Al_Ol_cat_frac Na_Ol_cat_frac K_Ol_cat_frac \\\n", "0 0.623106 ... 0.000772 0.0 0.0 \n", "1 0.654150 ... 0.000772 0.0 0.0 \n", "2 0.862054 ... 0.000772 0.0 0.0 \n", "3 0.440860 ... 0.000772 0.0 0.0 \n", "4 0.803412 ... 0.000772 0.0 0.0 \n", "\n", " Mn_Ol_cat_frac Ti_Ol_cat_frac DMg_Meas CNML CSiO2L NF \\\n", "0 0.001179 0.000123 9.490384 0.170076 0.556427 -0.760264 \n", "1 0.001179 0.000123 13.711088 0.137693 0.568999 -0.815019 \n", "2 0.001179 0.000123 16.264149 0.121869 0.577797 -0.790522 \n", "3 0.001179 0.000123 24.065168 0.097450 0.604665 -0.765547 \n", "4 0.001179 0.000123 10.410636 0.186517 0.522022 -0.840343 \n", "\n", " Den_Beat93 \n", "0 9.813745 \n", "1 10.226597 \n", "2 10.330149 \n", "3 10.732471 \n", "4 10.135819 \n", "\n", "[5 rows x 78 columns]" ] }, "execution_count": 12, "metadata": {}, "output_type": "execute_result" } ], "source": [ "H2O_Calc_Thermobar=pt.calculate_ol_liq_hygr_matching(liq_comps=myLiquids1, ol_comps=myOls1, \n", " equationH=\"H_Gavr2016\", equationT=\"T_Put2008_eq22\",\n", " eq_tests=True)\n", "H2O_Calc_Thermobar.head()" ] }, { "cell_type": "code", "execution_count": 13, "id": "6c9a078b-d454-4456-ae6b-14be3321276f", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Column already exists in dataframe. Have ovewritten\n" ] } ], "source": [ "CalcH2O=pt.calculate_ol_liq_hygr(meltmatch=H2O_Calc_Thermobar,\n", " equationH=\"H_Gavr2016\", P=5, T=1300)\n", "CalcH2O" ] }, { "cell_type": "code", "execution_count": 14, "id": "c774cb47-5fda-4662-908c-855f288b2afa", "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
H2O_calcT_K_calcP used for calcsKd MeasKd calc (Toplis)ΔKd, Toplis (M-P)ΔKd, Roeder (M-P)ΔKd, Matzen (M-P)SiO2_LiqTiO2_Liq...Al_Ol_cat_fracNa_Ol_cat_fracK_Ol_cat_fracMn_Ol_cat_fracTi_Ol_cat_fracDMg_MeasCNMLCSiO2LNFDen_Beat93
02.0305821285.00522110.3142640.323039-0.0087750.014264-0.02573657.0236020.623106...0.0007720.00.00.0011790.0001239.4903840.1700760.556427-0.7602649.813745
11.6822971225.76591410.2401690.311488-0.071319-0.059831-0.09983157.6586000.654150...0.0007720.00.00.0011790.00012313.7110880.1376930.568999-0.81501910.226597
20.7049451257.61599210.2011730.300042-0.098869-0.098827-0.13882760.7312010.862054...0.0007720.00.00.0011790.00012316.2641490.1218690.577797-0.79052210.330149
3-0.7775831176.71135910.1611990.286619-0.125420-0.138801-0.17880161.5327990.440860...0.0007720.00.00.0011790.00012324.0651680.0974500.604665-0.76554710.732471
43.1059221245.20472610.2085620.322130-0.113568-0.091438-0.13143852.9691010.803412...0.0007720.00.00.0011790.00012310.4106360.1865170.522022-0.84034310.135819
\n", "

5 rows × 78 columns

\n", "
" ], "text/plain": [ " H2O_calc T_K_calc P used for calcs Kd Meas Kd calc (Toplis) \\\n", "0 2.030582 1285.005221 1 0.314264 0.323039 \n", "1 1.682297 1225.765914 1 0.240169 0.311488 \n", "2 0.704945 1257.615992 1 0.201173 0.300042 \n", "3 -0.777583 1176.711359 1 0.161199 0.286619 \n", "4 3.105922 1245.204726 1 0.208562 0.322130 \n", "\n", " ΔKd, Toplis (M-P) ΔKd, Roeder (M-P) ΔKd, Matzen (M-P) SiO2_Liq \\\n", "0 -0.008775 0.014264 -0.025736 57.023602 \n", "1 -0.071319 -0.059831 -0.099831 57.658600 \n", "2 -0.098869 -0.098827 -0.138827 60.731201 \n", "3 -0.125420 -0.138801 -0.178801 61.532799 \n", "4 -0.113568 -0.091438 -0.131438 52.969101 \n", "\n", " TiO2_Liq ... Al_Ol_cat_frac Na_Ol_cat_frac K_Ol_cat_frac \\\n", "0 0.623106 ... 0.000772 0.0 0.0 \n", "1 0.654150 ... 0.000772 0.0 0.0 \n", "2 0.862054 ... 0.000772 0.0 0.0 \n", "3 0.440860 ... 0.000772 0.0 0.0 \n", "4 0.803412 ... 0.000772 0.0 0.0 \n", "\n", " Mn_Ol_cat_frac Ti_Ol_cat_frac DMg_Meas CNML CSiO2L NF \\\n", "0 0.001179 0.000123 9.490384 0.170076 0.556427 -0.760264 \n", "1 0.001179 0.000123 13.711088 0.137693 0.568999 -0.815019 \n", "2 0.001179 0.000123 16.264149 0.121869 0.577797 -0.790522 \n", "3 0.001179 0.000123 24.065168 0.097450 0.604665 -0.765547 \n", "4 0.001179 0.000123 10.410636 0.186517 0.522022 -0.840343 \n", "\n", " Den_Beat93 \n", "0 9.813745 \n", "1 10.226597 \n", "2 10.330149 \n", "3 10.732471 \n", "4 10.135819 \n", "\n", "[5 rows x 78 columns]" ] }, "execution_count": 14, "metadata": {}, "output_type": "execute_result" } ], "source": [ "H2O_Calc_Thermobar.head()" ] }, { "cell_type": "code", "execution_count": 15, "id": "67b8c13e-2868-41cb-aa85-e79c4490d397", "metadata": {}, "outputs": [], "source": [ "Liq_Ols=H2O_Calc_Thermobar\n", "import inspect\n", "func = pt.Liquid_olivine_hygr_funcs_by_name[\"H_Gavr2016\"]\n", "sig=inspect.signature(func)\n", "kwargs = {name: Liq_Ols[name] for name, p in sig.parameters.items() if p.kind == inspect.Parameter.KEYWORD_ONLY}\n", "H2O_Calc_np=func(**kwargs)" ] }, { "cell_type": "code", "execution_count": 16, "id": "9ccb1417-44b5-4470-83ee-80e833a4ccde", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([ 2.03058223, 1.68229723, 0.70494526, -0.77758337, 3.10592163,\n", " 2.61247201, 1.7569024 , 2.65237953, 2.97082766, 3.4382364 ,\n", " 1.76002335, 1.36448163, 0.34484373, -1.21046986, 2.86020533,\n", " 2.33649615, 1.43635461, 2.40467736, 2.70382963, 3.24578146,\n", " 1.76002335, 1.36448163, 0.34484373, -1.21046986, 2.86020533,\n", " 2.33649615, 1.43635461, 2.40467736, 2.70382963, 3.24578146,\n", " 2.30114112, 2.00011282, 1.06504679, -0.34469688, 3.35163792,\n", " 2.88844787, 2.07745018, 2.9000817 , 3.2378257 , 3.63069135,\n", " 1.76002335, 1.36448163, 0.34484373, -1.21046986, 2.86020533,\n", " 2.33649615, 1.43635461, 2.40467736, 2.70382963, 3.24578146,\n", " 0.94834669, 0.41103486, -0.73546085, -2.50912934, 2.12305644,\n", " 1.50856857, 0.47471126, 1.66157084, 1.90283551, 2.66841664,\n", " -0.9455655 , -1.81367429, -3.25617155, -5.53933479, 0.40304236,\n", " -0.42326244, -1.76912324, -0.07234437, 0.03384924, 1.32123206,\n", " 1.21890558, 0.72885045, -0.37535933, -2.07624285, 2.36877274,\n", " 1.78454443, 0.79525904, 1.90927301, 2.16983355, 2.86087158,\n", " -0.13388885, -0.86022751, -2.17586697, -4.24067531, 1.14019125,\n", " 0.40466514, -0.80747988, 0.67076215, 0.83484336, 1.89859688,\n", " 1.21890558, 0.72885045, -0.37535933, -2.07624285, 2.36877274,\n", " 1.78454443, 0.79525904, 1.90927301, 2.16983355, 2.86087158])" ] }, "execution_count": 16, "metadata": {}, "output_type": "execute_result" } ], "source": [ "H2O_Calc_np" ] }, { "cell_type": "markdown", "id": "38082053-a605-4489-bc1f-eb8252317f8b", "metadata": {}, "source": [ "## Example 2 - Calculating equilibrium tests\n", "- In this example, we calculate equilibrium tests, as water contents calculated from non-equilibrium pairs are likely to be nonsense.\n", "- 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)" ] }, { "cell_type": "code", "execution_count": 17, "id": "d9db54d0-86e8-4ebb-8c58-05486b37c5f4", "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
H2O_calcTemp used for calcsP used for calcsKd MeasKd calc (Toplis)ΔKd, Toplis (M-P)ΔKd, Roeder (M-P)ΔKd, Matzen (M-P)SiO2_OlTiO2_Ol...Mg_Number_Liq_Fe3Si_Ol_cat_fracMg_Ol_cat_fracFet_Ol_cat_fracCa_Ol_cat_fracAl_Ol_cat_fracNa_Ol_cat_fracK_Ol_cat_fracMn_Ol_cat_fracTi_Ol_cat_frac
02.030582130010.3142640.326180-0.0119160.014264-0.02573640.50.02...0.6816660.3316770.5786910.0849250.0026320.0007720.00.00.0011790.000123
11.364482130010.1753830.321910-0.146527-0.124617-0.16461741.30.03...0.6207070.3310380.5998460.0642840.0026620.0010390.00.00.0009500.000181
20.344844130010.2695820.314838-0.045256-0.030418-0.07041839.70.05...0.5781960.3315600.5540390.1089560.0027740.0010830.00.00.0012730.000314
3-0.344697130010.1737990.314138-0.140339-0.126201-0.16620140.50.05...0.5234450.3321700.5722160.0905390.0025480.0009670.00.00.0012500.000309
42.860205130010.1521720.328355-0.176184-0.147828-0.18782840.50.00...0.5869670.3308860.6004520.0642940.0027140.0009630.00.00.0006920.000000
51.508569130010.1595540.332767-0.173213-0.140446-0.18044640.50.02...0.5654650.3311780.5912290.0724880.0029790.0009640.00.00.0010390.000123
6-1.769123130010.2159150.342292-0.126376-0.084085-0.12408540.20.04...0.5287310.3340560.5525060.1063260.0036500.0021550.00.00.0010560.000250
71.909273130010.4046990.412296-0.0075970.1046990.06469939.60.04...0.6200330.3330160.5302970.1315130.0029730.0005950.00.00.0013530.000253
80.834843130010.3141150.391918-0.0778020.014115-0.02588539.80.05...0.5838640.3340670.5393070.1207350.0034170.0005940.00.00.0015640.000316
92.860872130010.4291350.2890640.1400720.1291350.08913539.70.03...0.6657290.3307140.5464170.1177350.0029450.0005890.00.00.0014110.000188
\n", "

10 rows × 70 columns

\n", "
" ], "text/plain": [ " H2O_calc Temp used for calcs P used for calcs Kd Meas \\\n", "0 2.030582 1300 1 0.314264 \n", "1 1.364482 1300 1 0.175383 \n", "2 0.344844 1300 1 0.269582 \n", "3 -0.344697 1300 1 0.173799 \n", "4 2.860205 1300 1 0.152172 \n", "5 1.508569 1300 1 0.159554 \n", "6 -1.769123 1300 1 0.215915 \n", "7 1.909273 1300 1 0.404699 \n", "8 0.834843 1300 1 0.314115 \n", "9 2.860872 1300 1 0.429135 \n", "\n", " Kd calc (Toplis) ΔKd, Toplis (M-P) ΔKd, Roeder (M-P) ΔKd, Matzen (M-P) \\\n", "0 0.326180 -0.011916 0.014264 -0.025736 \n", "1 0.321910 -0.146527 -0.124617 -0.164617 \n", "2 0.314838 -0.045256 -0.030418 -0.070418 \n", "3 0.314138 -0.140339 -0.126201 -0.166201 \n", "4 0.328355 -0.176184 -0.147828 -0.187828 \n", "5 0.332767 -0.173213 -0.140446 -0.180446 \n", "6 0.342292 -0.126376 -0.084085 -0.124085 \n", "7 0.412296 -0.007597 0.104699 0.064699 \n", "8 0.391918 -0.077802 0.014115 -0.025885 \n", "9 0.289064 0.140072 0.129135 0.089135 \n", "\n", " SiO2_Ol TiO2_Ol ... Mg_Number_Liq_Fe3 Si_Ol_cat_frac Mg_Ol_cat_frac \\\n", "0 40.5 0.02 ... 0.681666 0.331677 0.578691 \n", "1 41.3 0.03 ... 0.620707 0.331038 0.599846 \n", "2 39.7 0.05 ... 0.578196 0.331560 0.554039 \n", "3 40.5 0.05 ... 0.523445 0.332170 0.572216 \n", "4 40.5 0.00 ... 0.586967 0.330886 0.600452 \n", "5 40.5 0.02 ... 0.565465 0.331178 0.591229 \n", "6 40.2 0.04 ... 0.528731 0.334056 0.552506 \n", "7 39.6 0.04 ... 0.620033 0.333016 0.530297 \n", "8 39.8 0.05 ... 0.583864 0.334067 0.539307 \n", "9 39.7 0.03 ... 0.665729 0.330714 0.546417 \n", "\n", " Fet_Ol_cat_frac Ca_Ol_cat_frac Al_Ol_cat_frac Na_Ol_cat_frac \\\n", "0 0.084925 0.002632 0.000772 0.0 \n", "1 0.064284 0.002662 0.001039 0.0 \n", "2 0.108956 0.002774 0.001083 0.0 \n", "3 0.090539 0.002548 0.000967 0.0 \n", "4 0.064294 0.002714 0.000963 0.0 \n", "5 0.072488 0.002979 0.000964 0.0 \n", "6 0.106326 0.003650 0.002155 0.0 \n", "7 0.131513 0.002973 0.000595 0.0 \n", "8 0.120735 0.003417 0.000594 0.0 \n", "9 0.117735 0.002945 0.000589 0.0 \n", "\n", " K_Ol_cat_frac Mn_Ol_cat_frac Ti_Ol_cat_frac \n", "0 0.0 0.001179 0.000123 \n", "1 0.0 0.000950 0.000181 \n", "2 0.0 0.001273 0.000314 \n", "3 0.0 0.001250 0.000309 \n", "4 0.0 0.000692 0.000000 \n", "5 0.0 0.001039 0.000123 \n", "6 0.0 0.001056 0.000250 \n", "7 0.0 0.001353 0.000253 \n", "8 0.0 0.001564 0.000316 \n", "9 0.0 0.001411 0.000188 \n", "\n", "[10 rows x 70 columns]" ] }, "execution_count": 17, "metadata": {}, "output_type": "execute_result" } ], "source": [ "H2O_Calc_Thermobar_eqTest1=pt.calculate_ol_liq_hygr(liq_comps=myLiquids1, ol_comps=myOls1, \n", " equationH=\"H_Gavr2016\", eq_tests=True, P=1, T=1300)\n", "H2O_Calc_Thermobar_eqTest1" ] }, { "cell_type": "markdown", "id": "d02b131e-e53c-4888-83cd-373235a5b3fb", "metadata": {}, "source": [ "### Can filter outputs, so only get calculated H2O contents for those with delta Kd Roeder <0.1" ] }, { "cell_type": "code", "execution_count": 18, "id": "8b920e05-bd79-49e3-ac69-70f5761a8795", "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
H2O_calcTemp used for calcsP used for calcsKd MeasKd calc (Toplis)ΔKd, Toplis (M-P)ΔKd, Roeder (M-P)ΔKd, Matzen (M-P)SiO2_OlTiO2_Ol...Mg_Number_Liq_Fe3Si_Ol_cat_fracMg_Ol_cat_fracFet_Ol_cat_fracCa_Ol_cat_fracAl_Ol_cat_fracNa_Ol_cat_fracK_Ol_cat_fracMn_Ol_cat_fracTi_Ol_cat_frac
02.030582130010.3142640.326180-0.0119160.014264-0.02573640.50.02...0.6816660.3316770.5786910.0849250.0026320.0007720.00.00.0011790.000123
11.364482130010.1753830.321910-0.146527-0.124617-0.16461741.30.03...0.6207070.3310380.5998460.0642840.0026620.0010390.00.00.0009500.000181
20.344844130010.2695820.314838-0.045256-0.030418-0.07041839.70.05...0.5781960.3315600.5540390.1089560.0027740.0010830.00.00.0012730.000314
3-0.344697130010.1737990.314138-0.140339-0.126201-0.16620140.50.05...0.5234450.3321700.5722160.0905390.0025480.0009670.00.00.0012500.000309
42.860205130010.1521720.328355-0.176184-0.147828-0.18782840.50.00...0.5869670.3308860.6004520.0642940.0027140.0009630.00.00.0006920.000000
51.508569130010.1595540.332767-0.173213-0.140446-0.18044640.50.02...0.5654650.3311780.5912290.0724880.0029790.0009640.00.00.0010390.000123
6-1.769123130010.2159150.342292-0.126376-0.084085-0.12408540.20.04...0.5287310.3340560.5525060.1063260.0036500.0021550.00.00.0010560.000250
80.834843130010.3141150.391918-0.0778020.014115-0.02588539.80.05...0.5838640.3340670.5393070.1207350.0034170.0005940.00.00.0015640.000316
\n", "

8 rows × 70 columns

\n", "
" ], "text/plain": [ " H2O_calc Temp used for calcs P used for calcs Kd Meas \\\n", "0 2.030582 1300 1 0.314264 \n", "1 1.364482 1300 1 0.175383 \n", "2 0.344844 1300 1 0.269582 \n", "3 -0.344697 1300 1 0.173799 \n", "4 2.860205 1300 1 0.152172 \n", "5 1.508569 1300 1 0.159554 \n", "6 -1.769123 1300 1 0.215915 \n", "8 0.834843 1300 1 0.314115 \n", "\n", " Kd calc (Toplis) ΔKd, Toplis (M-P) ΔKd, Roeder (M-P) ΔKd, Matzen (M-P) \\\n", "0 0.326180 -0.011916 0.014264 -0.025736 \n", "1 0.321910 -0.146527 -0.124617 -0.164617 \n", "2 0.314838 -0.045256 -0.030418 -0.070418 \n", "3 0.314138 -0.140339 -0.126201 -0.166201 \n", "4 0.328355 -0.176184 -0.147828 -0.187828 \n", "5 0.332767 -0.173213 -0.140446 -0.180446 \n", "6 0.342292 -0.126376 -0.084085 -0.124085 \n", "8 0.391918 -0.077802 0.014115 -0.025885 \n", "\n", " SiO2_Ol TiO2_Ol ... Mg_Number_Liq_Fe3 Si_Ol_cat_frac Mg_Ol_cat_frac \\\n", "0 40.5 0.02 ... 0.681666 0.331677 0.578691 \n", "1 41.3 0.03 ... 0.620707 0.331038 0.599846 \n", "2 39.7 0.05 ... 0.578196 0.331560 0.554039 \n", "3 40.5 0.05 ... 0.523445 0.332170 0.572216 \n", "4 40.5 0.00 ... 0.586967 0.330886 0.600452 \n", "5 40.5 0.02 ... 0.565465 0.331178 0.591229 \n", "6 40.2 0.04 ... 0.528731 0.334056 0.552506 \n", "8 39.8 0.05 ... 0.583864 0.334067 0.539307 \n", "\n", " Fet_Ol_cat_frac Ca_Ol_cat_frac Al_Ol_cat_frac Na_Ol_cat_frac \\\n", "0 0.084925 0.002632 0.000772 0.0 \n", "1 0.064284 0.002662 0.001039 0.0 \n", "2 0.108956 0.002774 0.001083 0.0 \n", "3 0.090539 0.002548 0.000967 0.0 \n", "4 0.064294 0.002714 0.000963 0.0 \n", "5 0.072488 0.002979 0.000964 0.0 \n", "6 0.106326 0.003650 0.002155 0.0 \n", "8 0.120735 0.003417 0.000594 0.0 \n", "\n", " K_Ol_cat_frac Mn_Ol_cat_frac Ti_Ol_cat_frac \n", "0 0.0 0.001179 0.000123 \n", "1 0.0 0.000950 0.000181 \n", "2 0.0 0.001273 0.000314 \n", "3 0.0 0.001250 0.000309 \n", "4 0.0 0.000692 0.000000 \n", "5 0.0 0.001039 0.000123 \n", "6 0.0 0.001056 0.000250 \n", "8 0.0 0.001564 0.000316 \n", "\n", "[8 rows x 70 columns]" ] }, "execution_count": 18, "metadata": {}, "output_type": "execute_result" } ], "source": [ "InEq=H2O_Calc_Thermobar_eqTest1.loc[H2O_Calc_Thermobar_eqTest1['ΔKd, Roeder (M-P)']<0.1]\n", "InEq" ] }, { "cell_type": "markdown", "id": "76fba6bd-1fbc-4f68-9424-05de246d6285", "metadata": {}, "source": [ "- We can also use a thermometer to calculate temperatures to perform Toplis calculations at" ] }, { "cell_type": "code", "execution_count": 19, "id": "2fa34972-9bc9-4afc-9d53-3fd03a8e2197", "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
H2O_calcT_K_calcP used for calcsKd MeasKd calc (Toplis)ΔKd, Toplis (M-P)ΔKd, Roeder (M-P)ΔKd, Matzen (M-P)SiO2_OlTiO2_Ol...Al_Ol_cat_fracNa_Ol_cat_fracK_Ol_cat_fracMn_Ol_cat_fracTi_Ol_cat_fracDMg_MeasCNMLCSiO2LNFDen_Beat93
02.0305821285.00522110.3142640.323039-0.0087750.014264-0.02573640.50.02...0.0007720.00.00.0011790.0001239.4903840.1700760.556427-0.7602649.813745
11.3644821219.81518510.1753830.304486-0.129103-0.124617-0.16461741.30.03...0.0010390.00.00.0009500.00018114.2123110.1376930.568999-0.81501910.298404
20.3448441265.43180210.2695820.307956-0.038374-0.030418-0.07041839.70.05...0.0010830.00.00.0012730.00031415.5713060.1218690.577797-0.79052210.243083
3-0.3446971178.40278110.1737990.288518-0.114719-0.126201-0.16620140.50.05...0.0009670.00.00.0012500.00030923.7959170.0974500.604665-0.76554710.709968
42.8602051238.83621610.1521720.314913-0.162742-0.147828-0.18782840.50.00...0.0009630.00.00.0006920.00000010.8021190.1865170.522022-0.84034310.209647
51.5085691224.69378910.1595540.316022-0.156468-0.140446-0.18044640.50.02...0.0009640.00.00.0010390.00012312.2988980.1677580.532846-0.83174410.289637
6-1.7691231221.17161610.2159150.324840-0.108924-0.084085-0.12408540.20.04...0.0021550.00.00.0010560.00025014.1158660.1455100.546226-0.81881810.317328
71.9092731179.47328610.4046990.3803210.0243770.1046990.06469939.60.04...0.0005950.00.00.0013530.0002537.3728630.2200360.554167-0.7894359.844920
80.8348431142.99430910.3141150.351192-0.0370770.014115-0.02588539.80.05...0.0005940.00.00.0015640.00031610.5129780.1802400.551142-0.87321110.228352
92.8608721318.15424210.4291350.2922740.1368620.1291350.08913539.70.03...0.0005890.00.00.0014110.0001887.0711140.2283690.498136-0.8404549.673521
\n", "

10 rows × 75 columns

\n", "
" ], "text/plain": [ " H2O_calc T_K_calc P used for calcs Kd Meas Kd calc (Toplis) \\\n", "0 2.030582 1285.005221 1 0.314264 0.323039 \n", "1 1.364482 1219.815185 1 0.175383 0.304486 \n", "2 0.344844 1265.431802 1 0.269582 0.307956 \n", "3 -0.344697 1178.402781 1 0.173799 0.288518 \n", "4 2.860205 1238.836216 1 0.152172 0.314913 \n", "5 1.508569 1224.693789 1 0.159554 0.316022 \n", "6 -1.769123 1221.171616 1 0.215915 0.324840 \n", "7 1.909273 1179.473286 1 0.404699 0.380321 \n", "8 0.834843 1142.994309 1 0.314115 0.351192 \n", "9 2.860872 1318.154242 1 0.429135 0.292274 \n", "\n", " ΔKd, Toplis (M-P) ΔKd, Roeder (M-P) ΔKd, Matzen (M-P) SiO2_Ol TiO2_Ol \\\n", "0 -0.008775 0.014264 -0.025736 40.5 0.02 \n", "1 -0.129103 -0.124617 -0.164617 41.3 0.03 \n", "2 -0.038374 -0.030418 -0.070418 39.7 0.05 \n", "3 -0.114719 -0.126201 -0.166201 40.5 0.05 \n", "4 -0.162742 -0.147828 -0.187828 40.5 0.00 \n", "5 -0.156468 -0.140446 -0.180446 40.5 0.02 \n", "6 -0.108924 -0.084085 -0.124085 40.2 0.04 \n", "7 0.024377 0.104699 0.064699 39.6 0.04 \n", "8 -0.037077 0.014115 -0.025885 39.8 0.05 \n", "9 0.136862 0.129135 0.089135 39.7 0.03 \n", "\n", " ... Al_Ol_cat_frac Na_Ol_cat_frac K_Ol_cat_frac Mn_Ol_cat_frac \\\n", "0 ... 0.000772 0.0 0.0 0.001179 \n", "1 ... 0.001039 0.0 0.0 0.000950 \n", "2 ... 0.001083 0.0 0.0 0.001273 \n", "3 ... 0.000967 0.0 0.0 0.001250 \n", "4 ... 0.000963 0.0 0.0 0.000692 \n", "5 ... 0.000964 0.0 0.0 0.001039 \n", "6 ... 0.002155 0.0 0.0 0.001056 \n", "7 ... 0.000595 0.0 0.0 0.001353 \n", "8 ... 0.000594 0.0 0.0 0.001564 \n", "9 ... 0.000589 0.0 0.0 0.001411 \n", "\n", " Ti_Ol_cat_frac DMg_Meas CNML CSiO2L NF Den_Beat93 \n", "0 0.000123 9.490384 0.170076 0.556427 -0.760264 9.813745 \n", "1 0.000181 14.212311 0.137693 0.568999 -0.815019 10.298404 \n", "2 0.000314 15.571306 0.121869 0.577797 -0.790522 10.243083 \n", "3 0.000309 23.795917 0.097450 0.604665 -0.765547 10.709968 \n", "4 0.000000 10.802119 0.186517 0.522022 -0.840343 10.209647 \n", "5 0.000123 12.298898 0.167758 0.532846 -0.831744 10.289637 \n", "6 0.000250 14.115866 0.145510 0.546226 -0.818818 10.317328 \n", "7 0.000253 7.372863 0.220036 0.554167 -0.789435 9.844920 \n", "8 0.000316 10.512978 0.180240 0.551142 -0.873211 10.228352 \n", "9 0.000188 7.071114 0.228369 0.498136 -0.840454 9.673521 \n", "\n", "[10 rows x 75 columns]" ] }, "execution_count": 19, "metadata": {}, "output_type": "execute_result" } ], "source": [ "H2O_Calc_Thermobar_eqTest2=pt.calculate_ol_liq_hygr(liq_comps=myLiquids1, ol_comps=myOls1, \n", " equationH=\"H_Gavr2016\", eq_tests=True, P=1, equationT=\"T_Put2008_eq22\")\n", "H2O_Calc_Thermobar_eqTest2" ] }, { "cell_type": "markdown", "id": "112f2586-5b4c-4b4e-861d-0507682987a3", "metadata": {}, "source": [ "- We can also change the proportion of Fe3 used for the equilibrium tests" ] }, { "cell_type": "code", "execution_count": 20, "id": "7ef7420c-f990-47b0-8d08-b9da218bd106", "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
H2O_calcT_K_calcP used for calcsKd MeasKd calc (Toplis)ΔKd, Toplis (M-P)ΔKd, Roeder (M-P)ΔKd, Matzen (M-P)SiO2_OlTiO2_Ol...Al_Ol_cat_fracNa_Ol_cat_fracK_Ol_cat_fracMn_Ol_cat_fracTi_Ol_cat_fracDMg_MeasCNMLCSiO2LNFDen_Beat93
02.0305821285.00522110.3591580.3230390.0361200.0591580.01915840.50.02...0.0007720.00.00.0011790.0001239.4903840.1700760.556427-0.7602649.813745
11.3644821219.81518510.2004380.304486-0.104048-0.099562-0.13956241.30.03...0.0010390.00.00.0009500.00018114.2123110.1376930.568999-0.81501910.298404
20.3448441265.43180210.3080940.3079560.0001380.008094-0.03190639.70.05...0.0010830.00.00.0012730.00031415.5713060.1218690.577797-0.79052210.243083
3-0.3446971178.40278110.1986280.288518-0.089891-0.101372-0.14137240.50.05...0.0009670.00.00.0012500.00030923.7959170.0974500.604665-0.76554710.709968
42.8602051238.83621610.1739110.314913-0.141003-0.126089-0.16608940.50.00...0.0009630.00.00.0006920.00000010.8021190.1865170.522022-0.84034310.209647
51.5085691224.69378910.1823470.316022-0.133675-0.117653-0.15765340.50.02...0.0009640.00.00.0010390.00012312.2988980.1677580.532846-0.83174410.289637
6-1.7691231221.17161610.2467610.324840-0.078079-0.053239-0.09323940.20.04...0.0021550.00.00.0010560.00025014.1158660.1455100.546226-0.81881810.317328
71.9092731179.47328610.4625130.3803210.0821910.1625130.12251339.60.04...0.0005950.00.00.0013530.0002537.3728630.2200360.554167-0.7894359.844920
80.8348431142.99430910.3589890.3511920.0077970.0589890.01898939.80.05...0.0005940.00.00.0015640.00031610.5129780.1802400.551142-0.87321110.228352
92.8608721318.15424210.4904410.2922740.1981670.1904410.15044139.70.03...0.0005890.00.00.0014110.0001887.0711140.2283690.498136-0.8404549.673521
\n", "

10 rows × 75 columns

\n", "
" ], "text/plain": [ " H2O_calc T_K_calc P used for calcs Kd Meas Kd calc (Toplis) \\\n", "0 2.030582 1285.005221 1 0.359158 0.323039 \n", "1 1.364482 1219.815185 1 0.200438 0.304486 \n", "2 0.344844 1265.431802 1 0.308094 0.307956 \n", "3 -0.344697 1178.402781 1 0.198628 0.288518 \n", "4 2.860205 1238.836216 1 0.173911 0.314913 \n", "5 1.508569 1224.693789 1 0.182347 0.316022 \n", "6 -1.769123 1221.171616 1 0.246761 0.324840 \n", "7 1.909273 1179.473286 1 0.462513 0.380321 \n", "8 0.834843 1142.994309 1 0.358989 0.351192 \n", "9 2.860872 1318.154242 1 0.490441 0.292274 \n", "\n", " ΔKd, Toplis (M-P) ΔKd, Roeder (M-P) ΔKd, Matzen (M-P) SiO2_Ol TiO2_Ol \\\n", "0 0.036120 0.059158 0.019158 40.5 0.02 \n", "1 -0.104048 -0.099562 -0.139562 41.3 0.03 \n", "2 0.000138 0.008094 -0.031906 39.7 0.05 \n", "3 -0.089891 -0.101372 -0.141372 40.5 0.05 \n", "4 -0.141003 -0.126089 -0.166089 40.5 0.00 \n", "5 -0.133675 -0.117653 -0.157653 40.5 0.02 \n", "6 -0.078079 -0.053239 -0.093239 40.2 0.04 \n", "7 0.082191 0.162513 0.122513 39.6 0.04 \n", "8 0.007797 0.058989 0.018989 39.8 0.05 \n", "9 0.198167 0.190441 0.150441 39.7 0.03 \n", "\n", " ... Al_Ol_cat_frac Na_Ol_cat_frac K_Ol_cat_frac Mn_Ol_cat_frac \\\n", "0 ... 0.000772 0.0 0.0 0.001179 \n", "1 ... 0.001039 0.0 0.0 0.000950 \n", "2 ... 0.001083 0.0 0.0 0.001273 \n", "3 ... 0.000967 0.0 0.0 0.001250 \n", "4 ... 0.000963 0.0 0.0 0.000692 \n", "5 ... 0.000964 0.0 0.0 0.001039 \n", "6 ... 0.002155 0.0 0.0 0.001056 \n", "7 ... 0.000595 0.0 0.0 0.001353 \n", "8 ... 0.000594 0.0 0.0 0.001564 \n", "9 ... 0.000589 0.0 0.0 0.001411 \n", "\n", " Ti_Ol_cat_frac DMg_Meas CNML CSiO2L NF Den_Beat93 \n", "0 0.000123 9.490384 0.170076 0.556427 -0.760264 9.813745 \n", "1 0.000181 14.212311 0.137693 0.568999 -0.815019 10.298404 \n", "2 0.000314 15.571306 0.121869 0.577797 -0.790522 10.243083 \n", "3 0.000309 23.795917 0.097450 0.604665 -0.765547 10.709968 \n", "4 0.000000 10.802119 0.186517 0.522022 -0.840343 10.209647 \n", "5 0.000123 12.298898 0.167758 0.532846 -0.831744 10.289637 \n", "6 0.000250 14.115866 0.145510 0.546226 -0.818818 10.317328 \n", "7 0.000253 7.372863 0.220036 0.554167 -0.789435 9.844920 \n", "8 0.000316 10.512978 0.180240 0.551142 -0.873211 10.228352 \n", "9 0.000188 7.071114 0.228369 0.498136 -0.840454 9.673521 \n", "\n", "[10 rows x 75 columns]" ] }, "execution_count": 20, "metadata": {}, "output_type": "execute_result" } ], "source": [ "H2O_Calc_Thermobar_eqTest3=pt.calculate_ol_liq_hygr(liq_comps=myLiquids1, ol_comps=myOls1, \n", " equationH=\"H_Gavr2016\", eq_tests=True,\n", " P=1, equationT=\"T_Put2008_eq22\", Fe3Fet_Liq=0.3)\n", "H2O_Calc_Thermobar_eqTest3" ] }, { "cell_type": "code", "execution_count": null, "id": "5eaf8f37-6b95-422c-8ff6-ce841d3037a3", "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "code", "execution_count": null, "id": "8e2fe795-c5c4-4602-8abd-279b9f378ae3", "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "code", "execution_count": null, "id": "70c8a8e9-4692-4bbf-9b2e-312f2b0f4703", "metadata": {}, "outputs": [], "source": [] } ], "metadata": { "kernelspec": { "display_name": "Python 3 (ipykernel)", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.9.13" } }, "nbformat": 4, "nbformat_minor": 5 }