atmodeller.solubility package
Submodules
atmodeller.solubility._carbon_species module
Solubility laws for carbon species
For every law there should be a test in the test suite.
- class atmodeller.solubility._carbon_species._CH4_basalt_ardia13
Bases:
SolubilityCH4 in haplobasalt (Fe-free) silicate melt [Ardia et al., 2013]
Experiments conducted at 0.7-3 GPa and 1400-1450 C. Ardia et al. [2013, Equations 7a, 8], values for lnK0 and deltaV from the text.
- concentration(fugacity: Array | ndarray | bool | number | bool | int | float | complex | TypedNdArray, *, pressure: Array | ndarray | bool | number | bool | int | float | complex | TypedNdArray, **kwargs) Array
Concentration in ppmw
- Parameters:
fugacity – Fugacity in bar
temperature – Temperature in K. Defaults to
Nonefor not used.pressure – Pressure in bar. Defaults to
Nonefor not used.fO2 – \(\log_{10} f\rm{O}_2\) in bar. Defaults to
Nonefor not used.
- Returns:
Concentration in ppmw
- _abc_impl = <_abc._abc_data object>
- jax_concentration(fugacity: Array | ndarray | bool | number | bool | int | float | complex | TypedNdArray, temperature: Array | ndarray | bool | number | bool | int | float | complex | TypedNdArray, pressure: Array | ndarray | bool | number | bool | int | float | complex | TypedNdArray, fO2: Array | ndarray | bool | number | bool | int | float | complex | TypedNdArray) Array
Wrapper to pass concentration arguments by position to use with JAX lax.switch
- Parameters:
fugacity – Fugacity in bar
temperature – Temperature in K
pressure – Pressure in bar
fO2 – \(\log_{10} f\rm{O}_2\) in bar
- Returns:
Concentration in ppmw
- atmodeller.solubility._carbon_species.CH4_basalt_ardia13: Solubility = _CH4_basalt_ardia13()
CH4 in haplobasalt (Fe-free) silicate melt [Ardia et al., 2013]
Experiments conducted at 0.7-3 GPa and 1400-1450 C. Ardia et al. [2013, Equations 7a, 8], values for lnK0 and deltaV from the text.
- class atmodeller.solubility._carbon_species._CO_basalt_armstrong15
Bases:
SolubilityVolatiles in mafic melts under reduced conditions [Armstrong et al., 2015]
Experiments on Martian and terrestrial basalts at 1.2 GPa and 1400 C with variable fO2 from IW-3.65 to IW+1.46. Armstrong et al. [2015, Equation 10], log-scale linear fit for CO and includes dependence on total pressure. The fitting coefficients also use data from [Stanley et al., 2014] (experiments from 1-1.2 GPa).
- concentration(fugacity: Array | ndarray | bool | number | bool | int | float | complex | TypedNdArray, *, pressure: Array | ndarray | bool | number | bool | int | float | complex | TypedNdArray, **kwargs) Array
Concentration in ppmw
- Parameters:
fugacity – Fugacity in bar
temperature – Temperature in K. Defaults to
Nonefor not used.pressure – Pressure in bar. Defaults to
Nonefor not used.fO2 – \(\log_{10} f\rm{O}_2\) in bar. Defaults to
Nonefor not used.
- Returns:
Concentration in ppmw
- _abc_impl = <_abc._abc_data object>
- jax_concentration(fugacity: Array | ndarray | bool | number | bool | int | float | complex | TypedNdArray, temperature: Array | ndarray | bool | number | bool | int | float | complex | TypedNdArray, pressure: Array | ndarray | bool | number | bool | int | float | complex | TypedNdArray, fO2: Array | ndarray | bool | number | bool | int | float | complex | TypedNdArray) Array
Wrapper to pass concentration arguments by position to use with JAX lax.switch
- Parameters:
fugacity – Fugacity in bar
temperature – Temperature in K
pressure – Pressure in bar
fO2 – \(\log_{10} f\rm{O}_2\) in bar
- Returns:
Concentration in ppmw
- atmodeller.solubility._carbon_species.CO_basalt_armstrong15: Solubility = _CO_basalt_armstrong15()
Volatiles in mafic melts under reduced conditions [Armstrong et al., 2015]
Experiments on Martian and terrestrial basalts at 1.2 GPa and 1400 C with variable fO2 from IW-3.65 to IW+1.46. Armstrong et al. [2015, Equation 10], log-scale linear fit for CO and includes dependence on total pressure. The fitting coefficients also use data from [Stanley et al., 2014] (experiments from 1-1.2 GPa).
- class atmodeller.solubility._carbon_species._CO_basalt_yoshioka19
Bases:
SolubilityCarbon in silicate melts [Yoshioka et al., 2019]
Experiments on carbon solubility in silicate melts (Fe-free) coexisting with graphite and CO-CO2 fluid phase at 3 GPa and 1500 C. Log-scale linear expression for solubility of CO in MORB in the abstract.
- concentration(fugacity: Array | ndarray | bool | number | bool | int | float | complex | TypedNdArray, **kwargs) Array
Concentration in ppmw
- Parameters:
fugacity – Fugacity in bar
temperature – Temperature in K. Defaults to
Nonefor not used.pressure – Pressure in bar. Defaults to
Nonefor not used.fO2 – \(\log_{10} f\rm{O}_2\) in bar. Defaults to
Nonefor not used.
- Returns:
Concentration in ppmw
- _abc_impl = <_abc._abc_data object>
- jax_concentration(fugacity: Array | ndarray | bool | number | bool | int | float | complex | TypedNdArray, temperature: Array | ndarray | bool | number | bool | int | float | complex | TypedNdArray, pressure: Array | ndarray | bool | number | bool | int | float | complex | TypedNdArray, fO2: Array | ndarray | bool | number | bool | int | float | complex | TypedNdArray) Array
Wrapper to pass concentration arguments by position to use with JAX lax.switch
- Parameters:
fugacity – Fugacity in bar
temperature – Temperature in K
pressure – Pressure in bar
fO2 – \(\log_{10} f\rm{O}_2\) in bar
- Returns:
Concentration in ppmw
- atmodeller.solubility._carbon_species.CO_basalt_yoshioka19: Solubility = _CO_basalt_yoshioka19()
Carbon in silicate melts [Yoshioka et al., 2019]
Experiments on carbon solubility in silicate melts (Fe-free) coexisting with graphite and CO-CO2 fluid phase at 3 GPa and 1500 C. Log-scale linear expression for solubility of CO in MORB in the abstract.
- class atmodeller.solubility._carbon_species._CO_rhyolite_yoshioka19
Bases:
SolubilityCarbon in silicate melts [Yoshioka et al., 2019]
Experiments on carbon solubility in silicate melts (Fe-free) coexisting with graphite and CO-CO2 fluid phase at 3 GPa and 1500 C. Henry’s Law, their expression for solubility of CO in rhyolite in the abstract.
- concentration(fugacity: Array | ndarray | bool | number | bool | int | float | complex | TypedNdArray, **kwargs) Array
Concentration in ppmw
- Parameters:
fugacity – Fugacity in bar
temperature – Temperature in K. Defaults to
Nonefor not used.pressure – Pressure in bar. Defaults to
Nonefor not used.fO2 – \(\log_{10} f\rm{O}_2\) in bar. Defaults to
Nonefor not used.
- Returns:
Concentration in ppmw
- _abc_impl = <_abc._abc_data object>
- jax_concentration(fugacity: Array | ndarray | bool | number | bool | int | float | complex | TypedNdArray, temperature: Array | ndarray | bool | number | bool | int | float | complex | TypedNdArray, pressure: Array | ndarray | bool | number | bool | int | float | complex | TypedNdArray, fO2: Array | ndarray | bool | number | bool | int | float | complex | TypedNdArray) Array
Wrapper to pass concentration arguments by position to use with JAX lax.switch
- Parameters:
fugacity – Fugacity in bar
temperature – Temperature in K
pressure – Pressure in bar
fO2 – \(\log_{10} f\rm{O}_2\) in bar
- Returns:
Concentration in ppmw
- atmodeller.solubility._carbon_species.CO_rhyolite_yoshioka19: Solubility = _CO_rhyolite_yoshioka19()
Carbon in silicate melts [Yoshioka et al., 2019]
Experiments on carbon solubility in silicate melts (Fe-free) coexisting with graphite and CO-CO2 fluid phase at 3 GPa and 1500 C. Henry’s Law, their expression for solubility of CO in rhyolite in the abstract.
- class atmodeller.solubility._carbon_species._CO2_basalt_dixon95
Bases:
SolubilityCO2 in MORB liquids [Dixon et al., 1995]
Dixon et al. [1995, Equation 6] for mole fraction of dissolved carbonate (CO3^2-) and then converting to ppmw for CO2 experiments conducted at 1200 C, 210-980 bars with mixed H2O-CO2 vapor phase (CO2 vapor mole fraction varied from 0.42-0.97).
- _abc_impl = <_abc._abc_data object>
- jax_concentration(fugacity: Array | ndarray | bool | number | bool | int | float | complex | TypedNdArray, temperature: Array | ndarray | bool | number | bool | int | float | complex | TypedNdArray, pressure: Array | ndarray | bool | number | bool | int | float | complex | TypedNdArray, fO2: Array | ndarray | bool | number | bool | int | float | complex | TypedNdArray) Array
Wrapper to pass concentration arguments by position to use with JAX lax.switch
- Parameters:
fugacity – Fugacity in bar
temperature – Temperature in K
pressure – Pressure in bar
fO2 – \(\log_{10} f\rm{O}_2\) in bar
- Returns:
Concentration in ppmw
- concentration(fugacity: Array | ndarray | bool | number | bool | int | float | complex | TypedNdArray, *, temperature: Array | ndarray | bool | number | bool | int | float | complex | TypedNdArray, pressure: Array | ndarray | bool | number | bool | int | float | complex | TypedNdArray, **kwargs) Array
Concentration in ppmw
- Parameters:
fugacity – Fugacity in bar
temperature – Temperature in K. Defaults to
Nonefor not used.pressure – Pressure in bar. Defaults to
Nonefor not used.fO2 – \(\log_{10} f\rm{O}_2\) in bar. Defaults to
Nonefor not used.
- Returns:
Concentration in ppmw
- atmodeller.solubility._carbon_species.CO2_basalt_dixon95: Solubility = _CO2_basalt_dixon95()
CO2 in MORB liquids [Dixon et al., 1995]
Dixon et al. [1995, Equation 6] for mole fraction of dissolved carbonate (CO3^2-) and then converting to ppmw for CO2 experiments conducted at 1200 C, 210-980 bars with mixed H2O-CO2 vapor phase (CO2 vapor mole fraction varied from 0.42-0.97).
atmodeller.solubility._hydrogen_species module
Solubility laws for hydrogen species
For every law there should be a test in the test suite.
- atmodeller.solubility._hydrogen_species.H2_andesite_hirschmann12: Solubility = SolubilityPowerLawLog10(log10_constant=1.01058631, log10_exponent=0.60128868)
H2 in synthetic andesite [Hirschmann et al., 2012]
Log-scale linear fit to fH2 vs H2 concentration for andesite in Hirschmann et al. [2012, Table 2]. Experiments conducted from 0.7-3 GPa at 1400 C.
- atmodeller.solubility._hydrogen_species.H2_basalt_hirschmann12: Solubility = SolubilityPowerLawLog10(log10_constant=1.10083602, log10_exponent=0.52413928)
H2 in synthetic basalt [Hirschmann et al., 2012]
Log-scale linear fit to fH2 vs. H2 concentration for basalt in Hirschmann et al. [2012, Table 2]. Experiments conducted from 0.7-3 GPa, 1400 C.
- atmodeller.solubility._hydrogen_species.H2_silicic_melts_gaillard03: Solubility = SolubilityPowerLaw(constant=0.163, exponent=1.252)
Fe-H redox exchange in silicate glasses [Gaillard et al., 2003]
Power law fit for fH2 vs. H2 (ppm-wt) from Gaillard et al. [2003, Table 4] data. Experiments at pressures from 0.02-70 bar, temperatures from 300-1000C.
- atmodeller.solubility._hydrogen_species.H2O_ano_dio_newcombe17: Solubility = SolubilityPowerLaw(constant=727.0, exponent=0.5)
H2O in anorthite-diopside-eutectic compositions [Newcombe et al., 2017]
Power law from Newcombe et al. [2017, Figure 5(A)] for anorthite-diopside glass. Experiments conducted at 1 atm and 1350 C. Melts equilibrated in 1 atm furnace with H2/CO2 gas mixtures that spanned fO2 from IW-3 to IW+4.8 and pH2/pH2O from 0.003-24.
- atmodeller.solubility._hydrogen_species.H2O_basalt_dixon95: Solubility = SolubilityPowerLaw(constant=965.0, exponent=0.5)
H2O in MORB liquids [Dixon et al., 1995]
Refitted data to a power law by Paolo Sossi (fitting Dixon et al. [1995, Figure 4], TODO: CHECK). Experiments conducted at 1200 C, 200-717 bars with pure H2O.
- atmodeller.solubility._hydrogen_species.H2O_basalt_mitchell17: Solubility = SolubilityPowerLaw(constant=258.946, exponent=0.669)
H2O in basaltic melt [Mitchell et al., 2017]
Refitted the H2O wt. % vs. fH2O fitted line from Mitchell et al. [2017, Figure 8] to a power-law. Experiments conducted at 1200 C and 1000 MPa total pressure. This fit includes data from their experiments and prior studies on H2O solubility in basaltic melt at 1200 C and P at or below 600 MPa.
- atmodeller.solubility._hydrogen_species.H2O_lunar_glass_newcombe17: Solubility = SolubilityPowerLaw(constant=683.0, exponent=0.5)
H2O in lunar basalt [Newcombe et al., 2017]
Power law from Newcombe et al. [2017, Figure 5(A)] for Lunar glass. Experiments conducted at 1 atm and 1350 C. Melts equilibrated in 1-atm furnace with H2/CO2 gas mixtures that spanned fO2 from IW-3 to IW+4.8.
- atmodeller.solubility._hydrogen_species.H2O_peridotite_sossi23: Solubility = SolubilityPowerLaw(constant=647.0, exponent=0.5)
H2O in peridotite liquids [Sossi et al., 2023]
Power law parameters in the abstract for peridotitic glasses. Experiments conducted at 2173 K and 1 bar and range of fO2 from IW-1.9 to IW+6.0.
- class atmodeller.solubility._hydrogen_species._H2_chachan18(f_calibration: Any, T_calibration: Any, X_calibration: Any, T0: Any = 4000)
Bases:
SolubilityH2 solubility [Chachan and Stevenson, 2018]
- Parameters:
f_calibration – Calibration fugacity
T_calibration – Calibration temperature
X_calibration – Mass fraction at calibration conditions
T0 – Arrhenius temperature factor in K, which expresses the repulsive interaction of the molecule with magma. Defaults to 4000 K, which is the middle of the range the authors explore (from 3000 K to 5000 K).
- _abc_impl = <_abc._abc_data object>
- jax_concentration(fugacity: Array | ndarray | bool | number | bool | int | float | complex | TypedNdArray, temperature: Array | ndarray | bool | number | bool | int | float | complex | TypedNdArray, pressure: Array | ndarray | bool | number | bool | int | float | complex | TypedNdArray, fO2: Array | ndarray | bool | number | bool | int | float | complex | TypedNdArray) Array
Wrapper to pass concentration arguments by position to use with JAX lax.switch
- Parameters:
fugacity – Fugacity in bar
temperature – Temperature in K
pressure – Pressure in bar
fO2 – \(\log_{10} f\rm{O}_2\) in bar
- Returns:
Concentration in ppmw
- f_calibration: float
Calibration fugacity
- T_calibration: float
Calibration temperature
- X_calibration: float
Mass fraction at calibration conditions
- T0: float
Arrhenius temperature factor in K
- A: float
Constant factor
- concentration(fugacity: Array | ndarray | bool | number | bool | int | float | complex | TypedNdArray, *, temperature: Array | ndarray | bool | number | bool | int | float | complex | TypedNdArray, **kwargs) Array
Concentration in ppmw
- Parameters:
fugacity – Fugacity in bar
temperature – Temperature in K. Defaults to
Nonefor not used.pressure – Pressure in bar. Defaults to
Nonefor not used.fO2 – \(\log_{10} f\rm{O}_2\) in bar. Defaults to
Nonefor not used.
- Returns:
Concentration in ppmw
- atmodeller.solubility._hydrogen_species.H2_chachan18: Solubility = _H2_chachan18( f_calibration=1500.0, T_calibration=1673.0, X_calibration=0.001, T0=4000.0, A=7.282319446095137e-06 )
H2 by combining theory and experiment [Chachan and Stevenson, 2018]
- atmodeller.solubility._hydrogen_species.H2_kite19: Solubility = _H2_chachan18( f_calibration=23986.03464911203, T_calibration=1673.0, X_calibration=0.0019, T0=4000.0, A=8.652789310524688e-07 )
H2 by combining theory and experiment [Kite et al., 2019].
atmodeller.solubility._other_species module
Solubility laws for other species
For every law there should be a test in the test suite.
- atmodeller.solubility._other_species.Cl2_ano_dio_for_thomas21: Solubility = SolubilityPowerLaw(constant=1405200.0, exponent=0.5)
Cl in silicate melts [Thomas and Wood, 2021]
Solubility law from Thomas and Wood [2021, Figure 4] showing relation between dissolved Cl concentration and Cl fugacity for CMAS composition (An50Di28Fo22 (anorthite-diopside-forsterite), Fe-free low-degree mantle melt) at 1400 C and 1.5 GPa. Experiments from 0.5-2 GPa and 1200-1500 C.
- atmodeller.solubility._other_species.Cl2_basalt_thomas21: Solubility = SolubilityPowerLaw(constant=785600.0, exponent=0.5)
Cl in silicate melts [Thomas and Wood, 2021]
Solubility law from Thomas and Wood [2021, Figure 4] showing relation between dissolved Cl concentration and Cl fugacity for Icelandic basalt at 1400 C and 1.5 GPa. Experiments from 0.5-2 GPa and 1200-1500 C.
- atmodeller.solubility._other_species.He_basalt_jambon86: Solubility = SolubilityPowerLaw(constant=0.100065, exponent=1.0)
Solubility of He in tholeittic basalt melt [Jambon et al., 1986]
Experiments determined Henry’s law solubility constant in tholetiitic basalt melt at 1 bar and 1250-1600 C. Using Henry’s Law solubility constant for He from the abstract, convert from STP units to mol/g*bar.
- atmodeller.solubility._other_species.Ar_basalt_jambon86: Solubility = SolubilityPowerLaw(constant=0.10522017857142857, exponent=1.0)
Solubility of Ar in tholeittic basalt melt [Jambon et al., 1986]
Experiments determined Henry’s law solubility constant in tholetiitic basalt melt at 1 bar and 1250-1600 C. Using Henry’s Law solubility constant for Ar from the abstract, convert from STP units to mol/g*bar.
- atmodeller.solubility._other_species.Ne_basalt_jambon86: Solubility = SolubilityPowerLaw(constant=0.22521986607142858, exponent=1.0)
Solubility of Ne in tholeittic basalt melt [Jambon et al., 1986]
Experiments determined Henry’s law solubility constant in tholetiitic basalt melt at 1 bar and 1250-1600 C. Using Henry’s Law solubility constant for Ne from the abstract, convert from STP units to mol/g*bar.
- atmodeller.solubility._other_species.Kr_basalt_jambon86: Solubility = SolubilityPowerLaw(constant=0.11222946428571429, exponent=1.0)
Solubility of Kr in tholeittic basalt melt [Jambon et al., 1986]
Experiments determined Henry’s law solubility constant in tholetiitic basalt melt at 1 bar and 1250-1600 C. Using Henry’s Law solubility constant for Kr from the abstract, convert from STP units to mol/g*bar.
- atmodeller.solubility._other_species.Xe_basalt_jambon86: Solubility = SolubilityPowerLaw(constant=0.09964200892857143, exponent=1.0)
Solubility of Xe in tholeittic basalt melt [Jambon et al., 1986]
Experiments determined Henry’s law solubility constant in tholetiitic basalt melt at 1 bar and 1250-1600 C. Using Henry’s Law solubility constant for Xe from the abstract, convert from STP units to mol/g*bar.
- class atmodeller.solubility._other_species._N2_basalt_bernadou21
Bases:
SolubilityN2 in basaltic silicate melt [Bernadou et al., 2021]
Bernadou et al. [2021, Equation 18] and using Bernadou et al. [2021, Equations 19-20] and the values for the thermodynamic constants from Bernadou et al. [2021, Table 6]. Experiments on basaltic samples at fluid saturation in C-H-O-N system, pressure range: 0.8-10 kbar, temperature range: 1200-1300 C; fO2 range: IW+4.9 to IW-4.7. Using their experimental results and a database for N concentrations at fluid saturation from 1 bar to 10 kbar, calibrated their solubility law.
- concentration(fugacity: Array | ndarray | bool | number | bool | int | float | complex | TypedNdArray, *, temperature: Array | ndarray | bool | number | bool | int | float | complex | TypedNdArray, pressure: Array | ndarray | bool | number | bool | int | float | complex | TypedNdArray, fO2: Array | ndarray | bool | number | bool | int | float | complex | TypedNdArray) Array
Concentration in ppmw
- Parameters:
fugacity – Fugacity in bar
temperature – Temperature in K. Defaults to
Nonefor not used.pressure – Pressure in bar. Defaults to
Nonefor not used.fO2 – \(\log_{10} f\rm{O}_2\) in bar. Defaults to
Nonefor not used.
- Returns:
Concentration in ppmw
- _abc_impl = <_abc._abc_data object>
- jax_concentration(fugacity: Array | ndarray | bool | number | bool | int | float | complex | TypedNdArray, temperature: Array | ndarray | bool | number | bool | int | float | complex | TypedNdArray, pressure: Array | ndarray | bool | number | bool | int | float | complex | TypedNdArray, fO2: Array | ndarray | bool | number | bool | int | float | complex | TypedNdArray) Array
Wrapper to pass concentration arguments by position to use with JAX lax.switch
- Parameters:
fugacity – Fugacity in bar
temperature – Temperature in K
pressure – Pressure in bar
fO2 – \(\log_{10} f\rm{O}_2\) in bar
- Returns:
Concentration in ppmw
- class atmodeller.solubility._other_species._N2_basalt_dasgupta22(xsio2: Any = 0.56, xal2o3: Any = 0.11, xtio2: Any = 0.01)
Bases:
SolubilityN2 in silicate melts [Dasgupta et al., 2022]
Using Dasgupta et al. [2022, Equation 10], composition parameters from Dasgupta et al. [2022, Figure 8], and Iron-wustite buffer (logIW_fugacity) from Hirschmann et al. [2008], O'Neill and Pownceby [1993].
[Dasgupta et al., 2022] performed experiments on 80:20 synthetic basalt-Si3N4 mixture at 1.5-3.0 GPa and 1300-1600 C fO2 from ~IW-3 to IW-4. They combined this data with prior studies to derive their N solubility law (Dasgupta et al. [2022, Equation 10] and Figure 6). The combined set of experiments for which the solubility law is based on span pressures from 1 atm - 8.2 GPa, temperatures from 1050-2327 C, and fO2 from -8.3 to +8.7 relative to IW.
Note that the IW redox buffer is evaluated at the pressure of interest.
- Parameters:
xsio2 – Mole fraction of SiO2. Defaults to 0.56.
xal2o3 – Mole fraction of Al2O3. Defaults to 0.11.
xtio2 – Mole fraction of TiO2. Defaults to 0.01.
- _abc_impl = <_abc._abc_data object>
- jax_concentration(fugacity: Array | ndarray | bool | number | bool | int | float | complex | TypedNdArray, temperature: Array | ndarray | bool | number | bool | int | float | complex | TypedNdArray, pressure: Array | ndarray | bool | number | bool | int | float | complex | TypedNdArray, fO2: Array | ndarray | bool | number | bool | int | float | complex | TypedNdArray) Array
Wrapper to pass concentration arguments by position to use with JAX lax.switch
- Parameters:
fugacity – Fugacity in bar
temperature – Temperature in K
pressure – Pressure in bar
fO2 – \(\log_{10} f\rm{O}_2\) in bar
- Returns:
Concentration in ppmw
- xsio2: float
Mole fraction of SiO2
- xal2o3: float
Mole fraction of Al2O3
- xtio2: float
Mole fraction of TiO2
- _buffer: RedoxBufferProtocol
- concentration(fugacity: Array | ndarray | bool | number | bool | int | float | complex | TypedNdArray, *, temperature: Array | ndarray | bool | number | bool | int | float | complex | TypedNdArray, pressure: Array | ndarray | bool | number | bool | int | float | complex | TypedNdArray, fO2: Array | ndarray | bool | number | bool | int | float | complex | TypedNdArray) Array
Concentration in ppmw
- Parameters:
fugacity – Fugacity in bar
temperature – Temperature in K. Defaults to
Nonefor not used.pressure – Pressure in bar. Defaults to
Nonefor not used.fO2 – \(\log_{10} f\rm{O}_2\) in bar. Defaults to
Nonefor not used.
- Returns:
Concentration in ppmw
- atmodeller.solubility._other_species.N2_basalt_dasgupta22: Solubility = _N2_basalt_dasgupta22( xsio2=0.56, xal2o3=0.11, xtio2=0.01, _buffer=IronWustiteBufferHirschmann( log10_shift=f64[], evaluation_pressure=None, calibration=ExperimentalCalibration(pressure_max=1000000.0), low_temperature_buffer=IronWustiteBufferHirschmann08( log10_shift=f64[], evaluation_pressure=None, calibration=ExperimentalCalibration(pressure_max=275000.0) ), high_temperature_buffer=IronWustiteBufferHirschmann21( log10_shift=f64[], evaluation_pressure=None, calibration=ExperimentalCalibration( temperature_min=1000.0, pressure_max=1000000.0 ), a=(6.844864, 0.1175691, 0.001143873, 0.0, 0.0), b=(0.0005791364, -0.0002891434, -2.737171e-07, 0.0, 0.0), c=(-7.971469e-05, 3.198005e-05, 0.0, 1.059554e-10, 2.014461e-07), d=(-27690.02, 528.5977, -2.919275, 0.0, 0.0), e=(8.463095, -0.003000307, 7.213445e-05, 0.0, 0.0), f=(0.001148738, -9.352312e-05, 5.161592e-07, 0.0, 0.0), g=(-0.0007448624, -6.329325e-06, 0.0, -1.407339e-10, 0.0001830014), h=(-27820.82, 528.5977, -0.8473231, 0.0, 0.0), x=(-18.64, 0.04359, -5.069e-06) ) ) )
N2 in basaltic silicate melt [Bernadou et al., 2021]
Bernadou et al. [2021, Equation 18] and using Bernadou et al. [2021, Equations 19-20] and the values for the thermodynamic constants from Bernadou et al. [2021, Table 6]. Experiments on basaltic samples at fluid saturation in C-H-O-N system, pressure range: 0.8-10 kbar, temperature range: 1200-1300 C; fO2 range: IW+4.9 to IW-4.7. Using their experimental results and a database for N concentrations at fluid saturation from 1 bar to 10 kbar, calibrated their solubility law.
- class atmodeller.solubility._other_species._N2_basalt_libourel03
Bases:
SolubilityN2 in basalt (tholeiitic) magmas [Libourel et al., 2003]
Libourel et al. [2003, Equation 23], includes dependencies on fN2 and fO2. Experiments conducted at 1 atm and 1425 C (two experiments at 1400 C), fO2 from IW-8.3 to IW+8.7 using mixtures of CO, CO2 and N2 gases.
- _abc_impl = <_abc._abc_data object>
- jax_concentration(fugacity: Array | ndarray | bool | number | bool | int | float | complex | TypedNdArray, temperature: Array | ndarray | bool | number | bool | int | float | complex | TypedNdArray, pressure: Array | ndarray | bool | number | bool | int | float | complex | TypedNdArray, fO2: Array | ndarray | bool | number | bool | int | float | complex | TypedNdArray) Array
Wrapper to pass concentration arguments by position to use with JAX lax.switch
- Parameters:
fugacity – Fugacity in bar
temperature – Temperature in K
pressure – Pressure in bar
fO2 – \(\log_{10} f\rm{O}_2\) in bar
- Returns:
Concentration in ppmw
- concentration(fugacity: Array | ndarray | bool | number | bool | int | float | complex | TypedNdArray, *, temperature: Array | ndarray | bool | number | bool | int | float | complex | TypedNdArray, pressure: Array | ndarray | bool | number | bool | int | float | complex | TypedNdArray, fO2: Array | ndarray | bool | number | bool | int | float | complex | TypedNdArray) Array
Concentration in ppmw
- Parameters:
fugacity – Fugacity in bar
temperature – Temperature in K. Defaults to
Nonefor not used.pressure – Pressure in bar. Defaults to
Nonefor not used.fO2 – \(\log_{10} f\rm{O}_2\) in bar. Defaults to
Nonefor not used.
- Returns:
Concentration in ppmw
- atmodeller.solubility._other_species.N2_basalt_libourel03: Solubility = _N2_basalt_libourel03()
N2 in basalt (tholeiitic) magmas [Libourel et al., 2003]
Libourel et al. [2003, Equation 23], includes dependencies on fN2 and fO2. Experiments conducted at 1 atm and 1425 C (two experiments at 1400 C), fO2 from IW-8.3 to IW+8.7 using mixtures of CO, CO2 and N2 gases.
atmodeller.solubility._sulfur_species module
Solubility laws for sulfur species
For every law there should be a test in the test suite.
- class atmodeller.solubility._sulfur_species._S2_sulfate_andesite_boulliung23
Bases:
SolubilitySulfur as sulfate SO4^2-/S^6+ in andesite [Boulliung and Wood, 2022, Boulliung and Wood, 2023]
Using the first equation in the abstract of Boulliung and Wood [2022] and the corrected expression for sulfate capacity (C_S6+) in Boulliung and Wood [2023]. Composition for andesite from Boulliung and Wood [2022, Table 1]. Experiments conducted at 1 atm, 1473-1773 K for silicate melts equilibrated with Air/SO2 mixtures.
- concentration(fugacity: Array | ndarray | bool | number | bool | int | float | complex | TypedNdArray, *, temperature: Array | ndarray | bool | number | bool | int | float | complex | TypedNdArray, fO2: Array | ndarray | bool | number | bool | int | float | complex | TypedNdArray, **kwargs) Array
Concentration in ppmw
- Parameters:
fugacity – Fugacity in bar
temperature – Temperature in K. Defaults to
Nonefor not used.pressure – Pressure in bar. Defaults to
Nonefor not used.fO2 – \(\log_{10} f\rm{O}_2\) in bar. Defaults to
Nonefor not used.
- Returns:
Concentration in ppmw
- _abc_impl = <_abc._abc_data object>
- jax_concentration(fugacity: Array | ndarray | bool | number | bool | int | float | complex | TypedNdArray, temperature: Array | ndarray | bool | number | bool | int | float | complex | TypedNdArray, pressure: Array | ndarray | bool | number | bool | int | float | complex | TypedNdArray, fO2: Array | ndarray | bool | number | bool | int | float | complex | TypedNdArray) Array
Wrapper to pass concentration arguments by position to use with JAX lax.switch
- Parameters:
fugacity – Fugacity in bar
temperature – Temperature in K
pressure – Pressure in bar
fO2 – \(\log_{10} f\rm{O}_2\) in bar
- Returns:
Concentration in ppmw
- atmodeller.solubility._sulfur_species.S2_sulfate_andesite_boulliung23: Solubility = _S2_sulfate_andesite_boulliung23()
Sulfur as sulfate SO4^2-/S^6+ in andesite [Boulliung and Wood, 2022, Boulliung and Wood, 2023]
Using the first equation in the abstract of Boulliung and Wood [2022] and the corrected expression for sulfate capacity (C_S6+) in Boulliung and Wood [2023]. Composition for andesite from Boulliung and Wood [2022, Table 1]. Experiments conducted at 1 atm, 1473-1773 K for silicate melts equilibrated with Air/SO2 mixtures.
- class atmodeller.solubility._sulfur_species._S2_sulfide_andesite_boulliung23
Bases:
SolubilitySulfur as sulfide (S^2-) in andesite [Boulliung and Wood, 2023]
Using expressions in the abstract for S wt.% and sulfide capacity (C_S2-). Composition for andesite from Boulliung and Wood [2022, Table 1]. Experiments conducted at 1 atm, 1473-1773 K in a controlled CO-CO2-SO2 atmosphere fO2 conditions were greater than 1 log unit below FMQ.
- concentration(fugacity: Array | ndarray | bool | number | bool | int | float | complex | TypedNdArray, *, temperature: Array | ndarray | bool | number | bool | int | float | complex | TypedNdArray, fO2: Array | ndarray | bool | number | bool | int | float | complex | TypedNdArray, **kwargs) Array
Concentration in ppmw
- Parameters:
fugacity – Fugacity in bar
temperature – Temperature in K. Defaults to
Nonefor not used.pressure – Pressure in bar. Defaults to
Nonefor not used.fO2 – \(\log_{10} f\rm{O}_2\) in bar. Defaults to
Nonefor not used.
- Returns:
Concentration in ppmw
- _abc_impl = <_abc._abc_data object>
- jax_concentration(fugacity: Array | ndarray | bool | number | bool | int | float | complex | TypedNdArray, temperature: Array | ndarray | bool | number | bool | int | float | complex | TypedNdArray, pressure: Array | ndarray | bool | number | bool | int | float | complex | TypedNdArray, fO2: Array | ndarray | bool | number | bool | int | float | complex | TypedNdArray) Array
Wrapper to pass concentration arguments by position to use with JAX lax.switch
- Parameters:
fugacity – Fugacity in bar
temperature – Temperature in K
pressure – Pressure in bar
fO2 – \(\log_{10} f\rm{O}_2\) in bar
- Returns:
Concentration in ppmw
- atmodeller.solubility._sulfur_species.S2_sulfide_andesite_boulliung23: Solubility = _S2_sulfide_andesite_boulliung23()
Sulfur as sulfide (S^2-) in andesite [Boulliung and Wood, 2023]
Using expressions in the abstract for S wt.% and sulfide capacity (C_S2-). Composition for andesite from Boulliung and Wood [2022, Table 1]. Experiments conducted at 1 atm, 1473-1773 K in a controlled CO-CO2-SO2 atmosphere fO2 conditions were greater than 1 log unit below FMQ.
- class atmodeller.solubility._sulfur_species._S2_andesite_boulliung23
Bases:
SolubilityS2 in andesite accounting for both sulfide and sulfate [Boulliung and Wood, 2022, Boulliung and Wood, 2023, Boulliung and Wood, 2023]
- _sulfide: Solubility
- _sulfate: Solubility
- concentration(fugacity: Array | ndarray | bool | number | bool | int | float | complex | TypedNdArray, *, temperature: Array | ndarray | bool | number | bool | int | float | complex | TypedNdArray, fO2: Array | ndarray | bool | number | bool | int | float | complex | TypedNdArray, **kwargs) Array
Concentration in ppmw
- Parameters:
fugacity – Fugacity in bar
temperature – Temperature in K. Defaults to
Nonefor not used.pressure – Pressure in bar. Defaults to
Nonefor not used.fO2 – \(\log_{10} f\rm{O}_2\) in bar. Defaults to
Nonefor not used.
- Returns:
Concentration in ppmw
- _abc_impl = <_abc._abc_data object>
- jax_concentration(fugacity: Array | ndarray | bool | number | bool | int | float | complex | TypedNdArray, temperature: Array | ndarray | bool | number | bool | int | float | complex | TypedNdArray, pressure: Array | ndarray | bool | number | bool | int | float | complex | TypedNdArray, fO2: Array | ndarray | bool | number | bool | int | float | complex | TypedNdArray) Array
Wrapper to pass concentration arguments by position to use with JAX lax.switch
- Parameters:
fugacity – Fugacity in bar
temperature – Temperature in K
pressure – Pressure in bar
fO2 – \(\log_{10} f\rm{O}_2\) in bar
- Returns:
Concentration in ppmw
- atmodeller.solubility._sulfur_species.S2_andesite_boulliung23: Solubility = _S2_andesite_boulliung23( _sulfide=_S2_sulfide_andesite_boulliung23(), _sulfate=_S2_sulfate_andesite_boulliung23() )
S2 in andesite accounting for both sulfide and sulfate [Boulliung and Wood, 2022, Boulliung and Wood, 2023, Boulliung and Wood, 2023]
- class atmodeller.solubility._sulfur_species._S2_sulfate_basalt_boulliung23
Bases:
SolubilitySulfur in basalt as sulfate, SO4^2-/S^6+ [Boulliung and Wood, 2022, Boulliung and Wood, 2023]
Using the first equation in the abstract and the corrected expression for sulfate capacity (C_S6+) in Boulliung and Wood [2023]. Composition for Basalt from Boulliung and Wood [2022, Table 1]. Experiments conducted at 1 atm pressure, temperatures from 1473-1773 K for silicate melts equilibrated with Air/SO2 mixtures.
- concentration(fugacity: Array | ndarray | bool | number | bool | int | float | complex | TypedNdArray, *, temperature: Array | ndarray | bool | number | bool | int | float | complex | TypedNdArray, fO2: Array | ndarray | bool | number | bool | int | float | complex | TypedNdArray, **kwargs) Array
Concentration in ppmw
- Parameters:
fugacity – Fugacity in bar
temperature – Temperature in K. Defaults to
Nonefor not used.pressure – Pressure in bar. Defaults to
Nonefor not used.fO2 – \(\log_{10} f\rm{O}_2\) in bar. Defaults to
Nonefor not used.
- Returns:
Concentration in ppmw
- _abc_impl = <_abc._abc_data object>
- jax_concentration(fugacity: Array | ndarray | bool | number | bool | int | float | complex | TypedNdArray, temperature: Array | ndarray | bool | number | bool | int | float | complex | TypedNdArray, pressure: Array | ndarray | bool | number | bool | int | float | complex | TypedNdArray, fO2: Array | ndarray | bool | number | bool | int | float | complex | TypedNdArray) Array
Wrapper to pass concentration arguments by position to use with JAX lax.switch
- Parameters:
fugacity – Fugacity in bar
temperature – Temperature in K
pressure – Pressure in bar
fO2 – \(\log_{10} f\rm{O}_2\) in bar
- Returns:
Concentration in ppmw
- atmodeller.solubility._sulfur_species.S2_sulfate_basalt_boulliung23: Solubility = _S2_sulfate_basalt_boulliung23()
Sulfur in basalt as sulfate, SO4^2-/S^6+ [Boulliung and Wood, 2022, Boulliung and Wood, 2023]
Using the first equation in the abstract and the corrected expression for sulfate capacity (C_S6+) in Boulliung and Wood [2023]. Composition for Basalt from Boulliung and Wood [2022, Table 1]. Experiments conducted at 1 atm pressure, temperatures from 1473-1773 K for silicate melts equilibrated with Air/SO2 mixtures.
- class atmodeller.solubility._sulfur_species._S2_sulfide_basalt_boulliung23
Bases:
SolubilitySulfur in basalt as sulfide (S^2-) [Boulliung and Wood, 2023]
Using expressions in the abstract for S wt% and sulfide capacity (C_S2-). Composition for basalt from Boulliung and Wood [2022, Table 1]. Experiments conducted at 1 atm pressure and temperatures from 1473-1773 K in a controlled CO-CO2-SO2 atmosphere fO2 conditions were greater than 1 log unit below FMQ.
- concentration(fugacity: Array | ndarray | bool | number | bool | int | float | complex | TypedNdArray, *, temperature: Array | ndarray | bool | number | bool | int | float | complex | TypedNdArray, fO2: Array | ndarray | bool | number | bool | int | float | complex | TypedNdArray, **kwargs) Array
Concentration in ppmw
- Parameters:
fugacity – Fugacity in bar
temperature – Temperature in K. Defaults to
Nonefor not used.pressure – Pressure in bar. Defaults to
Nonefor not used.fO2 – \(\log_{10} f\rm{O}_2\) in bar. Defaults to
Nonefor not used.
- Returns:
Concentration in ppmw
- _abc_impl = <_abc._abc_data object>
- jax_concentration(fugacity: Array | ndarray | bool | number | bool | int | float | complex | TypedNdArray, temperature: Array | ndarray | bool | number | bool | int | float | complex | TypedNdArray, pressure: Array | ndarray | bool | number | bool | int | float | complex | TypedNdArray, fO2: Array | ndarray | bool | number | bool | int | float | complex | TypedNdArray) Array
Wrapper to pass concentration arguments by position to use with JAX lax.switch
- Parameters:
fugacity – Fugacity in bar
temperature – Temperature in K
pressure – Pressure in bar
fO2 – \(\log_{10} f\rm{O}_2\) in bar
- Returns:
Concentration in ppmw
- atmodeller.solubility._sulfur_species.S2_sulfide_basalt_boulliung23: Solubility = _S2_sulfide_basalt_boulliung23()
Sulfur in basalt as sulfide (S^2-) [Boulliung and Wood, 2023]
Using expressions in the abstract for S wt% and sulfide capacity (C_S2-). Composition for basalt from Boulliung and Wood [2022, Table 1]. Experiments conducted at 1 atm pressure and temperatures from 1473-1773 K in a controlled CO-CO2-SO2 atmosphere fO2 conditions were greater than 1 log unit below FMQ.
- class atmodeller.solubility._sulfur_species._S2_basalt_boulliung23
Bases:
SolubilitySulfur in basalt due to sulfide and sulfate dissolution [Boulliung and Wood, 2022, Boulliung and Wood, 2023, Boulliung and Wood, 2023]
- _sulfide: Solubility
- _sulfate: Solubility
- concentration(fugacity: Array | ndarray | bool | number | bool | int | float | complex | TypedNdArray, *, temperature: Array | ndarray | bool | number | bool | int | float | complex | TypedNdArray, fO2: Array | ndarray | bool | number | bool | int | float | complex | TypedNdArray, **kwargs) Array
Concentration in ppmw
- Parameters:
fugacity – Fugacity in bar
temperature – Temperature in K. Defaults to
Nonefor not used.pressure – Pressure in bar. Defaults to
Nonefor not used.fO2 – \(\log_{10} f\rm{O}_2\) in bar. Defaults to
Nonefor not used.
- Returns:
Concentration in ppmw
- _abc_impl = <_abc._abc_data object>
- jax_concentration(fugacity: Array | ndarray | bool | number | bool | int | float | complex | TypedNdArray, temperature: Array | ndarray | bool | number | bool | int | float | complex | TypedNdArray, pressure: Array | ndarray | bool | number | bool | int | float | complex | TypedNdArray, fO2: Array | ndarray | bool | number | bool | int | float | complex | TypedNdArray) Array
Wrapper to pass concentration arguments by position to use with JAX lax.switch
- Parameters:
fugacity – Fugacity in bar
temperature – Temperature in K
pressure – Pressure in bar
fO2 – \(\log_{10} f\rm{O}_2\) in bar
- Returns:
Concentration in ppmw
- atmodeller.solubility._sulfur_species.S2_basalt_boulliung23: Solubility = _S2_basalt_boulliung23( _sulfide=_S2_sulfide_basalt_boulliung23(), _sulfate=_S2_sulfate_basalt_boulliung23() )
Sulfur in basalt due to sulfide and sulfate dissolution [Boulliung and Wood, 2022, Boulliung and Wood, 2023, Boulliung and Wood, 2023]
- class atmodeller.solubility._sulfur_species._S2_sulfate_trachybasalt_boulliung23
Bases:
SolubilitySulfur as sulfate SO4^2-/S^6+ in trachybasalt [Boulliung and Wood, 2022, Boulliung and Wood, 2023]
Using the first equation in the abstract of Boulliung and Wood [2022] and the corrected expression for sulfate capacity (C_S6+) in Boulliung and Wood [2023]. Composition for trachybasalt from Boulliung and Wood [2022, Table 1]. Experiments conducted at 1 atm, 1473-1773 K for silicate melts equilibrated with Air/SO2 mixtures.
- concentration(fugacity: Array | ndarray | bool | number | bool | int | float | complex | TypedNdArray, *, temperature: Array | ndarray | bool | number | bool | int | float | complex | TypedNdArray, fO2: Array | ndarray | bool | number | bool | int | float | complex | TypedNdArray, **kwargs) Array
Concentration in ppmw
- Parameters:
fugacity – Fugacity in bar
temperature – Temperature in K. Defaults to
Nonefor not used.pressure – Pressure in bar. Defaults to
Nonefor not used.fO2 – \(\log_{10} f\rm{O}_2\) in bar. Defaults to
Nonefor not used.
- Returns:
Concentration in ppmw
- _abc_impl = <_abc._abc_data object>
- jax_concentration(fugacity: Array | ndarray | bool | number | bool | int | float | complex | TypedNdArray, temperature: Array | ndarray | bool | number | bool | int | float | complex | TypedNdArray, pressure: Array | ndarray | bool | number | bool | int | float | complex | TypedNdArray, fO2: Array | ndarray | bool | number | bool | int | float | complex | TypedNdArray) Array
Wrapper to pass concentration arguments by position to use with JAX lax.switch
- Parameters:
fugacity – Fugacity in bar
temperature – Temperature in K
pressure – Pressure in bar
fO2 – \(\log_{10} f\rm{O}_2\) in bar
- Returns:
Concentration in ppmw
- atmodeller.solubility._sulfur_species.S2_sulfate_trachybasalt_boulliung23: Solubility = _S2_sulfate_trachybasalt_boulliung23()
Sulfur as sulfate SO4^2-/S^6+ in trachybasalt [Boulliung and Wood, 2022, Boulliung and Wood, 2023]
Using the first equation in the abstract of Boulliung and Wood [2022] and the corrected expression for sulfate capacity (C_S6+) in Boulliung and Wood [2023]. Composition for trachybasalt from Boulliung and Wood [2022, Table 1]. Experiments conducted at 1 atm, 1473-1773 K for silicate melts equilibrated with Air/SO2 mixtures.
- class atmodeller.solubility._sulfur_species._S2_sulfide_trachybasalt_boulliung23
Bases:
SolubilitySulfur as sulfide (S^2-) in trachybasalt [Boulliung and Wood, 2023]
Using expressions in the abstract for S wt.% and sulfide capacity (C_S2-). Composition for trachybasalt from Boulliung and Wood [2022, Table 1]. Experiments conducted at 1 atm, 1473-1773 K in a controlled CO-CO2-SO2 atmosphere fO2 conditions were greater than 1 log unit below FMQ.
- _abc_impl = <_abc._abc_data object>
- jax_concentration(fugacity: Array | ndarray | bool | number | bool | int | float | complex | TypedNdArray, temperature: Array | ndarray | bool | number | bool | int | float | complex | TypedNdArray, pressure: Array | ndarray | bool | number | bool | int | float | complex | TypedNdArray, fO2: Array | ndarray | bool | number | bool | int | float | complex | TypedNdArray) Array
Wrapper to pass concentration arguments by position to use with JAX lax.switch
- Parameters:
fugacity – Fugacity in bar
temperature – Temperature in K
pressure – Pressure in bar
fO2 – \(\log_{10} f\rm{O}_2\) in bar
- Returns:
Concentration in ppmw
- concentration(fugacity: Array | ndarray | bool | number | bool | int | float | complex | TypedNdArray, *, temperature: Array | ndarray | bool | number | bool | int | float | complex | TypedNdArray, fO2: Array | ndarray | bool | number | bool | int | float | complex | TypedNdArray, **kwargs) Array
Concentration in ppmw
- Parameters:
fugacity – Fugacity in bar
temperature – Temperature in K. Defaults to
Nonefor not used.pressure – Pressure in bar. Defaults to
Nonefor not used.fO2 – \(\log_{10} f\rm{O}_2\) in bar. Defaults to
Nonefor not used.
- Returns:
Concentration in ppmw
- atmodeller.solubility._sulfur_species.S2_sulfide_trachybasalt_boulliung23: Solubility = _S2_sulfide_trachybasalt_boulliung23()
Sulfur as sulfide (S^2-) in trachybasalt [Boulliung and Wood, 2023]
Using expressions in the abstract for S wt.% and sulfide capacity (C_S2-). Composition for trachybasalt from Boulliung and Wood [2022, Table 1]. Experiments conducted at 1 atm, 1473-1773 K in a controlled CO-CO2-SO2 atmosphere fO2 conditions were greater than 1 log unit below FMQ.
- class atmodeller.solubility._sulfur_species._S2_trachybasalt_boulliung23
Bases:
SolubilitySulfur in trachybasalt by sulfide and sulfate dissolution [Boulliung and Wood, 2022, Boulliung and Wood, 2023, Boulliung and Wood, 2023]
- _abc_impl = <_abc._abc_data object>
- jax_concentration(fugacity: Array | ndarray | bool | number | bool | int | float | complex | TypedNdArray, temperature: Array | ndarray | bool | number | bool | int | float | complex | TypedNdArray, pressure: Array | ndarray | bool | number | bool | int | float | complex | TypedNdArray, fO2: Array | ndarray | bool | number | bool | int | float | complex | TypedNdArray) Array
Wrapper to pass concentration arguments by position to use with JAX lax.switch
- Parameters:
fugacity – Fugacity in bar
temperature – Temperature in K
pressure – Pressure in bar
fO2 – \(\log_{10} f\rm{O}_2\) in bar
- Returns:
Concentration in ppmw
- _sulfide: Solubility
- _sulfate: Solubility
- concentration(fugacity: Array | ndarray | bool | number | bool | int | float | complex | TypedNdArray, *, temperature: Array | ndarray | bool | number | bool | int | float | complex | TypedNdArray, fO2: Array | ndarray | bool | number | bool | int | float | complex | TypedNdArray, **kwargs) Array
Concentration in ppmw
- Parameters:
fugacity – Fugacity in bar
temperature – Temperature in K. Defaults to
Nonefor not used.pressure – Pressure in bar. Defaults to
Nonefor not used.fO2 – \(\log_{10} f\rm{O}_2\) in bar. Defaults to
Nonefor not used.
- Returns:
Concentration in ppmw
- atmodeller.solubility._sulfur_species.S2_trachybasalt_boulliung23: Solubility = _S2_trachybasalt_boulliung23( _sulfide=_S2_sulfide_trachybasalt_boulliung23(), _sulfate=_S2_sulfate_trachybasalt_boulliung23() )
Sulfur in trachybasalt by sulfide and sulfate dissolution [Boulliung and Wood, 2022, Boulliung and Wood, 2023, Boulliung and Wood, 2023]
atmodeller.solubility.core module
Core classes and functions for solubility laws
- class atmodeller.solubility.core.Solubility
Bases:
ModuleSolubility interface
jax_concentration()is defined in order to allow arguments to be passed by position to lax.switch.- abstractmethod concentration(fugacity: Array | ndarray | bool | number | bool | int | float | complex | TypedNdArray, *, temperature: Array | ndarray | bool | number | bool | int | float | complex | TypedNdArray | None = None, pressure: Array | ndarray | bool | number | bool | int | float | complex | TypedNdArray | None = None, fO2: Array | ndarray | bool | number | bool | int | float | complex | TypedNdArray | None = None) Array
Concentration in ppmw
- Parameters:
fugacity – Fugacity in bar
temperature – Temperature in K. Defaults to
Nonefor not used.pressure – Pressure in bar. Defaults to
Nonefor not used.fO2 – \(\log_{10} f\rm{O}_2\) in bar. Defaults to
Nonefor not used.
- Returns:
Concentration in ppmw
- jax_concentration(fugacity: Array | ndarray | bool | number | bool | int | float | complex | TypedNdArray, temperature: Array | ndarray | bool | number | bool | int | float | complex | TypedNdArray, pressure: Array | ndarray | bool | number | bool | int | float | complex | TypedNdArray, fO2: Array | ndarray | bool | number | bool | int | float | complex | TypedNdArray) Array
Wrapper to pass concentration arguments by position to use with JAX lax.switch
- Parameters:
fugacity – Fugacity in bar
temperature – Temperature in K
pressure – Pressure in bar
fO2 – \(\log_{10} f\rm{O}_2\) in bar
- Returns:
Concentration in ppmw
- _abc_impl = <_abc._abc_data object>
- class atmodeller.solubility.core.NoSolubility
Bases:
SolubilityNo solubility
- concentration(fugacity: Array | ndarray | bool | number | bool | int | float | complex | TypedNdArray, *, temperature: Array | ndarray | bool | number | bool | int | float | complex | TypedNdArray | None = None, pressure: Array | ndarray | bool | number | bool | int | float | complex | TypedNdArray | None = None, fO2: Array | ndarray | bool | number | bool | int | float | complex | TypedNdArray | None = None) Array
Concentration in ppmw
- Parameters:
fugacity – Fugacity in bar
temperature – Temperature in K. Defaults to
Nonefor not used.pressure – Pressure in bar. Defaults to
Nonefor not used.fO2 – \(\log_{10} f\rm{O}_2\) in bar. Defaults to
Nonefor not used.
- Returns:
Concentration in ppmw
- _abc_impl = <_abc._abc_data object>
- jax_concentration(fugacity: Array | ndarray | bool | number | bool | int | float | complex | TypedNdArray, temperature: Array | ndarray | bool | number | bool | int | float | complex | TypedNdArray, pressure: Array | ndarray | bool | number | bool | int | float | complex | TypedNdArray, fO2: Array | ndarray | bool | number | bool | int | float | complex | TypedNdArray) Array
Wrapper to pass concentration arguments by position to use with JAX lax.switch
- Parameters:
fugacity – Fugacity in bar
temperature – Temperature in K
pressure – Pressure in bar
fO2 – \(\log_{10} f\rm{O}_2\) in bar
- Returns:
Concentration in ppmw
- class atmodeller.solubility.core.SolubilityPowerLaw(constant: Any, exponent: Any)
Bases:
SolubilityA solubility power law
- Parameters:
constant – Constant
exponent – Exponent
- constant: float
Constant
- exponent: float
Exponent
- concentration(fugacity: Array | ndarray | bool | number | bool | int | float | complex | TypedNdArray, *args, **kwargs) Array
Concentration in ppmw
- Parameters:
fugacity – Fugacity in bar
temperature – Temperature in K. Defaults to
Nonefor not used.pressure – Pressure in bar. Defaults to
Nonefor not used.fO2 – \(\log_{10} f\rm{O}_2\) in bar. Defaults to
Nonefor not used.
- Returns:
Concentration in ppmw
- _abc_impl = <_abc._abc_data object>
- jax_concentration(fugacity: Array | ndarray | bool | number | bool | int | float | complex | TypedNdArray, temperature: Array | ndarray | bool | number | bool | int | float | complex | TypedNdArray, pressure: Array | ndarray | bool | number | bool | int | float | complex | TypedNdArray, fO2: Array | ndarray | bool | number | bool | int | float | complex | TypedNdArray) Array
Wrapper to pass concentration arguments by position to use with JAX lax.switch
- Parameters:
fugacity – Fugacity in bar
temperature – Temperature in K
pressure – Pressure in bar
fO2 – \(\log_{10} f\rm{O}_2\) in bar
- Returns:
Concentration in ppmw
- class atmodeller.solubility.core.SolubilityPowerLawLog10(log10_constant: Any, log10_exponent: Any)
Bases:
SolubilityA solubility power law with log10 coefficients
- Parameters:
log10_constant – Log10 constant
log10_exponent – Log10 exponent
- log10_constant: float
Log10 constant
- _abc_impl = <_abc._abc_data object>
- jax_concentration(fugacity: Array | ndarray | bool | number | bool | int | float | complex | TypedNdArray, temperature: Array | ndarray | bool | number | bool | int | float | complex | TypedNdArray, pressure: Array | ndarray | bool | number | bool | int | float | complex | TypedNdArray, fO2: Array | ndarray | bool | number | bool | int | float | complex | TypedNdArray) Array
Wrapper to pass concentration arguments by position to use with JAX lax.switch
- Parameters:
fugacity – Fugacity in bar
temperature – Temperature in K
pressure – Pressure in bar
fO2 – \(\log_{10} f\rm{O}_2\) in bar
- Returns:
Concentration in ppmw
- log10_exponent: float
Log10 exponent
- concentration(fugacity: Array | ndarray | bool | number | bool | int | float | complex | TypedNdArray, **kwargs) Array
Concentration in ppmw
- Parameters:
fugacity – Fugacity in bar
temperature – Temperature in K. Defaults to
Nonefor not used.pressure – Pressure in bar. Defaults to
Nonefor not used.fO2 – \(\log_{10} f\rm{O}_2\) in bar. Defaults to
Nonefor not used.
- Returns:
Concentration in ppmw
- atmodeller.solubility.core.fO2_temperature_correction(fO2: Array | ndarray | bool | number | bool | int | float | complex | TypedNdArray, *, temperature: Array | ndarray | bool | number | bool | int | float | complex | TypedNdArray, pressure: Array | ndarray | bool | number | bool | int | float | complex | TypedNdArray, reference_temperature: Array | ndarray | bool | number | bool | int | float | complex | TypedNdArray) Array
Applies a temperature correction to \(\log_{10} f\rm{O}_2\).
Some experimentally derived solubility laws operate on absolute \(\log_{10} f\rm{O}_2\), which depends on temperature and pressure. A temperature correction has to be applied to maintain the same \(\log_{10} f\rm{O}_2\) shift at arbitrary temperature.
- Parameters:
fO2 – Absolute oxygen fugacity at
temperaturein bartemperature – Temperature in K
pressure – Absolute pressure in bar
reference_temperature – Reference temperature, which is usually the temperature at which the experiment was performed.
- Returns:
Adjusted \(\log_{10} f\rm{O}_2\)
atmodeller.solubility.library module
Solubility library
from atmodeller.solubility.library import get_solubility_models
sol_models = get_solubility_models()
H2O_peridotite = sol_models["H2O_peridotite_sossi23"]
# Evaluate solubility (concentration) at 2 bar fH2O and 2000 K
concentration = H2O_peridotite.concentration(2, temperature=2000)
print(concentration)
- atmodeller.solubility.library.get_solubility_models() dict[str, Solubility]
Gets a dictionary of solubility models
- Returns:
Dictionary of solubility models
Module contents
Solubility package