Thermobarometry

Overview

One of the most common applications of thermodynamic modeling in geosciences is to estimate the pressure and temperature conditions at which a given mineral assemblage is stable. This process is known as thermobarometry. Burnman provides tools to perform thermobarometric calculations using a least-squares inversion approach, following and extending the Optimal Thermobarometry method described by [PH94].

The essential idea behind the method is to minimize a misfit scalar that is a function of reaction affinities, weighted by a covariance matrix that is a function of both measurement uncertainties and thermodynamic model uncertainties. The misfit scalar is defined as:

\[\begin{split}\Phi = \sum_i \sum_j a_i W_{ij} a_j \\ W_{ij} = (C_{ij} + M_{ij})^{-1}\end{split}\]

where \(a_i\) is the affinity of reaction \(i\), \(W_{ij}\) is the weighting matrix, \(C_{ij}\) is the covariance matrix of measurement uncertainties, and \(M_{ij}\) is the covariance matrix of thermodynamic model uncertainties.

The full documentation for the thermobarometry tools can be found at Optimal thermobarometry. The documentation for the Optimal Thermobarometry function is given below.

Implemented function

burnman.tools.thermobarometry.estimate_conditions(assemblage, dataset_covariances=None, include_state_misfit=False, guessed_conditions=[1000000000.0, 1000.0], pressure_bounds=[100000.0, 400000000000.0], temperature_bounds=[300.0, 4000.0], P_scaling=1000000.0, small_fraction_tol=0.0, max_it=100)[source]

Perform a least-squares inversion to find the optimal pressure and temperature for a given mineral assemblage. Algorithm modified from [PH94].

Parameters:
  • assemblage (Assemblage) – The mineral assemblage for which to perform the inversion. Each solution phase in the assemblage must have its composition set along with its compositional covariance matrix (called compositional_covariances). If there are compositional degrees of freedom, they can be added by setting the attribute free_compositional_vectors on the relevant solution phases, where each row of the array corresponds to a free compositional vector, and the columns correspond to the amounts of endmembers of that phase in each vector.

  • dataset_covariances (dict, with keys 'endmember_names' and 'covariance_matrix'. Default is None, in which case only compositional uncertainties are considered.) – The covariance data describing the uncertainties in endmember energies, taken from the thermodynamic dataset. For example, the covariance for the Holland et al. (2018) dataset can be obtained using burnman.minerals.HGP_2018_ds633.cov().

  • include_state_misfit (bool) – If True, includes the misfit from prior expectations on P and T. The assemblage must also have attributes state_priors and state_inverse_covariances.

  • guessed_conditions (np.array of shape (2,), optional, default None) – Initial guess for pressure (Pa) and temperature (K). If not provided, the initial guess will be taken from the current state of the assemblage.

  • pressure_bounds (list of two floats) – Bounds for pressure (Pa) during optimization.

  • temperature_bounds (list of two floats) – Bounds for temperature (K) during optimization.

  • P_scaling (float) – Scaling factor for pressure to improve numerical stability.

  • small_fraction_tol (float, optional, default 0.0) – If > 0.0, reduces the number of endmembers in solution phases by transforming to a smaller set of independent endmembers using a greedy algorithm and excluding those with molar fractions smaller than this value during the inversion.

  • max_it (int, optional, default 100) – Maximum number of iterations for the optimization algorithm.

Returns:

Result object from the optimization containing the optimal conditions (x, which includes P, T, and any free compositional vectors) and other properties of the solution. These include the covariance matrix of the estimated parameters (xcov), the standard deviations of the estimated parameters (var), the correlation matrix (xcorr), the affinities of the independent reactions at the optimal conditions (affinities), the covariance matrix of the affinities (acov), the affinities weighted by the inverse square root of their covariance matrix (weighted_affinities), the partial derivatives of the affinities with respect to P and T (dadx), the number of independent reactions (n_reactions), the number of fitted parameters (n_params), the degrees of freedom (degrees_of_freedom), the chi-squared value (fun), the reduced chi-squared value (reduced_chisqr, given by the reduced chi-squared divided by the number of degrees of freedom), and the fit quality (fit, given by the square root of the reduced chi-squared value).

Return type:

OptimizeResult