burnman-cpp 0.8.0__tar.gz → 0.11.1__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/.github/workflows/benchmarks.yml +1 -1
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/.github/workflows/tests.yml +1 -1
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/CMakeLists.txt +5 -2
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/Makefile +3 -3
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/PKG-INFO +120 -18
- burnman_cpp-0.11.1/README.md +299 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/benchmarks/README.md +4 -1
- burnman_cpp-0.11.1/benchmarks/pitzer_sterner_1995/README.md +50 -0
- burnman_cpp-0.11.1/benchmarks/pitzer_sterner_1995/benchmark.py +178 -0
- burnman_cpp-0.11.1/benchmarks/pitzer_sterner_1995/reference/figure1.json +294 -0
- burnman_cpp-0.11.1/benchmarks/pitzer_sterner_1995/reference/figure1.png +0 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/benchmarks/stixrude_2024.py +28 -28
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/benchmarks/stixrude_2024_figure13/benchmark.py +6 -6
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/benchmarks/stixrude_2024_figure14/benchmark.py +1 -1
- burnman_cpp-0.11.1/examples/data/input_fitting/Hazen_1976_TV_periclase.dat +17 -0
- burnman_cpp-0.11.1/examples/data/input_fitting/PVT_MgO_Dewaele_et_al_2000.dat +66 -0
- burnman_cpp-0.11.1/examples/data/input_fitting/SOURCES.md +24 -0
- burnman_cpp-0.11.1/examples/data/input_fitting/Victor_Douglas_1963_deltaH_MgO.dat +25 -0
- burnman_cpp-0.11.1/examples/example_assemblage_relaxation.py +237 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/examples/example_build_planet.py +2 -2
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/examples/example_equilibrate.py +25 -17
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/examples/example_equilibrated_composite.py +3 -3
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/examples/example_fit_composition.py +1 -1
- burnman_cpp-0.11.1/examples/example_fit_eos.py +343 -0
- burnman_cpp-0.11.1/examples/example_fit_eos_with_independent_volumes.py +248 -0
- burnman_cpp-0.11.1/examples/example_fit_solution.py +289 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/examples/example_forsterite_thermodynamic_sections.py +5 -5
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/examples/example_geotherm.py +4 -4
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/examples/example_hugoniot.py +6 -6
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/examples/example_iron_hematite_tx.py +6 -6
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/examples/example_layer.py +1 -1
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/examples/example_metasediment_contours.py +1 -1
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/examples/example_modular_mgd.py +1 -1
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/examples/example_modular_mgd_with_anharmonicity.py +1 -1
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/examples/example_olivine_px.py +5 -5
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/examples/example_olivine_tx.py +1 -1
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/examples/example_optimal_thermobarometry.py +9 -9
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/examples/example_phase_diagram_grid.py +6 -6
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/examples/example_pyrolite_modebox.py +3 -3
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/examples/example_pyrolite_phase_diagram.py +29 -29
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/examples/example_pyrolite_sp_phase_diagram.py +1 -1
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/examples/example_single_point_equilibrium.py +4 -4
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/include/burnman/core/material.hpp +8 -1
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/include/burnman/core/mineral.hpp +8 -0
- burnman_cpp-0.11.1/include/burnman/core/relaxed_composite.hpp +49 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/include/burnman/core/solution.hpp +5 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/include/burnman/core/solution_models/asymmetric_regular_solution.hpp +5 -0
- burnman_cpp-0.11.1/include/burnman/eos/aa.hpp +56 -0
- burnman_cpp-0.11.1/include/burnman/eos/brosh_calphad.hpp +56 -0
- burnman_cpp-0.11.1/include/burnman/eos/components/anharmonic_debye.hpp +33 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/include/burnman/eos/components/debye.hpp +8 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/include/burnman/eos/components/einstein.hpp +8 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/include/burnman/eos/dks_solid.hpp +1 -1
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/include/burnman/eos/hp.hpp +1 -1
- burnman_cpp-0.11.1/include/burnman/eos/hp98.hpp +43 -0
- burnman_cpp-0.11.1/include/burnman/eos/macaw.hpp +59 -0
- burnman_cpp-0.11.1/include/burnman/eos/morse_potential.hpp +66 -0
- burnman_cpp-0.11.1/include/burnman/eos/murnaghan.hpp +87 -0
- burnman_cpp-0.11.1/include/burnman/eos/pitzer_sterner.hpp +76 -0
- burnman_cpp-0.11.1/include/burnman/eos/reciprocal_kprime.hpp +58 -0
- burnman_cpp-0.11.1/include/burnman/minerals/SE_2015.hpp +13 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/include/burnman/minerals/datasets.hpp +100 -22
- burnman_cpp-0.11.1/include/burnman/minerals/other.hpp +10 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/include/burnman/minerals/phase_aliases.hpp +2 -2
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/include/burnman/minerals/water.hpp +5 -0
- burnman_cpp-0.11.1/include/burnman/optim/eos_fitting.hpp +185 -0
- burnman_cpp-0.11.1/include/burnman/optim/nonlinear_fitting.hpp +130 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/include/burnman/tools/thermobarometry.hpp +5 -4
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/include/burnman/utils/constants.hpp +28 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/include/burnman/utils/types/mineral_params.hpp +25 -1
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/include/burnman/utils/types/simple_types.hpp +9 -1
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/pyproject.toml +6 -2
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/python/bindings/bindings.hpp +3 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/python/bindings/eos.cpp +11 -0
- burnman_cpp-0.11.1/python/bindings/eos_fitting.cpp +435 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/python/bindings/materials.cpp +63 -0
- burnman_cpp-0.11.1/python/bindings/minerals.cpp +1970 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/python/bindings/module.cpp +2 -0
- burnman_cpp-0.11.1/python/bindings/nonlinear_fitting.cpp +291 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/python/bindings/params.cpp +31 -1
- burnman_cpp-0.11.1/python/bindings/thermal_components.cpp +155 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/python/bindings/thermobarometry.cpp +7 -7
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/python/burnman_cpp/__init__.py +59 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/python/burnman_cpp/adapters.py +31 -15
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/python/burnman_cpp/classes/equilibratedcomposite.py +1 -1
- burnman_cpp-0.11.1/python/burnman_cpp/classes/relaxedcomposite.py +119 -0
- burnman_cpp-0.11.1/python/burnman_cpp/eos/__init__.py +29 -0
- burnman_cpp-0.11.1/python/burnman_cpp/eos/anharmonic_debye.py +58 -0
- burnman_cpp-0.11.1/python/burnman_cpp/eos/bukowinski_electronic.py +14 -0
- burnman_cpp-0.11.1/python/burnman_cpp/eos/debye.py +33 -0
- burnman_cpp-0.11.1/python/burnman_cpp/eos/einstein.py +29 -0
- burnman_cpp-0.11.1/python/burnman_cpp/minerals/Pitzer_Sterner_1994.py +12 -0
- burnman_cpp-0.11.1/python/burnman_cpp/minerals/SE_2015.py +25 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/python/burnman_cpp/minerals/__init__.py +55 -30
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/python/burnman_cpp/optimize/__init__.py +2 -2
- burnman_cpp-0.11.1/python/burnman_cpp/optimize/_fitting_plots.py +272 -0
- burnman_cpp-0.11.1/python/burnman_cpp/optimize/eos_fitting.py +42 -0
- burnman_cpp-0.11.1/python/burnman_cpp/optimize/nonlinear_fitting.py +92 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/python/burnman_cpp/tools/phase_diagram_workflow.py +1 -1
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/python/tests/conftest.py +0 -10
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/python/tests/data/basalt_nearby_bivariant_junctions.json +1 -1
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/python/tests/data/metasediment_contour_field.json +2 -2
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/python/tests/data/metasediment_curve_edit.json +1 -1
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/python/tests/data/metasediment_curved_mica_field.json +1 -1
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/python/tests/data/metasediment_endpoints.json +1 -1
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/python/tests/data/metasediment_ordering_segment.json +1 -1
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/python/tests/data/metasediment_thin_finite_field.json +1 -1
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/python/tests/data/metasediment_univariant_segments.json +1 -1
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/python/tests/data/pyrolite_crossed_loops.json +1 -1
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/python/tests/data/pyrolite_duplicate_invariant.json +1 -1
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/python/tests/data/pyrolite_duplicate_junctions.json +4 -4
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/python/tests/data/pyrolite_limiting_neighbours.json +1 -1
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/python/tests/data/pyrolite_narrow_solution_replacement.json +1 -1
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/python/tests/data/pyrolite_nearby_univariant_junctions.json +1 -1
- burnman_cpp-0.11.1/python/tests/data/pyrolite_pt_coincident_phase_outs.json +1 -0
- burnman_cpp-0.11.1/python/tests/data/pyrolite_pt_cold_model_limits.json +1 -0
- burnman_cpp-0.11.1/python/tests/data/pyrolite_pt_cold_reaction_duplicates.json +1 -0
- burnman_cpp-0.11.1/python/tests/data/pyrolite_pt_equivalent_reaction_curves.json +1 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/python/tests/data/pyrolite_reaction_extents.json +1 -1
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/python/tests/data/pyrolite_sp_cf_copy_junctions.json +1 -1
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/python/tests/data/pyrolite_sp_failed_bracket.json +1 -1
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/python/tests/data/pyrolite_sp_false_cpx_junction.json +1 -1
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/python/tests/data/pyrolite_sp_false_junction.json +1 -1
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/python/tests/data/pyrolite_sp_junction.json +1 -1
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/python/tests/data/pyrolite_sp_missing_ak_boundary.json +1 -1
- burnman_cpp-0.11.1/python/tests/data/pyrolite_sp_reaction_classification.json +1 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/python/tests/data/pyrolite_sp_trace_site_junctions.json +1 -1
- burnman_cpp-0.11.1/python/tests/data/pyrolite_sp_trace_site_response.json +1 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/python/tests/data/pyrolite_sp_unconnected_junctions.json +1 -1
- burnman_cpp-0.11.1/python/tests/data/pyrolite_zoom_reaction_limits.json +1 -0
- burnman_cpp-0.11.1/python/tests/test_aa.py +157 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/python/tests/test_adapters.py +19 -12
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/python/tests/test_aspect_table.py +4 -4
- burnman_cpp-0.11.1/python/tests/test_brosh_calphad.py +131 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/python/tests/test_chemistry.py +19 -15
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/python/tests/test_complete_datasets.py +54 -21
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/python/tests/test_composition_fitting.py +1 -1
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/python/tests/test_composition_phase_diagram.py +4 -4
- burnman_cpp-0.11.1/python/tests/test_confidence_prediction_bands.py +254 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/python/tests/test_covariance.py +11 -2
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/python/tests/test_dks.py +2 -1
- burnman_cpp-0.11.1/python/tests/test_eos_fitting.py +442 -0
- burnman_cpp-0.11.1/python/tests/test_eos_fitting_volumes.py +215 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/python/tests/test_equilibrated_composite.py +10 -10
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/python/tests/test_equilibrium_path.py +4 -4
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/python/tests/test_figure13_benchmark.py +5 -5
- burnman_cpp-0.11.1/python/tests/test_fitting_diagnostics.py +243 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/python/tests/test_geotherm.py +2 -2
- burnman_cpp-0.11.1/python/tests/test_hp98.py +113 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/python/tests/test_layer_planet.py +4 -4
- burnman_cpp-0.11.1/python/tests/test_macaw.py +102 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/python/tests/test_melt.py +2 -2
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/python/tests/test_mineral_catalogue_reference.py +7 -7
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/python/tests/test_model_sets.py +13 -11
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/python/tests/test_modular_mgd.py +10 -5
- burnman_cpp-0.11.1/python/tests/test_morse_potential.py +100 -0
- burnman_cpp-0.11.1/python/tests/test_murnaghan.py +116 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/python/tests/test_native_failure_reference.py +1 -1
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/python/tests/test_native_minerals.py +27 -27
- burnman_cpp-0.11.1/python/tests/test_nonlinear_fitting.py +397 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/python/tests/test_phase_diagram.py +5 -5
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/python/tests/test_phase_diagram_perimeter_labels.py +4 -4
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/python/tests/test_phase_diagram_plot.py +4 -4
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/python/tests/test_phase_diagram_workflow.py +10 -10
- burnman_cpp-0.11.1/python/tests/test_pitzer_sterner.py +128 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/python/tests/test_polytope.py +17 -13
- burnman_cpp-0.11.1/python/tests/test_reciprocal_kprime.py +108 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/python/tests/test_reference_tools.py +48 -0
- burnman_cpp-0.11.1/python/tests/test_relaxed_composite.py +224 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/python/tests/test_slb2024.py +14 -6
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/python/tests/test_slb_datasets.py +33 -1
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/python/tests/test_slb_reference.py +13 -13
- burnman_cpp-0.11.1/python/tests/test_solution_fitting.py +215 -0
- burnman_cpp-0.11.1/python/tests/test_thermal_components.py +248 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/python/tests/test_thermobarometry.py +36 -18
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/python/tests/test_thermodynamic_phase_diagram.py +11 -1
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/src/core/material.cpp +6 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/src/core/mineral.cpp +83 -0
- burnman_cpp-0.11.1/src/core/relaxed_composite.cpp +196 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/src/data/covariance.cpp +12 -12
- burnman_cpp-0.11.1/src/eos/aa.cpp +337 -0
- burnman_cpp-0.11.1/src/eos/brosh_calphad.cpp +411 -0
- burnman_cpp-0.11.1/src/eos/components/anharmonic_debye.cpp +82 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/src/eos/components/debye.cpp +29 -11
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/src/eos/components/einstein.cpp +41 -20
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/src/eos/dks_solid.cpp +6 -6
- burnman_cpp-0.11.1/src/eos/hp98.cpp +161 -0
- burnman_cpp-0.11.1/src/eos/macaw.cpp +207 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/src/eos/make_eos.cpp +24 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/src/eos/mie_grueneisen_debye.cpp +13 -12
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/src/eos/modular_mie_grueneisen_debye.cpp +14 -30
- burnman_cpp-0.11.1/src/eos/morse_potential.cpp +167 -0
- burnman_cpp-0.11.1/src/eos/murnaghan.cpp +195 -0
- burnman_cpp-0.11.1/src/eos/pitzer_sterner.cpp +319 -0
- burnman_cpp-0.11.1/src/eos/reciprocal_kprime.cpp +254 -0
- burnman_cpp-0.11.1/src/minerals/SE_2015.cpp +132 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/src/minerals/datasets.cpp +1089 -25
- burnman_cpp-0.11.1/src/minerals/model_sets.cpp +147 -0
- burnman_cpp-0.11.1/src/minerals/other.cpp +39 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/src/minerals/phase_aliases.cpp +2 -2
- burnman_cpp-0.11.1/src/minerals/water.cpp +136 -0
- burnman_cpp-0.11.1/src/optim/eos_fitting.cpp +653 -0
- burnman_cpp-0.11.1/src/optim/nonlinear_fitting.cpp +490 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/src/tools/thermobarometry.cpp +131 -45
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/tests/core/test_mineral.cpp +1 -1
- burnman_cpp-0.11.1/tests/core/test_mineral_volume_state.cpp +82 -0
- burnman_cpp-0.11.1/tests/core/test_relaxed_composite.cpp +115 -0
- burnman_cpp-0.11.1/tests/eos/test_aa.cpp +155 -0
- burnman_cpp-0.11.1/tests/eos/test_brosh_calphad.cpp +215 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/tests/eos/test_dks.cpp +1 -1
- burnman_cpp-0.11.1/tests/eos/test_hp98.cpp +242 -0
- burnman_cpp-0.11.1/tests/eos/test_macaw.cpp +213 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/tests/eos/test_modular_mie_grueneisen_debye.cpp +1 -0
- burnman_cpp-0.11.1/tests/eos/test_morse_potential.cpp +183 -0
- burnman_cpp-0.11.1/tests/eos/test_murnaghan.cpp +195 -0
- burnman_cpp-0.11.1/tests/eos/test_pitzer_sterner.cpp +143 -0
- burnman_cpp-0.11.1/tests/eos/test_reciprocal_kprime.cpp +213 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/tests/eos/test_slb.cpp +3 -3
- burnman_cpp-0.11.1/tests/eos/test_thermal_components.cpp +196 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/tests/include/ps1994_reference.hpp +1 -1
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/tests/minerals/test_covariance.cpp +2 -1
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/tests/minerals/test_native_datasets.cpp +14 -13
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/tests/minerals/test_thermocalc_reference.cpp +4 -4
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/tests/minerals/test_water.cpp +8 -10
- burnman_cpp-0.11.1/tests/optim/test_eos_fitting.cpp +145 -0
- burnman_cpp-0.11.1/tests/optim/test_nonlinear_fitting.cpp +187 -0
- burnman_cpp-0.11.1/tests/reference/aa1994.json +125 -0
- burnman_cpp-0.11.1/tests/reference/brosh_calphad.json +345 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/tests/reference/burnman.json +1 -1
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/tests/tools/test_chemistry.cpp +6 -6
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/tests/tools/test_phase_diagram.cpp +47 -42
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/tests/tools/test_phase_diagram_consistency.cpp +1 -1
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/tests/tools/test_polytope.cpp +1 -1
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/tests/tools/test_thermobarometry.cpp +9 -7
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/tools/export_covariance_data.py +22 -4
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/tools/export_example_minerals.py +87 -31
- burnman_cpp-0.8.0/README.md +0 -197
- burnman_cpp-0.8.0/examples/data/input_fitting/SOURCES.md +0 -11
- burnman_cpp-0.8.0/python/bindings/minerals.cpp +0 -1880
- burnman_cpp-0.8.0/python/tests/data/pyrolite_pt_coincident_phase_outs.json +0 -1
- burnman_cpp-0.8.0/python/tests/data/pyrolite_pt_cold_model_limits.json +0 -1
- burnman_cpp-0.8.0/python/tests/data/pyrolite_pt_cold_reaction_duplicates.json +0 -1
- burnman_cpp-0.8.0/python/tests/data/pyrolite_pt_equivalent_reaction_curves.json +0 -1
- burnman_cpp-0.8.0/python/tests/data/pyrolite_sp_reaction_classification.json +0 -1
- burnman_cpp-0.8.0/python/tests/data/pyrolite_sp_trace_site_response.json +0 -1
- burnman_cpp-0.8.0/python/tests/data/pyrolite_zoom_reaction_limits.json +0 -1
- burnman_cpp-0.8.0/python/tests/dks_fortran_reference.py +0 -77
- burnman_cpp-0.8.0/src/minerals/model_sets.cpp +0 -145
- burnman_cpp-0.8.0/src/minerals/water.cpp +0 -217
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/.clang-format +0 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/.github/workflows/format.yml +0 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/.github/workflows/wheels.yml +0 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/.gitignore +0 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/LICENSE +0 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/benchmarks/core/benchmark_assemblage.cpp +0 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/benchmarks/core/benchmark_mineral.cpp +0 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/benchmarks/cpp_python_speedup.py +0 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/benchmarks/dekoker_2013/README.md +0 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/benchmarks/dekoker_2013/benchmark.py +0 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/benchmarks/dekoker_2013/extract_reference.py +0 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/benchmarks/dekoker_2013/reference/Mg2SiO4.png +0 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/benchmarks/dekoker_2013/reference/Mg3Si2O7.png +0 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/benchmarks/dekoker_2013/reference/Mg5SiO7.png +0 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/benchmarks/dekoker_2013/reference/MgO.png +0 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/benchmarks/dekoker_2013/reference/MgSi2O5.png +0 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/benchmarks/dekoker_2013/reference/MgSi3O7.png +0 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/benchmarks/dekoker_2013/reference/MgSi5O11.png +0 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/benchmarks/dekoker_2013/reference/MgSiO3.png +0 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/benchmarks/dekoker_2013/reference/SiO2.png +0 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/benchmarks/dekoker_2013/reference/endmembers.json +0 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/benchmarks/eos/benchmark_property_modifiers.cpp +0 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/benchmarks/parse_benchmarks.py +0 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/benchmarks/python_benchmarks.py +0 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/benchmarks/requirements.txt +0 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/benchmarks/stixrude_2024_figure13/README.md +0 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/benchmarks/stixrude_2024_figure13/overlay.py +0 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/benchmarks/stixrude_2024_figure13/reference/axis_registration.json +0 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/benchmarks/stixrude_2024_figure13/reference/figure13.svg +0 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/benchmarks/stixrude_2024_figure14/README.md +0 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/benchmarks/stixrude_2024_figure14/geotherm.py +0 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/benchmarks/stixrude_2024_figure14/overlay.py +0 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/benchmarks/stixrude_2024_figure14/reference/axis_registration.json +0 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/benchmarks/stixrude_2024_figure14/reference/expansivity.jpg +0 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/benchmarks/stixrude_2024_figure14/reference/figure14.svg +0 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/cmake/EmbedCovariance.cmake +0 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/examples/data/input_fitting/Bertka_Fei_1997_mars_mantle.dat +0 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/examples/example_basalt_phase_diagram.py +0 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/examples/example_composition.py +0 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/examples/example_dekoker_2013.py +0 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/examples/example_green2025_at1.py +0 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/examples/example_green2025_klb1.py +0 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/examples/example_green2025_mix1g.py +0 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/examples/example_green2025_re46.py +0 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/examples/example_green2025_ton101s.py +0 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/examples/example_green2025_ton101u.py +0 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/examples/example_harzburgite_basalt_px.py +0 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/examples/example_metasediment_phase_diagram.py +0 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/examples/example_olivine_vx.py +0 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/examples/example_patch_phase_diagram.py +0 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/examples/example_plot_pyrolite_sp_relaxed_properties.py +0 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/examples/example_pyrolite_phase_diagram_zoom.py +0 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/examples/example_refine_phase_diagram.py +0 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/examples/example_seismic.py +0 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/examples/example_solution_equilibrium.py +0 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/examples/example_spock_gold.py +0 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/examples/green2025.py +0 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/examples/green2025_reference.md +0 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/include/burnman/core/assemblage.hpp +0 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/include/burnman/core/combined_mineral.hpp +0 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/include/burnman/core/composite_material.hpp +0 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/include/burnman/core/composition.hpp +0 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/include/burnman/core/equation_of_state.hpp +0 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/include/burnman/core/equilibrated_composite.hpp +0 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/include/burnman/core/geotherm.hpp +0 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/include/burnman/core/layer.hpp +0 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/include/burnman/core/planet.hpp +0 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/include/burnman/core/relaxed_solution.hpp +0 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/include/burnman/core/seismic.hpp +0 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/include/burnman/core/solution_model.hpp +0 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/include/burnman/core/solution_models/ideal_solution.hpp +0 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/include/burnman/core/solution_models/solution_model_base.hpp +0 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/include/burnman/core/solution_models/symmetric_regular_solution.hpp +0 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/include/burnman/eos/birch_murnaghan.hpp +0 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/include/burnman/eos/components/anharmonic_prefactor_models.hpp +0 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/include/burnman/eos/components/anharmonic_thermal_models.hpp +0 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/include/burnman/eos/components/bukowinski_electronic.hpp +0 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/include/burnman/eos/components/debye_temperature_models.hpp +0 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/include/burnman/eos/components/excess_params.hpp +0 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/include/burnman/eos/components/gsl_params.hpp +0 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/include/burnman/eos/components/property_modifiers.hpp +0 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/include/burnman/eos/cork.hpp +0 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/include/burnman/eos/dks_liquid.hpp +0 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/include/burnman/eos/hp_liquid.hpp +0 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/include/burnman/eos/make_eos.hpp +0 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/include/burnman/eos/mie_grueneisen_debye.hpp +0 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/include/burnman/eos/modified_tait.hpp +0 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/include/burnman/eos/modular_mie_grueneisen_debye.hpp +0 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/include/burnman/eos/slb.hpp +0 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/include/burnman/eos/spock.hpp +0 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/include/burnman/eos/vinet.hpp +0 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/include/burnman/minerals/covariance.hpp +0 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/include/burnman/minerals/model_sets.hpp +0 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/include/burnman/optim/composition_fitting.hpp +0 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/include/burnman/optim/linear_fitting.hpp +0 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/include/burnman/optim/roots/bracket.hpp +0 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/include/burnman/optim/roots/brent.hpp +0 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/include/burnman/optim/roots/damped_newton_solver.hpp +0 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/include/burnman/optim/roots/damped_newton_state.hpp +0 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/include/burnman/optim/roots/damped_newton_types.hpp +0 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/include/burnman/tools/averaging/averaging_base.hpp +0 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/include/burnman/tools/averaging/averaging_schemes.hpp +0 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/include/burnman/tools/averaging/averaging_utils.hpp +0 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/include/burnman/tools/averaging/hs.hpp +0 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/include/burnman/tools/averaging/hs_lower.hpp +0 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/include/burnman/tools/averaging/hs_upper.hpp +0 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/include/burnman/tools/averaging/reuss.hpp +0 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/include/burnman/tools/averaging/voigt.hpp +0 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/include/burnman/tools/averaging/vrh.hpp +0 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/include/burnman/tools/chemistry.hpp +0 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/include/burnman/tools/equilibration/equality_constraint_base.hpp +0 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/include/burnman/tools/equilibration/equality_constraint_helpers.hpp +0 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/include/burnman/tools/equilibration/equality_constraint_variants.hpp +0 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/include/burnman/tools/equilibration/equality_constraints.hpp +0 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/include/burnman/tools/equilibration/equilibrate.hpp +0 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/include/burnman/tools/equilibration/equilibrate_impl.hpp +0 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/include/burnman/tools/equilibration/equilibrate_lambda_bounds.hpp +0 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/include/burnman/tools/equilibration/equilibrate_objective.hpp +0 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/include/burnman/tools/equilibration/equilibrate_types.hpp +0 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/include/burnman/tools/equilibration/equilibrate_utils.hpp +0 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/include/burnman/tools/partitioning.hpp +0 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/include/burnman/tools/phase_diagram/boundary_repair.hpp +0 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/include/burnman/tools/phase_diagram/calculation.hpp +0 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/include/burnman/tools/phase_diagram/common.hpp +0 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/include/burnman/tools/phase_diagram/consistency.hpp +0 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/include/burnman/tools/phase_diagram/continuation.hpp +0 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/include/burnman/tools/phase_diagram/contours.hpp +0 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/include/burnman/tools/phase_diagram/critical.hpp +0 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/include/burnman/tools/phase_diagram/domain.hpp +0 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/include/burnman/tools/phase_diagram/polygons.hpp +0 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/include/burnman/tools/phase_diagram/properties.hpp +0 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/include/burnman/tools/phase_diagram/refinement.hpp +0 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/include/burnman/tools/phase_diagram/stability.hpp +0 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/include/burnman/tools/phase_diagram/tracing.hpp +0 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/include/burnman/tools/phase_diagram/types.hpp +0 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/include/burnman/tools/phase_diagram/verification.hpp +0 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/include/burnman/tools/phase_diagram.hpp +0 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/include/burnman/tools/polytope.hpp +0 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/include/burnman/tools/seismic.hpp +0 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/include/burnman/utils/chemistry_utils.hpp +0 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/include/burnman/utils/exceptions.hpp +0 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/include/burnman/utils/index_utils.hpp +0 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/include/burnman/utils/math_utils.hpp +0 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/include/burnman/utils/matrix_utils.hpp +0 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/include/burnman/utils/polygon_utils.hpp +0 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/include/burnman/utils/string_utils.hpp +0 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/include/burnman/utils/types/ndarray.hpp +0 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/include/burnman/utils/types/types.hpp +0 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/include/burnman/utils/utils.hpp +0 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/include/burnman/utils/validate_optionals.hpp +0 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/include/burnman/utils/vector_utils.hpp +0 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/include/burnman/utils/warnings.hpp +0 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/python/bindings/chemistry.cpp +0 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/python/bindings/combined.cpp +0 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/python/bindings/composition.cpp +0 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/python/bindings/composition_fitting.cpp +0 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/python/bindings/equilibrated_composite.cpp +0 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/python/bindings/equilibration.cpp +0 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/python/bindings/geotherm.cpp +0 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/python/bindings/layer.cpp +0 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/python/bindings/linear_fitting.cpp +0 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/python/bindings/model_sets.cpp +0 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/python/bindings/modifiers.cpp +0 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/python/bindings/phase_diagram.cpp +0 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/python/bindings/planet.cpp +0 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/python/bindings/polytope.cpp +0 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/python/bindings/radial.hpp +0 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/python/bindings/seismic.cpp +0 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/python/bindings/solutions.cpp +0 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/python/bindings/utils.cpp +0 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/python/burnman_cpp/anharmonic_prefactor_models.py +0 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/python/burnman_cpp/anharmonic_thermal_models.py +0 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/python/burnman_cpp/classes/__init__.py +0 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/python/burnman_cpp/classes/geotherm.py +0 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/python/burnman_cpp/classes/layer.py +0 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/python/burnman_cpp/classes/planet.py +0 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/python/burnman_cpp/classes/seismic.py +0 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/python/burnman_cpp/constants.py +0 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/python/burnman_cpp/debye_temperature_models.py +0 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/python/burnman_cpp/optimize/composition_fitting.py +0 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/python/burnman_cpp/optimize/linear_fitting.py +0 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/python/burnman_cpp/tools/__init__.py +0 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/python/burnman_cpp/tools/aspect.py +0 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/python/burnman_cpp/tools/chemistry.py +0 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/python/burnman_cpp/tools/contours.py +0 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/python/burnman_cpp/tools/equilibrium_path.py +0 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/python/burnman_cpp/tools/partitioning.py +0 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/python/burnman_cpp/tools/phase_diagram.py +0 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/python/burnman_cpp/tools/phase_diagram_helpers.py +0 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/python/burnman_cpp/tools/polytope.py +0 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/python/burnman_cpp/tools/potential_grid.py +0 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/python/burnman_cpp/tools/properties.py +0 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/python/burnman_cpp/tools/seismic.py +0 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/python/burnman_cpp/tools/thermobarometry.py +0 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/python/tests/data/basalt_field_verification.json +0 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/python/tests/data/basalt_local_amphibole.json +0 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/python/tests/data/basalt_local_plagioclase.json +0 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/python/tests/data/forsterite_latent_interval.json +0 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/python/tests/data/green_provisional_loops.json +0 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/python/tests/data/harzburgite_garnet_composition_boundary.json +0 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/python/tests/data/harzburgite_thin_composition_field.json +0 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/python/tests/data/metasediment_contour_ordering_field.json +0 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/python/tests/data/metasediment_curved_node_connections.json +0 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/python/tests/data/metasediment_missing_melt_connection.json +0 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/python/tests/data/metasediment_parallel_fields.json +0 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/python/tests/data/metasediment_univariant_loop.json +0 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/python/tests/data/phase_diagram_model_limit_fan.json +0 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/python/tests/data/pyrolite_cold_endpoints.json +0 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/python/tests/data/pyrolite_critical_endpoints.json +0 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/python/tests/data/pyrolite_duplicate_curve.json +0 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/python/tests/data/pyrolite_endpoints.json +0 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/python/tests/data/pyrolite_exchanged_junction_zeros.json +0 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/python/tests/data/pyrolite_frame_order.json +0 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/python/tests/data/pyrolite_local_opx.json +0 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/python/tests/data/pyrolite_missing_solution_branch.json +0 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/python/tests/data/pyrolite_model_limit.json +0 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/python/tests/data/pyrolite_narrow_curves.json +0 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/python/tests/data/pyrolite_nearby_junctions.json +0 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/python/tests/data/pyrolite_neighbouring_branches.json +0 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/python/tests/data/pyrolite_partial_duplicate.json +0 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/python/tests/data/pyrolite_perimeter_neighbours.json +0 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/python/tests/data/pyrolite_pt_cold_coexistence.json +0 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/python/tests/data/pyrolite_pt_detached_junctions.json +0 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/python/tests/data/pyrolite_pt_garnet_stability.json +0 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/python/tests/data/pyrolite_pt_model_limit_duplicates.json +0 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/python/tests/data/pyrolite_pt_repair_regressions.json +0 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/python/tests/data/pyrolite_refinement_segment.json +0 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/python/tests/data/pyrolite_retired_junction_geometry.json +0 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/python/tests/data/pyrolite_short_branch_labels.json +0 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/python/tests/data/pyrolite_solution_replacement.json +0 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/python/tests/data/pyrolite_solvus_seeds.json +0 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/python/tests/data/pyrolite_sp_ak_branch_switch.json +0 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/python/tests/data/pyrolite_sp_enthalpy_branch.json +0 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/python/tests/data/pyrolite_sp_soft_grid_point.json +0 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/python/tests/data/pyrolite_sp_wrong_branch_junction.json +0 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/python/tests/data/pyrolite_stable_vertex_loop.json +0 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/python/tests/test_bindings.py +0 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/python/tests/test_composition.py +0 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/python/tests/test_composition_reference.py +0 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/python/tests/test_constants.py +0 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/python/tests/test_contour_tools.py +0 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/python/tests/test_cork.py +0 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/python/tests/test_dekoker_endmembers.py +0 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/python/tests/test_dekoker_example.py +0 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/python/tests/test_enthalpy_ps_infill.py +0 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/python/tests/test_equilibration.py +0 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/python/tests/test_figure14_benchmark.py +0 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/python/tests/test_forsterite_sections.py +0 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/python/tests/test_gaussian_moment_corrected.py +0 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/python/tests/test_green2025.py +0 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/python/tests/test_hp_datasets.py +0 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/python/tests/test_linear_fitting.py +0 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/python/tests/test_modifiers.py +0 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/python/tests/test_phase_diagram_branch_identity.py +0 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/python/tests/test_phase_diagram_consistency.py +0 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/python/tests/test_phase_diagram_contours.py +0 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/python/tests/test_phase_diagram_critical_endpoints.py +0 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/python/tests/test_phase_diagram_incidence.py +0 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/python/tests/test_phase_diagram_line_resolution.py +0 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/python/tests/test_phase_diagram_partial_duplicates.py +0 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/python/tests/test_phase_diagram_patching.py +0 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/python/tests/test_polygon_utils.py +0 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/python/tests/test_potential_grid.py +0 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/python/tests/test_property_grid.py +0 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/python/tests/test_seismic.py +0 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/python/tests/test_spock.py +0 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/python/tests/test_stable_equilibrium.py +0 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/python/tests/test_wheel_dependencies.py +0 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/python/tests/test_wheel_metadata.py +0 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/src/core/assemblage.cpp +0 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/src/core/combined_mineral.cpp +0 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/src/core/composite_material.cpp +0 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/src/core/composition.cpp +0 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/src/core/equation_of_state.cpp +0 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/src/core/equilibrated_composite.cpp +0 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/src/core/geotherm.cpp +0 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/src/core/layer.cpp +0 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/src/core/planet.cpp +0 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/src/core/radial_profile.hpp +0 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/src/core/relaxed_solution.cpp +0 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/src/core/seismic.cpp +0 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/src/core/solution.cpp +0 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/src/core/solution_models/asymmetric_regular_solution.cpp +0 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/src/core/solution_models/ideal_solution.cpp +0 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/src/core/solution_models/solution_model_base.cpp +0 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/src/core/solution_models/symmetric_regular_solution.cpp +0 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/src/data/geotherm_data.hpp +0 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/src/data/input_covariance/HGP_2018_ds633_cov.h5 +0 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/src/data/input_covariance/HP_2011_ds62_cov.h5 +0 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/src/data/input_covariance/HPx_ds636_cov.h5 +0 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/src/data/input_geotherm/Anzellini_2013_PT.txt +0 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/src/data/input_geotherm/Katsura_2022.txt +0 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/src/data/input_geotherm/Plesa_2022_Mars_V_6cm3.txt +0 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/src/data/input_geotherm/SOURCES.md +0 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/src/data/input_geotherm/Stacey_1977_continents.txt +0 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/src/data/input_geotherm/Stacey_1977_oceans.txt +0 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/src/data/input_geotherm/anderson_82.txt +0 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/src/data/input_geotherm/brown_81.txt +0 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/src/data/input_seismic/SOURCES.md +0 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/src/data/input_seismic/STW105.txt +0 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/src/data/input_seismic/ak135.txt +0 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/src/data/input_seismic/iasp91.txt +0 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/src/data/input_seismic/prem.txt +0 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/src/data/input_seismic/pwave_fast.txt +0 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/src/data/input_seismic/pwave_slow.txt +0 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/src/data/input_seismic/swave_fast.txt +0 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/src/data/input_seismic/swave_slow.txt +0 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/src/data/read_table.cpp +0 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/src/data/read_table.hpp +0 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/src/data/seismic_data.hpp +0 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/src/eos/birch_murnaghan.cpp +0 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/src/eos/components/bukowinski_electronic.cpp +0 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/src/eos/components/modular_mgd_models.cpp +0 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/src/eos/components/property_modifiers.cpp +0 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/src/eos/cork.cpp +0 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/src/eos/dks_common.hpp +0 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/src/eos/dks_liquid.cpp +0 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/src/eos/hp.cpp +0 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/src/eos/hp_liquid.cpp +0 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/src/eos/modified_tait.cpp +0 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/src/eos/slb.cpp +0 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/src/eos/spock.cpp +0 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/src/eos/vinet.cpp +0 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/src/optim/composition_fitting.cpp +0 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/src/optim/linear_fitting.cpp +0 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/src/optim/roots/damped_newton_solver.cpp +0 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/src/tools/averaging/averaging_base.cpp +0 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/src/tools/averaging/averaging_utils.cpp +0 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/src/tools/averaging/hs.cpp +0 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/src/tools/averaging/hs_lower.cpp +0 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/src/tools/averaging/hs_upper.cpp +0 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/src/tools/averaging/reuss.cpp +0 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/src/tools/averaging/voigt.cpp +0 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/src/tools/averaging/vrh.cpp +0 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/src/tools/chemistry.cpp +0 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/src/tools/equilibration/equality_constraint_variants.cpp +0 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/src/tools/equilibration/equilibrate_impl.cpp +0 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/src/tools/equilibration/equilibrate_lambda_bounds.cpp +0 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/src/tools/equilibration/equilibrate_objective.cpp +0 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/src/tools/equilibration/equilibrate_utils.cpp +0 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/src/tools/partitioning.cpp +0 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/src/tools/phase_diagram/boundary_repair.cpp +0 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/src/tools/phase_diagram/calculation.cpp +0 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/src/tools/phase_diagram/common.cpp +0 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/src/tools/phase_diagram/consistency.cpp +0 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/src/tools/phase_diagram/continuation.cpp +0 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/src/tools/phase_diagram/contours.cpp +0 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/src/tools/phase_diagram/critical.cpp +0 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/src/tools/phase_diagram/domain.cpp +0 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/src/tools/phase_diagram/polygons.cpp +0 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/src/tools/phase_diagram/potential.cpp +0 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/src/tools/phase_diagram/properties.cpp +0 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/src/tools/phase_diagram/refinement.cpp +0 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/src/tools/phase_diagram/stability.cpp +0 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/src/tools/phase_diagram/tracing.cpp +0 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/src/tools/phase_diagram/verification.cpp +0 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/src/tools/polytope.cpp +0 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/src/tools/seismic.cpp +0 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/src/tools/solution_simplification.cpp +0 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/src/utils/chemistry_utils.cpp +0 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/src/utils/polygon_utils.cpp +0 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/tests/core/test_assemblage.cpp +0 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/tests/core/test_composition.cpp +0 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/tests/core/test_geotherm.cpp +0 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/tests/core/test_layer_planet.cpp +0 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/tests/core/test_material.cpp +0 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/tests/core/test_seismic.cpp +0 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/tests/core/test_solution.cpp +0 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/tests/core/test_solution_model.cpp +0 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/tests/eos/test_birch_murnaghan.cpp +0 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/tests/eos/test_bukowinski_electronic.cpp +0 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/tests/eos/test_cork.cpp +0 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/tests/eos/test_debye.cpp +0 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/tests/eos/test_einstein.cpp +0 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/tests/eos/test_excess_params.cpp +0 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/tests/eos/test_hp.cpp +0 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/tests/eos/test_mie_grueneisen_debye.cpp +0 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/tests/eos/test_modified_tait.cpp +0 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/tests/eos/test_property_modifiers.cpp +0 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/tests/eos/test_spock.cpp +0 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/tests/eos/test_vinet.cpp +0 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/tests/eos/test_volume_accuracy.cpp +0 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/tests/include/eos_names.hpp +0 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/tests/include/equilibration_fixtures.hpp +0 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/tests/include/solution_fixtures.hpp +0 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/tests/include/thermocalc_reference.hpp +0 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/tests/include/tolerances.hpp +0 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/tests/optim/roots/test_damped_newton.cpp +0 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/tests/optim/roots/test_roots.cpp +0 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/tests/optim/test_composition_fitting.cpp +0 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/tests/optim/test_linear_fitting.cpp +0 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/tests/reference/ps1994.json +0 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/tests/reference/thermocalc_metapelite.json +0 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/tests/test_main.cpp +0 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/tests/tools/averaging/test_averaging_schemes.cpp +0 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/tests/tools/equilibration/test_equality_constraints.cpp +0 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/tests/tools/equilibration/test_equilibrate.cpp +0 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/tests/tools/equilibration/test_equilibrate_lambda_bounds.cpp +0 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/tests/tools/equilibration/test_equilibrate_objective.cpp +0 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/tests/tools/equilibration/test_equilibrate_utils.cpp +0 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/tests/utils/test_chemistry_utils.cpp +0 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/tests/utils/test_constants.cpp +0 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/tests/utils/test_exceptions.cpp +0 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/tests/utils/test_index_utils.cpp +0 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/tests/utils/test_math_utils.cpp +0 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/tests/utils/test_matrix_utils.cpp +0 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/tests/utils/test_polygon_utils.cpp +0 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/tests/utils/test_string_utils.cpp +0 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/tests/utils/test_types.cpp +0 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/tests/utils/test_validate_optionals.cpp +0 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/tests/utils/test_vector_utils.cpp +0 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/tests/utils/test_warnings.cpp +0 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/tools/build_wheel_dependencies.py +0 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/tools/burnman_reference.py +0 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/tools/check_reference_data.py +0 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/tools/export_geotherm_data.py +0 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/tools/export_seismic_data.py +0 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/tools/extract_thermocalc_reference.py +0 -0
- {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/tools/generate_ps1994_reference.py +0 -0
|
@@ -110,7 +110,7 @@ jobs:
|
|
|
110
110
|
uses: actions/checkout@v7
|
|
111
111
|
with:
|
|
112
112
|
repository: geodynamics/burnman
|
|
113
|
-
ref:
|
|
113
|
+
ref: b7c54ccf7bfd8583158c6dffe210c004b9570f4d
|
|
114
114
|
path: build/python-burnman-reference
|
|
115
115
|
persist-credentials: false
|
|
116
116
|
|
|
@@ -80,8 +80,8 @@ function(burnman_covariance_data name dataset)
|
|
|
80
80
|
VERBATIM)
|
|
81
81
|
target_sources(burnman_core PRIVATE "${output}")
|
|
82
82
|
endfunction()
|
|
83
|
-
burnman_covariance_data(
|
|
84
|
-
burnman_covariance_data(
|
|
83
|
+
burnman_covariance_data(HP_2011_ds62 HP_2011_ds62)
|
|
84
|
+
burnman_covariance_data(HGP_2018_ds633 HGP_2018_ds633)
|
|
85
85
|
burnman_covariance_data(HPx_ds636 HPx_ds636)
|
|
86
86
|
target_include_directories(burnman_core PRIVATE "${CMAKE_CURRENT_BINARY_DIR}/generated")
|
|
87
87
|
set_target_properties(burnman_core PROPERTIES POSITION_INDEPENDENT_CODE ON)
|
|
@@ -94,9 +94,12 @@ if(BURNMAN_BUILD_PYTHON)
|
|
|
94
94
|
python/bindings/module.cpp
|
|
95
95
|
python/bindings/params.cpp
|
|
96
96
|
python/bindings/eos.cpp
|
|
97
|
+
python/bindings/thermal_components.cpp
|
|
97
98
|
python/bindings/materials.cpp
|
|
98
99
|
python/bindings/composition.cpp
|
|
99
100
|
python/bindings/linear_fitting.cpp
|
|
101
|
+
python/bindings/nonlinear_fitting.cpp
|
|
102
|
+
python/bindings/eos_fitting.cpp
|
|
100
103
|
python/bindings/composition_fitting.cpp
|
|
101
104
|
python/bindings/thermobarometry.cpp
|
|
102
105
|
python/bindings/chemistry.cpp
|
|
@@ -106,7 +106,7 @@ endif
|
|
|
106
106
|
# Covariance images are generated for this build mode before their reader.
|
|
107
107
|
COVARIANCE_BUILD_DIR := $(MODE_BUILD_DIR)/generated
|
|
108
108
|
COVARIANCE_EMBED_SCRIPT := $(CWD)/cmake/EmbedCovariance.cmake
|
|
109
|
-
COVARIANCE_HEADERS := $(addprefix $(COVARIANCE_BUILD_DIR)/,
|
|
109
|
+
COVARIANCE_HEADERS := $(addprefix $(COVARIANCE_BUILD_DIR)/,HP_2011_ds62_covariance_data.hpp HGP_2018_ds633_covariance_data.hpp HPx_ds636_covariance_data.hpp)
|
|
110
110
|
CPPFLAGS += -I$(COVARIANCE_BUILD_DIR)
|
|
111
111
|
|
|
112
112
|
# Find source files
|
|
@@ -130,8 +130,8 @@ BENCHMARK_TARGET := $(BIN_DIR)/$(BENCHMARK_EXEC)$(BIN_SUFFIX)
|
|
|
130
130
|
# Default rule
|
|
131
131
|
all: $(TARGET)
|
|
132
132
|
|
|
133
|
-
$(COVARIANCE_BUILD_DIR)/
|
|
134
|
-
$(COVARIANCE_BUILD_DIR)/
|
|
133
|
+
$(COVARIANCE_BUILD_DIR)/HP_2011_ds62_covariance_data.hpp: $(SRC_DIR)/data/input_covariance/HP_2011_ds62_cov.h5
|
|
134
|
+
$(COVARIANCE_BUILD_DIR)/HGP_2018_ds633_covariance_data.hpp: $(SRC_DIR)/data/input_covariance/HGP_2018_ds633_cov.h5
|
|
135
135
|
$(COVARIANCE_BUILD_DIR)/HPx_ds636_covariance_data.hpp: $(SRC_DIR)/data/input_covariance/HPx_ds636_cov.h5
|
|
136
136
|
|
|
137
137
|
$(COVARIANCE_HEADERS): $(COVARIANCE_EMBED_SCRIPT)
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: burnman_cpp
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.11.1
|
|
4
4
|
Summary: Python bindings for the BurnMan C++ mineral physics library
|
|
5
5
|
Author-Email: The BurnMan Team <bob.myhill@bristol.ac.uk>
|
|
6
6
|
License-Expression: GPL-3.0-or-later
|
|
@@ -53,32 +53,114 @@ Python authors (as of 2025, from the [BurnMan README](https://github.com/geodyna
|
|
|
53
53
|
|
|
54
54
|
### Published Python wheels
|
|
55
55
|
|
|
56
|
-
|
|
56
|
+
Using Python 3.10 or newer, install the published package into your chosen
|
|
57
|
+
Python environment:
|
|
57
58
|
|
|
58
59
|
```sh
|
|
59
60
|
python -m pip install --upgrade pip
|
|
60
61
|
python -m pip install burnman_cpp
|
|
61
62
|
```
|
|
62
63
|
|
|
63
|
-
|
|
64
|
+
A virtual environment is optional. To use one, run these commands before
|
|
65
|
+
installing:
|
|
64
66
|
|
|
65
|
-
|
|
67
|
+
```sh
|
|
68
|
+
python -m venv .venv
|
|
69
|
+
source .venv/bin/activate
|
|
70
|
+
```
|
|
66
71
|
|
|
67
|
-
|
|
72
|
+
Pip installs NumPy and SciPy automatically. Published wheels bundle the native
|
|
73
|
+
libraries, so a compiler and native development packages are only needed when
|
|
74
|
+
building from source. If no matching wheel is available, pip builds from source
|
|
75
|
+
and needs the dependencies below.
|
|
68
76
|
|
|
69
|
-
|
|
70
|
-
- CMake 3.18 or newer.
|
|
71
|
-
- Eigen 3.4 or newer, GSL, NLopt with its C++ headers, cddlib with its GMP
|
|
72
|
-
library (`cddgmp`), and GMP.
|
|
73
|
-
- Python 3.10 or newer and its development headers for the Python package.
|
|
74
|
-
- Catch2 3.4 or newer for C++ tests and benchmarks.
|
|
77
|
+
### Building from source
|
|
75
78
|
|
|
76
|
-
|
|
79
|
+
#### Native dependencies
|
|
80
|
+
|
|
81
|
+
Both the C++ library and Python source builds require:
|
|
82
|
+
|
|
83
|
+
- **C and C++17 compiler toolchain**, such as GCC or Clang: compiles the native
|
|
84
|
+
library and, for Python builds, the extension module. CMake also checks for
|
|
85
|
+
a C compiler when locating HDF5.
|
|
86
|
+
- **CMake 3.18 or newer**: configures the build, locates native dependencies and
|
|
87
|
+
embeds the covariance datasets. The supplied Makefile also uses CMake for
|
|
88
|
+
the data embedding step.
|
|
89
|
+
- **Eigen 3.4 or newer**: supplies matrix and vector operations, linear solvers
|
|
90
|
+
and decompositions for compositions, reactions, solution models and fitting.
|
|
91
|
+
- **GSL (GNU Scientific Library)**: provides root finding, numerical
|
|
92
|
+
integration, special functions and splines for equations of state and radial
|
|
93
|
+
planet profiles.
|
|
94
|
+
- **NLopt, including its C++ header `nlopt.hpp`**: performs constrained
|
|
95
|
+
optimisation for relaxed solutions, fitting, thermobarometry and phase
|
|
96
|
+
stability calculations.
|
|
97
|
+
- **cddlib, including its GMP-backed library `cddgmp`**: converts composition
|
|
98
|
+
constraints into polytope vertices for solution and assemblage calculations.
|
|
99
|
+
- **GMP (GNU Multiple Precision Arithmetic Library)**: provides the exact
|
|
100
|
+
rational arithmetic used by cddlib and the polytope code to handle chemical
|
|
101
|
+
composition constraints.
|
|
102
|
+
- **HDF5 1.10 or newer, with its C development headers and gzip/deflate support**:
|
|
103
|
+
reads the embedded endmember energy covariance datasets for HP_2011_ds62,
|
|
104
|
+
HGP_2018_ds633 and HPx_ds636. These data are embedded during the build and
|
|
105
|
+
read in memory.
|
|
106
|
+
|
|
107
|
+
Additional tools depend on the build and checks you choose:
|
|
108
|
+
|
|
109
|
+
- **Make**: runs the supplied Makefile. CMake builds also need a build tool,
|
|
110
|
+
such as Make or Ninja.
|
|
111
|
+
- **pkg-config**: lets the Makefile discover HDF5 compiler and linker flags.
|
|
112
|
+
It is optional for CMake builds.
|
|
113
|
+
- **Catch2 3.4 or newer**: supplies the C++ unit test runner and performance
|
|
114
|
+
benchmark framework. It is only required when building those targets.
|
|
115
|
+
- **Git**: downloads the source repository and the optional pinned Python
|
|
116
|
+
BurnMan reference checkout.
|
|
117
|
+
|
|
118
|
+
#### Python dependencies
|
|
119
|
+
|
|
120
|
+
For the Python package, also install:
|
|
121
|
+
|
|
122
|
+
- **Python 3.10 or newer, including its development headers**: runs the package
|
|
123
|
+
and lets the extension compile against Python.
|
|
124
|
+
- **pip**: builds and installs the Python package and its Python dependencies.
|
|
125
|
+
|
|
126
|
+
Pip installs these build and runtime dependencies automatically, as specified in
|
|
127
|
+
[pyproject.toml](pyproject.toml):
|
|
128
|
+
|
|
129
|
+
- **scikit-build-core 0.11 or newer** (build): connects pip's package build
|
|
130
|
+
process to CMake and packages the compiled extension.
|
|
131
|
+
- **pybind11 3.0 or newer** (build): exposes the C++ classes and functions to
|
|
132
|
+
Python, including conversions between Eigen matrices and NumPy arrays.
|
|
133
|
+
- **NumPy 1.23 or newer** (runtime): provides arrays for compositions, material
|
|
134
|
+
properties, covariance matrices and thermodynamic grids.
|
|
135
|
+
- **SciPy 1.9 or newer** (runtime): provides interpolation, sparse matrices,
|
|
136
|
+
optimisation and smoothing for potential grids and ASPECT table exports.
|
|
137
|
+
|
|
138
|
+
Optional Python dependencies are installed through extras:
|
|
139
|
+
|
|
140
|
+
- **pytest 7 or newer** (`test`): runs the Python test suite.
|
|
141
|
+
- **Matplotlib 3.6 or newer** (`examples`): plots examples, phase diagrams and
|
|
142
|
+
diagnostic figures; it is also needed by the plotting tests.
|
|
143
|
+
- **Python BurnMan 2.1 or newer** (`reference`): enables adapters and comparisons
|
|
144
|
+
with the original implementation. The reference tests below use a specific
|
|
145
|
+
Git commit for reproducibility.
|
|
146
|
+
- **h5py 3.8 or newer** (`reference`): exports and checks the HDF5 covariance
|
|
147
|
+
source files. Ordinary builds and covariance access use native HDF5 directly.
|
|
148
|
+
|
|
149
|
+
#### Install system dependencies
|
|
150
|
+
|
|
151
|
+
On Ubuntu 24.04, install the native dependencies and Python development tools:
|
|
77
152
|
|
|
78
153
|
```sh
|
|
79
154
|
sudo apt-get update
|
|
80
|
-
sudo apt-get install -y build-essential cmake
|
|
81
|
-
|
|
155
|
+
sudo apt-get install -y build-essential cmake git pkg-config \
|
|
156
|
+
python3-dev python3-pip python3-venv \
|
|
157
|
+
libeigen3-dev libgsl-dev libnlopt-cxx-dev libcdd-dev libgmp-dev libhdf5-dev
|
|
158
|
+
```
|
|
159
|
+
|
|
160
|
+
For C++ tests and benchmarks, also install Catch2:
|
|
161
|
+
|
|
162
|
+
```sh
|
|
163
|
+
sudo apt-get install -y catch2
|
|
82
164
|
```
|
|
83
165
|
|
|
84
166
|
On macOS, install the Xcode command-line tools if needed, then install the
|
|
@@ -86,10 +168,18 @@ dependencies with [Homebrew](https://brew.sh):
|
|
|
86
168
|
|
|
87
169
|
```sh
|
|
88
170
|
xcode-select --install
|
|
89
|
-
brew install python cmake eigen gsl nlopt cddlib gmp
|
|
171
|
+
brew install python cmake pkg-config eigen gsl nlopt cddlib gmp hdf5
|
|
90
172
|
```
|
|
91
173
|
|
|
92
|
-
|
|
174
|
+
For C++ tests and benchmarks, also install Catch2:
|
|
175
|
+
|
|
176
|
+
```sh
|
|
177
|
+
brew install catch2
|
|
178
|
+
```
|
|
179
|
+
|
|
180
|
+
#### Build and install the Python package
|
|
181
|
+
|
|
182
|
+
Clone the repository, then use your chosen Python environment:
|
|
93
183
|
|
|
94
184
|
```sh
|
|
95
185
|
git clone https://github.com/bobmyhill/burnman_cpp.git
|
|
@@ -178,7 +268,9 @@ Make also accepts an optional `BUILD_MODE` argument. Available modes:
|
|
|
178
268
|
|
|
179
269
|
Debug and test builds use separate outputs, such as `bin/run_tests_debug` and
|
|
180
270
|
`bin/run_tests_test`. Use `CXX`, `EXTRA_INCLUDE` and `EXTRA_LIB` to override the
|
|
181
|
-
compiler and dependency paths.
|
|
271
|
+
compiler and dependency paths. If HDF5 is outside pkg-config's search path, set
|
|
272
|
+
`PKG_CONFIG_PATH` to the directory containing `hdf5.pc`, or pass `HDF5_CFLAGS`
|
|
273
|
+
and `HDF5_LIBS` explicitly to Make.
|
|
182
274
|
|
|
183
275
|
### Optional Python BurnMan reference comparisons
|
|
184
276
|
|
|
@@ -188,7 +280,7 @@ comparisons used by GitHub CI:
|
|
|
188
280
|
|
|
189
281
|
```sh
|
|
190
282
|
git clone https://github.com/geodynamics/burnman.git build/python-burnman-reference
|
|
191
|
-
git -C build/python-burnman-reference checkout
|
|
283
|
+
git -C build/python-burnman-reference checkout b7c54ccf7bfd8583158c6dffe210c004b9570f4d
|
|
192
284
|
python -m pip install -e 'build/python-burnman-reference[dev]'
|
|
193
285
|
export PYTHONPATH="$PWD/build/python-burnman-reference"
|
|
194
286
|
export PYTHONDONTWRITEBYTECODE=1
|
|
@@ -199,6 +291,9 @@ MPLBACKEND=Agg python -m pytest -q -ra python/tests
|
|
|
199
291
|
|
|
200
292
|
Install the same formatter versions used by GitHub CI:
|
|
201
293
|
|
|
294
|
+
- **clang-format**: formats C++ sources and headers.
|
|
295
|
+
- **Black**: formats Python sources.
|
|
296
|
+
|
|
202
297
|
```sh
|
|
203
298
|
python -m pip install -r contrib/utilities/requirements-format.txt
|
|
204
299
|
```
|
|
@@ -219,6 +314,13 @@ directory.
|
|
|
219
314
|
Build, run and report performance benchmarks using the instructions in
|
|
220
315
|
[benchmarks/README.md](benchmarks/README.md).
|
|
221
316
|
|
|
317
|
+
The Python reporting tools use NumPy and Matplotlib, plus:
|
|
318
|
+
|
|
319
|
+
- **pandas 1.5 or newer**: processes timing tables and CSV reports.
|
|
320
|
+
|
|
321
|
+
Install the reporting dependencies with
|
|
322
|
+
`python -m pip install -r benchmarks/requirements.txt`.
|
|
323
|
+
|
|
222
324
|
## License
|
|
223
325
|
|
|
224
326
|
burnman_cpp is licensed under [GPL-3.0-or-later](LICENSE).
|
|
@@ -0,0 +1,299 @@
|
|
|
1
|
+
# burnman_cpp
|
|
2
|
+
|
|
3
|
+
A C++ translation of [BurnMan](https://github.com/geodynamics/burnman), with
|
|
4
|
+
Python bindings.
|
|
5
|
+
|
|
6
|
+
## Developers
|
|
7
|
+
|
|
8
|
+
C++ authors:
|
|
9
|
+
|
|
10
|
+
* Benedict Heinen
|
|
11
|
+
* Bob (Robert) Myhill
|
|
12
|
+
|
|
13
|
+
Python authors (as of 2025, from the [BurnMan README](https://github.com/geodynamics/burnman/blob/39b582cd23954fabd3bdbbee6526a522b1d97bc9/Readme.md)):
|
|
14
|
+
|
|
15
|
+
* Bob (Robert) Myhill (main contributor)
|
|
16
|
+
* Sanne Cottaar
|
|
17
|
+
* Timo Heister
|
|
18
|
+
* Ian Rose
|
|
19
|
+
* Cayman Unterborn
|
|
20
|
+
* Benedict Heinen
|
|
21
|
+
* Robert Farla
|
|
22
|
+
* Juliane Dannberg
|
|
23
|
+
* Rene Gassmoeller
|
|
24
|
+
|
|
25
|
+
## Installation
|
|
26
|
+
|
|
27
|
+
### Published Python wheels
|
|
28
|
+
|
|
29
|
+
Using Python 3.10 or newer, install the published package into your chosen
|
|
30
|
+
Python environment:
|
|
31
|
+
|
|
32
|
+
```sh
|
|
33
|
+
python -m pip install --upgrade pip
|
|
34
|
+
python -m pip install burnman_cpp
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
A virtual environment is optional. To use one, run these commands before
|
|
38
|
+
installing:
|
|
39
|
+
|
|
40
|
+
```sh
|
|
41
|
+
python -m venv .venv
|
|
42
|
+
source .venv/bin/activate
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
Pip installs NumPy and SciPy automatically. Published wheels bundle the native
|
|
46
|
+
libraries, so a compiler and native development packages are only needed when
|
|
47
|
+
building from source. If no matching wheel is available, pip builds from source
|
|
48
|
+
and needs the dependencies below.
|
|
49
|
+
|
|
50
|
+
### Building from source
|
|
51
|
+
|
|
52
|
+
#### Native dependencies
|
|
53
|
+
|
|
54
|
+
Both the C++ library and Python source builds require:
|
|
55
|
+
|
|
56
|
+
- **C and C++17 compiler toolchain**, such as GCC or Clang: compiles the native
|
|
57
|
+
library and, for Python builds, the extension module. CMake also checks for
|
|
58
|
+
a C compiler when locating HDF5.
|
|
59
|
+
- **CMake 3.18 or newer**: configures the build, locates native dependencies and
|
|
60
|
+
embeds the covariance datasets. The supplied Makefile also uses CMake for
|
|
61
|
+
the data embedding step.
|
|
62
|
+
- **Eigen 3.4 or newer**: supplies matrix and vector operations, linear solvers
|
|
63
|
+
and decompositions for compositions, reactions, solution models and fitting.
|
|
64
|
+
- **GSL (GNU Scientific Library)**: provides root finding, numerical
|
|
65
|
+
integration, special functions and splines for equations of state and radial
|
|
66
|
+
planet profiles.
|
|
67
|
+
- **NLopt, including its C++ header `nlopt.hpp`**: performs constrained
|
|
68
|
+
optimisation for relaxed solutions, fitting, thermobarometry and phase
|
|
69
|
+
stability calculations.
|
|
70
|
+
- **cddlib, including its GMP-backed library `cddgmp`**: converts composition
|
|
71
|
+
constraints into polytope vertices for solution and assemblage calculations.
|
|
72
|
+
- **GMP (GNU Multiple Precision Arithmetic Library)**: provides the exact
|
|
73
|
+
rational arithmetic used by cddlib and the polytope code to handle chemical
|
|
74
|
+
composition constraints.
|
|
75
|
+
- **HDF5 1.10 or newer, with its C development headers and gzip/deflate support**:
|
|
76
|
+
reads the embedded endmember energy covariance datasets for HP_2011_ds62,
|
|
77
|
+
HGP_2018_ds633 and HPx_ds636. These data are embedded during the build and
|
|
78
|
+
read in memory.
|
|
79
|
+
|
|
80
|
+
Additional tools depend on the build and checks you choose:
|
|
81
|
+
|
|
82
|
+
- **Make**: runs the supplied Makefile. CMake builds also need a build tool,
|
|
83
|
+
such as Make or Ninja.
|
|
84
|
+
- **pkg-config**: lets the Makefile discover HDF5 compiler and linker flags.
|
|
85
|
+
It is optional for CMake builds.
|
|
86
|
+
- **Catch2 3.4 or newer**: supplies the C++ unit test runner and performance
|
|
87
|
+
benchmark framework. It is only required when building those targets.
|
|
88
|
+
- **Git**: downloads the source repository and the optional pinned Python
|
|
89
|
+
BurnMan reference checkout.
|
|
90
|
+
|
|
91
|
+
#### Python dependencies
|
|
92
|
+
|
|
93
|
+
For the Python package, also install:
|
|
94
|
+
|
|
95
|
+
- **Python 3.10 or newer, including its development headers**: runs the package
|
|
96
|
+
and lets the extension compile against Python.
|
|
97
|
+
- **pip**: builds and installs the Python package and its Python dependencies.
|
|
98
|
+
|
|
99
|
+
Pip installs these build and runtime dependencies automatically, as specified in
|
|
100
|
+
[pyproject.toml](pyproject.toml):
|
|
101
|
+
|
|
102
|
+
- **scikit-build-core 0.11 or newer** (build): connects pip's package build
|
|
103
|
+
process to CMake and packages the compiled extension.
|
|
104
|
+
- **pybind11 3.0 or newer** (build): exposes the C++ classes and functions to
|
|
105
|
+
Python, including conversions between Eigen matrices and NumPy arrays.
|
|
106
|
+
- **NumPy 1.23 or newer** (runtime): provides arrays for compositions, material
|
|
107
|
+
properties, covariance matrices and thermodynamic grids.
|
|
108
|
+
- **SciPy 1.9 or newer** (runtime): provides interpolation, sparse matrices,
|
|
109
|
+
optimisation and smoothing for potential grids and ASPECT table exports.
|
|
110
|
+
|
|
111
|
+
Optional Python dependencies are installed through extras:
|
|
112
|
+
|
|
113
|
+
- **pytest 7 or newer** (`test`): runs the Python test suite.
|
|
114
|
+
- **Matplotlib 3.6 or newer** (`examples`): plots examples, phase diagrams and
|
|
115
|
+
diagnostic figures; it is also needed by the plotting tests.
|
|
116
|
+
- **Python BurnMan 2.1 or newer** (`reference`): enables adapters and comparisons
|
|
117
|
+
with the original implementation. The reference tests below use a specific
|
|
118
|
+
Git commit for reproducibility.
|
|
119
|
+
- **h5py 3.8 or newer** (`reference`): exports and checks the HDF5 covariance
|
|
120
|
+
source files. Ordinary builds and covariance access use native HDF5 directly.
|
|
121
|
+
|
|
122
|
+
#### Install system dependencies
|
|
123
|
+
|
|
124
|
+
On Ubuntu 24.04, install the native dependencies and Python development tools:
|
|
125
|
+
|
|
126
|
+
```sh
|
|
127
|
+
sudo apt-get update
|
|
128
|
+
sudo apt-get install -y build-essential cmake git pkg-config \
|
|
129
|
+
python3-dev python3-pip python3-venv \
|
|
130
|
+
libeigen3-dev libgsl-dev libnlopt-cxx-dev libcdd-dev libgmp-dev libhdf5-dev
|
|
131
|
+
```
|
|
132
|
+
|
|
133
|
+
For C++ tests and benchmarks, also install Catch2:
|
|
134
|
+
|
|
135
|
+
```sh
|
|
136
|
+
sudo apt-get install -y catch2
|
|
137
|
+
```
|
|
138
|
+
|
|
139
|
+
On macOS, install the Xcode command-line tools if needed, then install the
|
|
140
|
+
dependencies with [Homebrew](https://brew.sh):
|
|
141
|
+
|
|
142
|
+
```sh
|
|
143
|
+
xcode-select --install
|
|
144
|
+
brew install python cmake pkg-config eigen gsl nlopt cddlib gmp hdf5
|
|
145
|
+
```
|
|
146
|
+
|
|
147
|
+
For C++ tests and benchmarks, also install Catch2:
|
|
148
|
+
|
|
149
|
+
```sh
|
|
150
|
+
brew install catch2
|
|
151
|
+
```
|
|
152
|
+
|
|
153
|
+
#### Build and install the Python package
|
|
154
|
+
|
|
155
|
+
Clone the repository, then use your chosen Python environment:
|
|
156
|
+
|
|
157
|
+
```sh
|
|
158
|
+
git clone https://github.com/bobmyhill/burnman_cpp.git
|
|
159
|
+
cd burnman_cpp
|
|
160
|
+
python -m pip install --upgrade pip
|
|
161
|
+
```
|
|
162
|
+
|
|
163
|
+
Build and install from source:
|
|
164
|
+
|
|
165
|
+
```sh
|
|
166
|
+
CMAKE_BUILD_PARALLEL_LEVEL=2 python -m pip install .
|
|
167
|
+
python -c "import burnman_cpp"
|
|
168
|
+
```
|
|
169
|
+
|
|
170
|
+
Pip installs the Python dependencies and builds the C++ extension. The native
|
|
171
|
+
dependencies listed above must already be installed. Re-run the installation
|
|
172
|
+
after changing the C++ or Python sources. Adjust `CMAKE_BUILD_PARALLEL_LEVEL`
|
|
173
|
+
to suit the memory available on your machine.
|
|
174
|
+
|
|
175
|
+
### C++ library
|
|
176
|
+
|
|
177
|
+
Run build and test commands from the repository root. To build the static
|
|
178
|
+
library without Python bindings:
|
|
179
|
+
|
|
180
|
+
```sh
|
|
181
|
+
cmake -S . -B build/native \
|
|
182
|
+
-DCMAKE_BUILD_TYPE=Release \
|
|
183
|
+
-DBURNMAN_BUILD_PYTHON=OFF
|
|
184
|
+
cmake --build build/native --parallel 2
|
|
185
|
+
```
|
|
186
|
+
|
|
187
|
+
The library is written to `build/native/libburnman_core.a`. For dependencies in
|
|
188
|
+
a nonstandard location, add `-DCMAKE_PREFIX_PATH=/path/to/prefix` when configuring.
|
|
189
|
+
|
|
190
|
+
Alternatively, the Makefile builds `bin/libburnman.a`:
|
|
191
|
+
|
|
192
|
+
```sh
|
|
193
|
+
make -j<N>
|
|
194
|
+
```
|
|
195
|
+
|
|
196
|
+
Replace `<N>` with the number of parallel build jobs, for example `make -j4`.
|
|
197
|
+
|
|
198
|
+
## Tests
|
|
199
|
+
|
|
200
|
+
### Python tests
|
|
201
|
+
|
|
202
|
+
Install the test and plotting dependencies and run the suite:
|
|
203
|
+
|
|
204
|
+
```sh
|
|
205
|
+
CMAKE_BUILD_PARALLEL_LEVEL=2 python -m pip install '.[test,examples]'
|
|
206
|
+
MPLBACKEND=Agg python -m pytest -q -ra python/tests
|
|
207
|
+
```
|
|
208
|
+
|
|
209
|
+
The plotting dependencies are needed by the tests; `MPLBACKEND=Agg` lets them
|
|
210
|
+
run without a display. Comparisons with Python BurnMan are skipped when that
|
|
211
|
+
optional reference package is absent.
|
|
212
|
+
|
|
213
|
+
### C++ tests
|
|
214
|
+
|
|
215
|
+
```sh
|
|
216
|
+
cmake -S . -B build/native \
|
|
217
|
+
-DCMAKE_BUILD_TYPE=Release \
|
|
218
|
+
-DBURNMAN_BUILD_PYTHON=OFF \
|
|
219
|
+
-DBURNMAN_BUILD_TESTS=ON \
|
|
220
|
+
-DBURNMAN_WARNINGS_AS_ERRORS=ON
|
|
221
|
+
cmake --build build/native --parallel 2
|
|
222
|
+
ctest --test-dir build/native --output-on-failure
|
|
223
|
+
```
|
|
224
|
+
|
|
225
|
+
With Make, build and run the tests separately:
|
|
226
|
+
|
|
227
|
+
```sh
|
|
228
|
+
make -j<N> test WARNINGS_AS_ERRORS=1
|
|
229
|
+
./bin/run_tests
|
|
230
|
+
```
|
|
231
|
+
|
|
232
|
+
Make also accepts an optional `BUILD_MODE` argument. Available modes:
|
|
233
|
+
|
|
234
|
+
- `BUILD_MODE=release` (default): enables compiler optimisation for faster
|
|
235
|
+
execution (`-O3 -DNDEBUG`).
|
|
236
|
+
- `BUILD_MODE=debug`: keeps source-line and variable information for a debugger
|
|
237
|
+
and uses less optimisation, making it easier to follow the program's execution.
|
|
238
|
+
- `BUILD_MODE=test`: adds runtime checks for memory errors, such as reading
|
|
239
|
+
outside an array, and undefined C++ behaviour. These checks help
|
|
240
|
+
identify bugs but make the program slower.
|
|
241
|
+
|
|
242
|
+
Debug and test builds use separate outputs, such as `bin/run_tests_debug` and
|
|
243
|
+
`bin/run_tests_test`. Use `CXX`, `EXTRA_INCLUDE` and `EXTRA_LIB` to override the
|
|
244
|
+
compiler and dependency paths. If HDF5 is outside pkg-config's search path, set
|
|
245
|
+
`PKG_CONFIG_PATH` to the directory containing `hdf5.pc`, or pass `HDF5_CFLAGS`
|
|
246
|
+
and `HDF5_LIBS` explicitly to Make.
|
|
247
|
+
|
|
248
|
+
### Optional Python BurnMan reference comparisons
|
|
249
|
+
|
|
250
|
+
The reference version is recorded in [tests/reference/burnman.json](tests/reference/burnman.json).
|
|
251
|
+
The tests require that exact commit in a clean Git checkout. To enable the
|
|
252
|
+
comparisons used by GitHub CI:
|
|
253
|
+
|
|
254
|
+
```sh
|
|
255
|
+
git clone https://github.com/geodynamics/burnman.git build/python-burnman-reference
|
|
256
|
+
git -C build/python-burnman-reference checkout b7c54ccf7bfd8583158c6dffe210c004b9570f4d
|
|
257
|
+
python -m pip install -e 'build/python-burnman-reference[dev]'
|
|
258
|
+
export PYTHONPATH="$PWD/build/python-burnman-reference"
|
|
259
|
+
export PYTHONDONTWRITEBYTECODE=1
|
|
260
|
+
MPLBACKEND=Agg python -m pytest -q -ra python/tests
|
|
261
|
+
```
|
|
262
|
+
|
|
263
|
+
## Formatting
|
|
264
|
+
|
|
265
|
+
Install the same formatter versions used by GitHub CI:
|
|
266
|
+
|
|
267
|
+
- **clang-format**: formats C++ sources and headers.
|
|
268
|
+
- **Black**: formats Python sources.
|
|
269
|
+
|
|
270
|
+
```sh
|
|
271
|
+
python -m pip install -r contrib/utilities/requirements-format.txt
|
|
272
|
+
```
|
|
273
|
+
|
|
274
|
+
Check formatting without changing files:
|
|
275
|
+
|
|
276
|
+
```sh
|
|
277
|
+
./contrib/utilities/indent.sh --check --tracked
|
|
278
|
+
```
|
|
279
|
+
|
|
280
|
+
Run `./contrib/utilities/indent.sh` to format C++, headers and Python files,
|
|
281
|
+
including untracked sources outside ignored directories. Use `--tracked` to
|
|
282
|
+
restrict formatting to tracked files. The script can be called from any working
|
|
283
|
+
directory.
|
|
284
|
+
|
|
285
|
+
## Benchmarks
|
|
286
|
+
|
|
287
|
+
Build, run and report performance benchmarks using the instructions in
|
|
288
|
+
[benchmarks/README.md](benchmarks/README.md).
|
|
289
|
+
|
|
290
|
+
The Python reporting tools use NumPy and Matplotlib, plus:
|
|
291
|
+
|
|
292
|
+
- **pandas 1.5 or newer**: processes timing tables and CSV reports.
|
|
293
|
+
|
|
294
|
+
Install the reporting dependencies with
|
|
295
|
+
`python -m pip install -r benchmarks/requirements.txt`.
|
|
296
|
+
|
|
297
|
+
## License
|
|
298
|
+
|
|
299
|
+
burnman_cpp is licensed under [GPL-3.0-or-later](LICENSE).
|
|
@@ -3,6 +3,9 @@ Performance benchmarks
|
|
|
3
3
|
|
|
4
4
|
Scientific reference comparisons are kept alongside the timing benchmarks:
|
|
5
5
|
|
|
6
|
+
- [Pitzer & Sterner (1995), Figure 1](pitzer_sterner_1995/README.md):
|
|
7
|
+
native H₂O/CO₂ compression factors at 1600 K, with an overlay on the
|
|
8
|
+
published figure and comparisons with the digitized model curves.
|
|
6
9
|
- [de Koker, Karki & Stixrude (2013), nine liquid compositions](dekoker_2013/README.md):
|
|
7
10
|
direct native EOS comparisons with supplement Figures S2–S10 and Table 1.
|
|
8
11
|
- [Stixrude & Lithgow-Bertelloni (2024), Figure 13](stixrude_2024_figure13/README.md):
|
|
@@ -81,5 +84,5 @@ Both commands use `build/benchmarks/` by default. The Python timer accepts
|
|
|
81
84
|
The GitHub `Benchmarks` workflow runs on pushes, pull requests and manual
|
|
82
85
|
dispatch. It builds and executes the native benchmarks with warnings treated
|
|
83
86
|
as errors, processes their XML, and runs the Python timings against BurnMan
|
|
84
|
-
commit `
|
|
87
|
+
commit `b7c54ccf7bfd8583158c6dffe210c004b9570f4d`. The XML, CTest log and CSV files
|
|
85
88
|
are available as workflow artifacts.
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
# Pitzer–Sterner H₂O and CO₂: Figure 1 (1995)
|
|
2
|
+
|
|
3
|
+
```sh
|
|
4
|
+
python benchmarks/pitzer_sterner_1995/benchmark.py
|
|
5
|
+
```
|
|
6
|
+
|
|
7
|
+
Compares the general native `pitzer-sterner` EOS with **Figure 1 at 1600 K**
|
|
8
|
+
in Pitzer & Sterner, *International Journal of Thermophysics* **16**, 511–518
|
|
9
|
+
(1995). Both fluids use the printed **Table I coefficients**, without fitting.
|
|
10
|
+
The graph plots `Z = P/(rho R T)` against `rho/rho_c`.
|
|
11
|
+
|
|
12
|
+
The script saves `results/comparison.pdf` and `.png`: native curves over the
|
|
13
|
+
published scan and differences at 17 digitized model-curve positions. CSV files
|
|
14
|
+
contain the sampled isotherms and comparisons; `summary.json` records RMS and
|
|
15
|
+
maximum differences.
|
|
16
|
+
Volume inversion is checked at every digitized position.
|
|
17
|
+
|
|
18
|
+
| Comparison | H₂O | CO₂ |
|
|
19
|
+
| --- | ---: | ---: |
|
|
20
|
+
| RMS difference in Z from printed fitted curve | 0.063 | 0.088 |
|
|
21
|
+
| RMS relative difference from printed fitted curve | 0.66% | 0.59% |
|
|
22
|
+
|
|
23
|
+
The native curves follow the printed curves within the scale of the scan.
|
|
24
|
+
Error bars show reading bounds from ±2 pixels in both coordinates,
|
|
25
|
+
propagated through the native local slope. These comparisons check reproduction
|
|
26
|
+
of the published model curves at the resolution of the scan.
|
|
27
|
+
|
|
28
|
+
`reference/figure1.json` preserves Table I, the axis registration, digitized
|
|
29
|
+
pixel coordinates, source PDF hash and extraction settings. Registration and
|
|
30
|
+
digitization used the scan alone. Critical densities are not tabulated in
|
|
31
|
+
this paper: the plot uses [322 kg/m³ for H₂O](https://iapws.org/relguide/IAPWS95-2018.pdf)
|
|
32
|
+
and [10.6249 mol/L for CO₂](https://nvlpubs.nist.gov/nistpubs/ir/2026/NIST.IR.8608.pdf),
|
|
33
|
+
without adjusting either to the curves. Molar masses and resulting molar
|
|
34
|
+
critical densities are recorded in the JSON.
|
|
35
|
+
|
|
36
|
+
NumPy, Matplotlib and the built `burnman_cpp` package are required. Python
|
|
37
|
+
BurnMan and the original PDF are not needed to run the benchmark. To recreate
|
|
38
|
+
the source crop with Poppler from the supplied PDF:
|
|
39
|
+
|
|
40
|
+
```sh
|
|
41
|
+
pdftoppm -f 4 -l 4 -r 400 -x 610 -y 370 -W 1170 -H 1110 \
|
|
42
|
+
-png -singlefile ~/Pitzer_Sterner_1995_H2O_CO2_eos.pdf \
|
|
43
|
+
benchmarks/pitzer_sterner_1995/reference/figure1
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
Figure 1 tests the pressure–density model. It does not constrain absolute
|
|
47
|
+
entropy, enthalpy or the ideal-gas heat capacity. The benchmark therefore
|
|
48
|
+
supplies a declared arbitrary ideal-gas caloric reference, which does not
|
|
49
|
+
affect P, Z, K_T or V(P,T). The general EOS uses BurnMan's shared gas constant;
|
|
50
|
+
R cancels in Z when the same value is used in its numerator and denominator.
|