added optimal PT calculations #693
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
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:
burnman/tools/thermobarometry.pythat implements theestimate_conditionsfunction for avPT thermobarometric inversion, including covariance calculations, support for compositional uncertainties, independent endmember selection, and several diagnostics.docs/tools.rst.examples/example_optimal_thermobarometry.pyEnhancements to Composite Class:
endmember_partial_entropiesandendmember_partial_volumesproperties to theCompositeclass inburnman/classes/composite.py, required for thermobarometric calculations.Polytope Utilities:
greedy_independent_endmember_selectioninburnman/tools/polytope.pyto select a minimal set of independent endmembers that satisfy a composition within a given tolerance, improving numerical stability and interpretability in thermobarometric inversions.