Skip to content

Conversation

@bobmyhill
Copy link
Member

@bobmyhill bobmyhill commented Oct 31, 2025

This pull request introduces a new optimal thermobarometry tool to the BurnMan toolkit, enabling robust estimation of pressure and temperature conditions from mineral assemblages using a statistically rigorous inversion approach. The implementation is modified from the Powell and Holland (1994) algorithm and includes full covariance propagation, compositional uncertainty handling, and options for reducing the number of endmembers considered. Comprehensive tests and documentation are also added. Additionally, several minor updates and imports are included.

The most important changes are:

New Thermobarometry Functionality:

  • Added a new module burnman/tools/thermobarometry.py that implements the estimate_conditions function for avPT thermobarometric inversion, including covariance calculations, support for compositional uncertainties, independent endmember selection, and several diagnostics.
  • Documented the new module in docs/tools.rst.
  • Added a new example, examples/example_optimal_thermobarometry.py

Enhancements to Composite Class:

  • Added endmember_partial_entropies and endmember_partial_volumes properties to the Composite class in burnman/classes/composite.py, required for thermobarometric calculations.

Polytope Utilities:

  • Introduced greedy_independent_endmember_selection in burnman/tools/polytope.py to select a minimal set of independent endmembers that satisfy a composition within a given tolerance, improving numerical stability and interpretability in thermobarometric inversions.

@bobmyhill bobmyhill force-pushed the optimal_pt branch 2 times, most recently from 3cafcbe to 24d1de1 Compare October 31, 2025 17:21
@bobmyhill bobmyhill merged commit 8c11b02 into geodynamics:main Oct 31, 2025
12 checks passed
@bobmyhill bobmyhill deleted the optimal_pt branch October 31, 2025 18:34
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant