Opx and Opx-Liquid functions
- Thermobar.orthopyroxene_thermobarometry.P_Put2008_eq29a(T, *, Si_Liq_cat_frac, Mg_Liq_cat_frac, Fet_Opx_cat_6ox, FmAl2SiO6, Na_Liq_cat_frac, Al_Liq_cat_frac, K_Liq_cat_frac, H2O_Liq, NaAlSi2O6)[source]
Orthopyroxene-Liquid barometer of Putirka, (2008) eq 29a. Global calibration of experiments. [Putirka, 2008]
SEE=+-2.6 kbar (all data) SEE=+-2.1 kbar for hydrous data
- Thermobar.orthopyroxene_thermobarometry.P_Put2008_eq29b(T, *, ln_FmAl2SiO6_liq, Al_Liq_cat_frac, Mg_Liq_cat_frac, Fet_Liq_cat_frac, Si_Opx_cat_6ox, Fet_Opx_cat_6ox, Na_Liq_cat_frac, K_Liq_cat_frac, H2O_Liq)[source]
Orthopyroxene-Liquid barometer of Putirka, (2008) eq 29b. Global calibration of experiments. [Putirka, 2008]
Exact SEE not given, but ~2-3 kbar.
- Thermobar.orthopyroxene_thermobarometry.P_Put2008_eq29c(T, *, Al_Opx_cat_6ox, Ca_Opx_cat_6ox, Cr_Opx_cat_6ox)[source]
Orthopyroxene-only barometer of Putirka, (2008) eq 29c. Doesn’t require liquid composition. Global calibration of experiments, has systematic error for hydrous data. [Putirka, 2008]
SEE=+-3 kbar (anhydrous)
SEE=+-4.1 kbar (hydrous)
- Thermobar.orthopyroxene_thermobarometry.P_Put2008_eq29cnoCr(T, *, Al_Opx_cat_6ox, Ca_Opx_cat_6ox, Cr_Opx_cat_6ox)[source]
Orthopyroxene-only barometer of Putirka, (2008) eq 29c. Doesn’t require liquid composition. Global calibration of experiments, has systematic error for hydrous data. [Putirka, 2008]
SEE=+-3 kbar (anhydrous)
SEE=+-4.1 kbar (hydrous)
- Thermobar.orthopyroxene_thermobarometry.P_Put_Felsic_Opx(T=None, *, Al2O3_Opx, Al2O3_Liq)[source]
New Opx_Liq barometer released in Putirka spreadsheets. Addresses problem in low pressure Opxs that Al(VI)=0. Uses the Al2O3 content of the Opx instead. Felsic regression. [Putirka, 2008]
SEE=+-1.2 kbar
- Thermobar.orthopyroxene_thermobarometry.P_Put_Global_Opx(T=None, *, MgO_Liq, Al2O3_Opx, Al2O3_Liq, Na2O_Liq, K2O_Liq)[source]
New Opx-Liquid barometer released in Putirka spreadsheets. Addresses problem in low pressure Opxs that Al(VI)=0. Uses the Al2O3 content of the Opx instead. [Putirka, 2008]
SEE=+-3.2 kbar
- Thermobar.orthopyroxene_thermobarometry.T_Beatt1993_opx(P, *, Ca_Liq_cat_frac, Fet_Liq_cat_frac, Mg_Liq_cat_frac, Mn_Liq_cat_frac, Al_Liq_cat_frac, Ti_Liq_cat_frac)[source]
Opx-Liquid thermometer of Beattie (1993). Only uses liquid composition. Putirka (2008) warn that overpredicts for hydrous compositions at <1200°C, and anhydrous compositions at <1100°C [Beattie, 1993]
- Thermobar.orthopyroxene_thermobarometry.T_Put2008_eq28a(P, *, H2O_Liq, ln_Fm2Si2O6_liq, Mg_Liq_cat_frac, K_Liq_cat_frac, Fet_Liq_cat_frac, Fet_Opx_cat_6ox)[source]
Putirka (2008) Equation 28a. Global calibration: T=750-1600°C, SiO2=33-77 wt%, P=atm-11 GPa. H2O=0-14.2 wt%. [Putirka, 2008]
SEE= ±26°C for calibration data
SEE=± 41°C for testing data
- Thermobar.orthopyroxene_thermobarometry.T_Put2008_eq28b_opx_sat(P, *, H2O_Liq, Mg_Liq_cat_frac, Ca_Liq_cat_frac, K_Liq_cat_frac, Mn_Liq_cat_frac, Fet_Liq_cat_frac, Fet_Opx_cat_6ox, Al_Liq_cat_frac, Ti_Liq_cat_frac, Mg_Number_Liq_NoFe3)[source]
Equation 28b of Putirka et al. (2008). Orthopyroxene-liquid thermometer- temperature at which a liquid is saturated in orhopyroxene (for a given P). [Putirka, 2008]
- Thermobar.orthopyroxene_thermobarometry.calculate_opx_liq_press(*, equationP, opx_comps=None, liq_comps=None, meltmatch=None, T=None, eq_tests=False, H2O_Liq=None, Fe3Fet_Liq=None)[source]
Orthopyroxene-Liquid barometer, user specifies equation, and calculates pressure in kbar. Also has option to calculate equilibrium tests.
- Parameters:
opx_comps (pandas.DataFrame) – Orthopyroxene compositions with column headings SiO2_Opx, MgO_Opx etc.
liq_comps (pandas.DataFrame) – Liquid compositions with column headings SiO2_Liq, MgO_Liq etc.
Or
meltmatch (pandas.DataFrame) – Combined Opx-Liquid compositions. Used for calculate_opx_liq_press_temp_matching.
EquationP (str) –
choose from:
P_Put2008_eq29aP_Put2008_eq29bP_Put2008_eq29c (technically Opx-only, but include for purposes of easy comparison,P_Put_Global_OpxP_Put_Felsic_Opx
- T: float, int, pandas.Series, str (“Solve”)
Temperature in Kelvin Only needed for T-sensitive barometers. If enter T=”Solve”, returns a partial function Else, enter an integer, float, or panda series
- eq_tests: bool
If False, just returns pressure (default) as a panda series If True, returns pressure, Values of Eq tests, as well as user-entered opx and liq comps and components.
- Returns:
If eq_tests=False – pandas.Series: Pressure in kbar (if eq_tests=False)
If eq_tests=True – pandas.DataFrame: Pressure in kbar + Kd-Fe-Mg + opx+liq comp
- Thermobar.orthopyroxene_thermobarometry.calculate_opx_liq_press_temp(*, liq_comps=None, opx_comps=None, meltmatch=None, equationP=None, equationT=None, iterations=30, T_K_Guess=1300, eq_tests=False, H2O_Liq=None, Fe3Fet_Liq=None)[source]
Solves simultaneous equations for temperature and pressure using orthopyroxene-liquid thermometers and barometers.
- Parameters:
opx_comps (pandas.DataFrame) – Orthopyroxene compositions with column headings SiO2_Opx, MgO_Opx etc.
liq_comps (pandas.DataFrame) – Liquid compositions with column headings SiO2_Liq, MgO_Liq etc.
EquationP (str) – Barometer | P_Put2008_eq28a | P_Put2008_eq28b | P_Put2008_eq28c | P_Put_Global | P_Put_Felsic
EquationT (str) – Thermometer | T_Opx_Beatt1993 | T_Put2008_eq28a | T_Put2008_eq28b_opx_sat
Optional
- iterations: int (default=30)
Number of iterations used to converge to solution.
- T_K_guess: int or float (default=1300K)
Initial guess of temperature. Default is 1300K
- eq_tests: bool
If False, just returns pressure in Kbar, temp in Kelvin as a dataframe If True, returns pressure, temperature, Values of Eq tests, as well as user-entered opx and liq comps and components.
- Returns:
If eq_tests=False – pandas.DataFrame: Temperature in Kelvin, pressure in Kbar
If eq_tests=True – pandas.DataFrame: Temperature in Kelvin, pressure in Kbar Eq Tests + opx+liq comps + components
- Thermobar.orthopyroxene_thermobarometry.calculate_opx_liq_press_temp_matching(*, liq_comps, opx_comps, equationT=None, equationP=None, P=None, T=None, eq_crit=False, Fe3Fet_Liq=None, H2O_Liq=None, Kd_Match=None, Kd_Err=None, Opx_Quality=False, return_all_pairs=False, iterations=30)[source]
Evaluates all possible Opx-Liq pairs from N Liquids, M opx compositions returns P (kbar) and T (K) for those in equilibrium.
- liq_comps: pandas.DataFrame
Panda DataFrame of liquid compositions with column headings SiO2_Liq etc.
- opx_comps: pandas.DataFrame
Panda DataFrame of opx compositions with column headings SiO2_Opx etc.
- EquationP: str
Barometer | P_Put2008_eq28a | P_Put2008_eq28b | P_Put2008_eq28c | P_Put_Global | P_Put_Felsic
- EquationT: str
Thermometer | T_Opx_Beatt1993 | T_Put2008_eq28a | T_Put2008_eq28b_opx_sat
Or:
- P: int, float
Can also specify a pressure to run calculations at, rather than iterating using an equation for pressure. E.g., specify an equationT, but no equationP
- T: int, float
Can also specify a temperature to run calculations at, rather than iterating using an equation for temperature. E.g., specify an equationP, but no equationT
Optional:
- Kd_Match: int of float, optional
Allows users to ovewrite the default where Kd is calculated from the expression in Putirka (2008) based on the Si content of the liquid.
- Kd_Err: int or float, optional
Allows users to override the defualt 1 sigma on Kd matches of +-0.06
- Opx Quality: bool, optional
If True, filters out orthopyroxenes with cation sums outside of 4.02-3.99 (after Neave et al. 2017)
- Fe3Fet_Liq: int or float, optional
Fe3FeT ratio used to assess Kd Fe-Mg equilibrium between opx and melt. If users don’t specify, uses Fe3Fet_Liq from liq_comps. If specified, overwrites the Fe3Fet_Liq column in the liquid input.
Returns: dict
Av_PTs: Average P and T for each opx. E.g., if opx1 matches Liq1, Liq4, Liq6, Liq10, averages outputs for all 4 of those liquids. Returns mean and 1 sigma of these averaged parameters for each Opx.
All_PTs: Returns output parameters for all matches (e.g, opx1-Liq1, opx1-Liq4) without any averaging.
- Thermobar.orthopyroxene_thermobarometry.calculate_opx_liq_temp(*, equationT, opx_comps=None, liq_comps=None, meltmatch=None, P=None, eq_tests=False, Fe3Fet_Liq=None, H2O_Liq=None)[source]
Orthopyroxene-Liquid thermometer, user specifies equation, and calculates temperature in Kelvin. Also has option to calculate equilibrium tests.
- Parameters:
opx_comps (pandas.DataFrame) – Orthopyroxene compositions with column headings SiO2_Opx, MgO_Opx etc.
liq_comps (pandas.DataFrame) – Liquid compositions with column headings SiO2_Liq, MgO_Liq etc.
meltmatch (pandas.DataFrame) – Combined Opx-Liquid compositions. Used for “melt match” functionality.
EquationT (str) – Choice of equation: | T_Opx_Beatt1993 | T_Put2008_eq28a | T_Put2008_eq28b_opx_sat
- P: float, int, pandas.Series, str (“Solve”)
Pressure in kbar Only needed for P-sensitive thermometers. If enter P=”Solve”, returns a partial function Else, enter an integer, float, or panda series
- eq_tests: bool
If False (default), returns temperature as a panda series If True, returns prsesure, Kd Fe-Mg for liq-opx, as well as user-entered opx and liq comps as a panda dataframe.
- Returns:
If eq_tests=False – pandas.Series: Pressure in kbar (if eq_tests=False)
If eq_tests=True – pandas.DataFrame: Pressure in kbar + Kd-Fe-Mg + opx+liq comps
- Thermobar.orthopyroxene_thermobarometry.calculate_opx_only_press(*, opx_comps, equationP, T=None)[source]
Orthopyroxene only barometry. Enter a panda dataframe with orthopyroxene compositions, returns a pressure in kbar.
- Parameters
- opx_comps: pandas.DataFrame
orthopyroxene compositions with column headings SiO2_Opx, MgO_Opx etc.
- equationP: str
- P_Put2008_eq29c
- T: float, int, pandas.Series, str (“Solve”)
Temperature in Kelvin Only needed for T-sensitive barometers. If enter T=”Solve”, returns a partial function Else, enter an integer, float, or panda series
- pandas series
Pressure in kbar