Source code for MagmaPandas.Fe_redox.Fe3Fe2_calculate

from MagmaPandas.configuration import configuration
from MagmaPandas.Fe_redox.Fe3Fe2_models import Fe3Fe2_models_dict
from MagmaPandas.fO2 import fO2_calculate as f


[docs] def calculate_Fe3Fe2(mol_fractions, T_K, P_bar, fO2=None, **kwargs): """ Calculate melt |Fe3Fe2| with the configured *f*\ O2 buffer and |Fe3Fe2| model. Model choices are set in the global :py:class:`~MagmaPandas.configuration.configuration` class. Parameters ---------- mol_fractions : :py:class:`Pandas DataFrame <pandas:pandas.DataFrame>` Melt composition in oxide mol_fractions T_K : float, pd.Series-like temperature in Kelvin P_bar : float, pd.Series-like Pressure in bars logshift : int, pd.Series-like log units shift of QFM buffer model : string Fe3Fe2 model from :py:meth:`~MagmaPandas.configuration.configuration.available_models`. Returns ------- melt Fe\ :sup:`3+`\ /Fe\ :sup:`2+` ratio """ Fe_model_name = kwargs.get("Fe_model", configuration.Fe3Fe2_model) Fe_model = Fe3Fe2_models_dict[Fe_model_name] # getattr(Fe_redox, Fe_model_name) if (fO2 is None) and (Fe_model_name != "fixed"): fO2 = f.calculate_fO2(T_K=T_K, P_bar=P_bar, **kwargs) return Fe_model.calculate_Fe3Fe2( melt_mol_fractions=mol_fractions, T_K=T_K, P_bar=P_bar, fO2=fO2 )