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.
Files changed (668) hide show
  1. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/.github/workflows/benchmarks.yml +1 -1
  2. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/.github/workflows/tests.yml +1 -1
  3. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/CMakeLists.txt +5 -2
  4. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/Makefile +3 -3
  5. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/PKG-INFO +120 -18
  6. burnman_cpp-0.11.1/README.md +299 -0
  7. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/benchmarks/README.md +4 -1
  8. burnman_cpp-0.11.1/benchmarks/pitzer_sterner_1995/README.md +50 -0
  9. burnman_cpp-0.11.1/benchmarks/pitzer_sterner_1995/benchmark.py +178 -0
  10. burnman_cpp-0.11.1/benchmarks/pitzer_sterner_1995/reference/figure1.json +294 -0
  11. burnman_cpp-0.11.1/benchmarks/pitzer_sterner_1995/reference/figure1.png +0 -0
  12. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/benchmarks/stixrude_2024.py +28 -28
  13. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/benchmarks/stixrude_2024_figure13/benchmark.py +6 -6
  14. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/benchmarks/stixrude_2024_figure14/benchmark.py +1 -1
  15. burnman_cpp-0.11.1/examples/data/input_fitting/Hazen_1976_TV_periclase.dat +17 -0
  16. burnman_cpp-0.11.1/examples/data/input_fitting/PVT_MgO_Dewaele_et_al_2000.dat +66 -0
  17. burnman_cpp-0.11.1/examples/data/input_fitting/SOURCES.md +24 -0
  18. burnman_cpp-0.11.1/examples/data/input_fitting/Victor_Douglas_1963_deltaH_MgO.dat +25 -0
  19. burnman_cpp-0.11.1/examples/example_assemblage_relaxation.py +237 -0
  20. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/examples/example_build_planet.py +2 -2
  21. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/examples/example_equilibrate.py +25 -17
  22. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/examples/example_equilibrated_composite.py +3 -3
  23. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/examples/example_fit_composition.py +1 -1
  24. burnman_cpp-0.11.1/examples/example_fit_eos.py +343 -0
  25. burnman_cpp-0.11.1/examples/example_fit_eos_with_independent_volumes.py +248 -0
  26. burnman_cpp-0.11.1/examples/example_fit_solution.py +289 -0
  27. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/examples/example_forsterite_thermodynamic_sections.py +5 -5
  28. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/examples/example_geotherm.py +4 -4
  29. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/examples/example_hugoniot.py +6 -6
  30. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/examples/example_iron_hematite_tx.py +6 -6
  31. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/examples/example_layer.py +1 -1
  32. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/examples/example_metasediment_contours.py +1 -1
  33. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/examples/example_modular_mgd.py +1 -1
  34. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/examples/example_modular_mgd_with_anharmonicity.py +1 -1
  35. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/examples/example_olivine_px.py +5 -5
  36. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/examples/example_olivine_tx.py +1 -1
  37. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/examples/example_optimal_thermobarometry.py +9 -9
  38. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/examples/example_phase_diagram_grid.py +6 -6
  39. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/examples/example_pyrolite_modebox.py +3 -3
  40. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/examples/example_pyrolite_phase_diagram.py +29 -29
  41. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/examples/example_pyrolite_sp_phase_diagram.py +1 -1
  42. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/examples/example_single_point_equilibrium.py +4 -4
  43. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/include/burnman/core/material.hpp +8 -1
  44. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/include/burnman/core/mineral.hpp +8 -0
  45. burnman_cpp-0.11.1/include/burnman/core/relaxed_composite.hpp +49 -0
  46. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/include/burnman/core/solution.hpp +5 -0
  47. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/include/burnman/core/solution_models/asymmetric_regular_solution.hpp +5 -0
  48. burnman_cpp-0.11.1/include/burnman/eos/aa.hpp +56 -0
  49. burnman_cpp-0.11.1/include/burnman/eos/brosh_calphad.hpp +56 -0
  50. burnman_cpp-0.11.1/include/burnman/eos/components/anharmonic_debye.hpp +33 -0
  51. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/include/burnman/eos/components/debye.hpp +8 -0
  52. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/include/burnman/eos/components/einstein.hpp +8 -0
  53. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/include/burnman/eos/dks_solid.hpp +1 -1
  54. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/include/burnman/eos/hp.hpp +1 -1
  55. burnman_cpp-0.11.1/include/burnman/eos/hp98.hpp +43 -0
  56. burnman_cpp-0.11.1/include/burnman/eos/macaw.hpp +59 -0
  57. burnman_cpp-0.11.1/include/burnman/eos/morse_potential.hpp +66 -0
  58. burnman_cpp-0.11.1/include/burnman/eos/murnaghan.hpp +87 -0
  59. burnman_cpp-0.11.1/include/burnman/eos/pitzer_sterner.hpp +76 -0
  60. burnman_cpp-0.11.1/include/burnman/eos/reciprocal_kprime.hpp +58 -0
  61. burnman_cpp-0.11.1/include/burnman/minerals/SE_2015.hpp +13 -0
  62. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/include/burnman/minerals/datasets.hpp +100 -22
  63. burnman_cpp-0.11.1/include/burnman/minerals/other.hpp +10 -0
  64. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/include/burnman/minerals/phase_aliases.hpp +2 -2
  65. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/include/burnman/minerals/water.hpp +5 -0
  66. burnman_cpp-0.11.1/include/burnman/optim/eos_fitting.hpp +185 -0
  67. burnman_cpp-0.11.1/include/burnman/optim/nonlinear_fitting.hpp +130 -0
  68. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/include/burnman/tools/thermobarometry.hpp +5 -4
  69. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/include/burnman/utils/constants.hpp +28 -0
  70. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/include/burnman/utils/types/mineral_params.hpp +25 -1
  71. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/include/burnman/utils/types/simple_types.hpp +9 -1
  72. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/pyproject.toml +6 -2
  73. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/python/bindings/bindings.hpp +3 -0
  74. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/python/bindings/eos.cpp +11 -0
  75. burnman_cpp-0.11.1/python/bindings/eos_fitting.cpp +435 -0
  76. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/python/bindings/materials.cpp +63 -0
  77. burnman_cpp-0.11.1/python/bindings/minerals.cpp +1970 -0
  78. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/python/bindings/module.cpp +2 -0
  79. burnman_cpp-0.11.1/python/bindings/nonlinear_fitting.cpp +291 -0
  80. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/python/bindings/params.cpp +31 -1
  81. burnman_cpp-0.11.1/python/bindings/thermal_components.cpp +155 -0
  82. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/python/bindings/thermobarometry.cpp +7 -7
  83. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/python/burnman_cpp/__init__.py +59 -0
  84. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/python/burnman_cpp/adapters.py +31 -15
  85. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/python/burnman_cpp/classes/equilibratedcomposite.py +1 -1
  86. burnman_cpp-0.11.1/python/burnman_cpp/classes/relaxedcomposite.py +119 -0
  87. burnman_cpp-0.11.1/python/burnman_cpp/eos/__init__.py +29 -0
  88. burnman_cpp-0.11.1/python/burnman_cpp/eos/anharmonic_debye.py +58 -0
  89. burnman_cpp-0.11.1/python/burnman_cpp/eos/bukowinski_electronic.py +14 -0
  90. burnman_cpp-0.11.1/python/burnman_cpp/eos/debye.py +33 -0
  91. burnman_cpp-0.11.1/python/burnman_cpp/eos/einstein.py +29 -0
  92. burnman_cpp-0.11.1/python/burnman_cpp/minerals/Pitzer_Sterner_1994.py +12 -0
  93. burnman_cpp-0.11.1/python/burnman_cpp/minerals/SE_2015.py +25 -0
  94. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/python/burnman_cpp/minerals/__init__.py +55 -30
  95. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/python/burnman_cpp/optimize/__init__.py +2 -2
  96. burnman_cpp-0.11.1/python/burnman_cpp/optimize/_fitting_plots.py +272 -0
  97. burnman_cpp-0.11.1/python/burnman_cpp/optimize/eos_fitting.py +42 -0
  98. burnman_cpp-0.11.1/python/burnman_cpp/optimize/nonlinear_fitting.py +92 -0
  99. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/python/burnman_cpp/tools/phase_diagram_workflow.py +1 -1
  100. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/python/tests/conftest.py +0 -10
  101. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/python/tests/data/basalt_nearby_bivariant_junctions.json +1 -1
  102. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/python/tests/data/metasediment_contour_field.json +2 -2
  103. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/python/tests/data/metasediment_curve_edit.json +1 -1
  104. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/python/tests/data/metasediment_curved_mica_field.json +1 -1
  105. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/python/tests/data/metasediment_endpoints.json +1 -1
  106. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/python/tests/data/metasediment_ordering_segment.json +1 -1
  107. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/python/tests/data/metasediment_thin_finite_field.json +1 -1
  108. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/python/tests/data/metasediment_univariant_segments.json +1 -1
  109. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/python/tests/data/pyrolite_crossed_loops.json +1 -1
  110. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/python/tests/data/pyrolite_duplicate_invariant.json +1 -1
  111. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/python/tests/data/pyrolite_duplicate_junctions.json +4 -4
  112. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/python/tests/data/pyrolite_limiting_neighbours.json +1 -1
  113. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/python/tests/data/pyrolite_narrow_solution_replacement.json +1 -1
  114. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/python/tests/data/pyrolite_nearby_univariant_junctions.json +1 -1
  115. burnman_cpp-0.11.1/python/tests/data/pyrolite_pt_coincident_phase_outs.json +1 -0
  116. burnman_cpp-0.11.1/python/tests/data/pyrolite_pt_cold_model_limits.json +1 -0
  117. burnman_cpp-0.11.1/python/tests/data/pyrolite_pt_cold_reaction_duplicates.json +1 -0
  118. burnman_cpp-0.11.1/python/tests/data/pyrolite_pt_equivalent_reaction_curves.json +1 -0
  119. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/python/tests/data/pyrolite_reaction_extents.json +1 -1
  120. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/python/tests/data/pyrolite_sp_cf_copy_junctions.json +1 -1
  121. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/python/tests/data/pyrolite_sp_failed_bracket.json +1 -1
  122. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/python/tests/data/pyrolite_sp_false_cpx_junction.json +1 -1
  123. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/python/tests/data/pyrolite_sp_false_junction.json +1 -1
  124. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/python/tests/data/pyrolite_sp_junction.json +1 -1
  125. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/python/tests/data/pyrolite_sp_missing_ak_boundary.json +1 -1
  126. burnman_cpp-0.11.1/python/tests/data/pyrolite_sp_reaction_classification.json +1 -0
  127. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/python/tests/data/pyrolite_sp_trace_site_junctions.json +1 -1
  128. burnman_cpp-0.11.1/python/tests/data/pyrolite_sp_trace_site_response.json +1 -0
  129. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/python/tests/data/pyrolite_sp_unconnected_junctions.json +1 -1
  130. burnman_cpp-0.11.1/python/tests/data/pyrolite_zoom_reaction_limits.json +1 -0
  131. burnman_cpp-0.11.1/python/tests/test_aa.py +157 -0
  132. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/python/tests/test_adapters.py +19 -12
  133. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/python/tests/test_aspect_table.py +4 -4
  134. burnman_cpp-0.11.1/python/tests/test_brosh_calphad.py +131 -0
  135. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/python/tests/test_chemistry.py +19 -15
  136. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/python/tests/test_complete_datasets.py +54 -21
  137. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/python/tests/test_composition_fitting.py +1 -1
  138. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/python/tests/test_composition_phase_diagram.py +4 -4
  139. burnman_cpp-0.11.1/python/tests/test_confidence_prediction_bands.py +254 -0
  140. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/python/tests/test_covariance.py +11 -2
  141. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/python/tests/test_dks.py +2 -1
  142. burnman_cpp-0.11.1/python/tests/test_eos_fitting.py +442 -0
  143. burnman_cpp-0.11.1/python/tests/test_eos_fitting_volumes.py +215 -0
  144. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/python/tests/test_equilibrated_composite.py +10 -10
  145. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/python/tests/test_equilibrium_path.py +4 -4
  146. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/python/tests/test_figure13_benchmark.py +5 -5
  147. burnman_cpp-0.11.1/python/tests/test_fitting_diagnostics.py +243 -0
  148. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/python/tests/test_geotherm.py +2 -2
  149. burnman_cpp-0.11.1/python/tests/test_hp98.py +113 -0
  150. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/python/tests/test_layer_planet.py +4 -4
  151. burnman_cpp-0.11.1/python/tests/test_macaw.py +102 -0
  152. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/python/tests/test_melt.py +2 -2
  153. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/python/tests/test_mineral_catalogue_reference.py +7 -7
  154. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/python/tests/test_model_sets.py +13 -11
  155. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/python/tests/test_modular_mgd.py +10 -5
  156. burnman_cpp-0.11.1/python/tests/test_morse_potential.py +100 -0
  157. burnman_cpp-0.11.1/python/tests/test_murnaghan.py +116 -0
  158. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/python/tests/test_native_failure_reference.py +1 -1
  159. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/python/tests/test_native_minerals.py +27 -27
  160. burnman_cpp-0.11.1/python/tests/test_nonlinear_fitting.py +397 -0
  161. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/python/tests/test_phase_diagram.py +5 -5
  162. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/python/tests/test_phase_diagram_perimeter_labels.py +4 -4
  163. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/python/tests/test_phase_diagram_plot.py +4 -4
  164. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/python/tests/test_phase_diagram_workflow.py +10 -10
  165. burnman_cpp-0.11.1/python/tests/test_pitzer_sterner.py +128 -0
  166. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/python/tests/test_polytope.py +17 -13
  167. burnman_cpp-0.11.1/python/tests/test_reciprocal_kprime.py +108 -0
  168. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/python/tests/test_reference_tools.py +48 -0
  169. burnman_cpp-0.11.1/python/tests/test_relaxed_composite.py +224 -0
  170. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/python/tests/test_slb2024.py +14 -6
  171. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/python/tests/test_slb_datasets.py +33 -1
  172. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/python/tests/test_slb_reference.py +13 -13
  173. burnman_cpp-0.11.1/python/tests/test_solution_fitting.py +215 -0
  174. burnman_cpp-0.11.1/python/tests/test_thermal_components.py +248 -0
  175. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/python/tests/test_thermobarometry.py +36 -18
  176. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/python/tests/test_thermodynamic_phase_diagram.py +11 -1
  177. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/src/core/material.cpp +6 -0
  178. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/src/core/mineral.cpp +83 -0
  179. burnman_cpp-0.11.1/src/core/relaxed_composite.cpp +196 -0
  180. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/src/data/covariance.cpp +12 -12
  181. burnman_cpp-0.11.1/src/eos/aa.cpp +337 -0
  182. burnman_cpp-0.11.1/src/eos/brosh_calphad.cpp +411 -0
  183. burnman_cpp-0.11.1/src/eos/components/anharmonic_debye.cpp +82 -0
  184. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/src/eos/components/debye.cpp +29 -11
  185. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/src/eos/components/einstein.cpp +41 -20
  186. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/src/eos/dks_solid.cpp +6 -6
  187. burnman_cpp-0.11.1/src/eos/hp98.cpp +161 -0
  188. burnman_cpp-0.11.1/src/eos/macaw.cpp +207 -0
  189. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/src/eos/make_eos.cpp +24 -0
  190. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/src/eos/mie_grueneisen_debye.cpp +13 -12
  191. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/src/eos/modular_mie_grueneisen_debye.cpp +14 -30
  192. burnman_cpp-0.11.1/src/eos/morse_potential.cpp +167 -0
  193. burnman_cpp-0.11.1/src/eos/murnaghan.cpp +195 -0
  194. burnman_cpp-0.11.1/src/eos/pitzer_sterner.cpp +319 -0
  195. burnman_cpp-0.11.1/src/eos/reciprocal_kprime.cpp +254 -0
  196. burnman_cpp-0.11.1/src/minerals/SE_2015.cpp +132 -0
  197. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/src/minerals/datasets.cpp +1089 -25
  198. burnman_cpp-0.11.1/src/minerals/model_sets.cpp +147 -0
  199. burnman_cpp-0.11.1/src/minerals/other.cpp +39 -0
  200. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/src/minerals/phase_aliases.cpp +2 -2
  201. burnman_cpp-0.11.1/src/minerals/water.cpp +136 -0
  202. burnman_cpp-0.11.1/src/optim/eos_fitting.cpp +653 -0
  203. burnman_cpp-0.11.1/src/optim/nonlinear_fitting.cpp +490 -0
  204. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/src/tools/thermobarometry.cpp +131 -45
  205. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/tests/core/test_mineral.cpp +1 -1
  206. burnman_cpp-0.11.1/tests/core/test_mineral_volume_state.cpp +82 -0
  207. burnman_cpp-0.11.1/tests/core/test_relaxed_composite.cpp +115 -0
  208. burnman_cpp-0.11.1/tests/eos/test_aa.cpp +155 -0
  209. burnman_cpp-0.11.1/tests/eos/test_brosh_calphad.cpp +215 -0
  210. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/tests/eos/test_dks.cpp +1 -1
  211. burnman_cpp-0.11.1/tests/eos/test_hp98.cpp +242 -0
  212. burnman_cpp-0.11.1/tests/eos/test_macaw.cpp +213 -0
  213. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/tests/eos/test_modular_mie_grueneisen_debye.cpp +1 -0
  214. burnman_cpp-0.11.1/tests/eos/test_morse_potential.cpp +183 -0
  215. burnman_cpp-0.11.1/tests/eos/test_murnaghan.cpp +195 -0
  216. burnman_cpp-0.11.1/tests/eos/test_pitzer_sterner.cpp +143 -0
  217. burnman_cpp-0.11.1/tests/eos/test_reciprocal_kprime.cpp +213 -0
  218. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/tests/eos/test_slb.cpp +3 -3
  219. burnman_cpp-0.11.1/tests/eos/test_thermal_components.cpp +196 -0
  220. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/tests/include/ps1994_reference.hpp +1 -1
  221. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/tests/minerals/test_covariance.cpp +2 -1
  222. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/tests/minerals/test_native_datasets.cpp +14 -13
  223. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/tests/minerals/test_thermocalc_reference.cpp +4 -4
  224. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/tests/minerals/test_water.cpp +8 -10
  225. burnman_cpp-0.11.1/tests/optim/test_eos_fitting.cpp +145 -0
  226. burnman_cpp-0.11.1/tests/optim/test_nonlinear_fitting.cpp +187 -0
  227. burnman_cpp-0.11.1/tests/reference/aa1994.json +125 -0
  228. burnman_cpp-0.11.1/tests/reference/brosh_calphad.json +345 -0
  229. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/tests/reference/burnman.json +1 -1
  230. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/tests/tools/test_chemistry.cpp +6 -6
  231. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/tests/tools/test_phase_diagram.cpp +47 -42
  232. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/tests/tools/test_phase_diagram_consistency.cpp +1 -1
  233. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/tests/tools/test_polytope.cpp +1 -1
  234. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/tests/tools/test_thermobarometry.cpp +9 -7
  235. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/tools/export_covariance_data.py +22 -4
  236. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/tools/export_example_minerals.py +87 -31
  237. burnman_cpp-0.8.0/README.md +0 -197
  238. burnman_cpp-0.8.0/examples/data/input_fitting/SOURCES.md +0 -11
  239. burnman_cpp-0.8.0/python/bindings/minerals.cpp +0 -1880
  240. burnman_cpp-0.8.0/python/tests/data/pyrolite_pt_coincident_phase_outs.json +0 -1
  241. burnman_cpp-0.8.0/python/tests/data/pyrolite_pt_cold_model_limits.json +0 -1
  242. burnman_cpp-0.8.0/python/tests/data/pyrolite_pt_cold_reaction_duplicates.json +0 -1
  243. burnman_cpp-0.8.0/python/tests/data/pyrolite_pt_equivalent_reaction_curves.json +0 -1
  244. burnman_cpp-0.8.0/python/tests/data/pyrolite_sp_reaction_classification.json +0 -1
  245. burnman_cpp-0.8.0/python/tests/data/pyrolite_sp_trace_site_response.json +0 -1
  246. burnman_cpp-0.8.0/python/tests/data/pyrolite_zoom_reaction_limits.json +0 -1
  247. burnman_cpp-0.8.0/python/tests/dks_fortran_reference.py +0 -77
  248. burnman_cpp-0.8.0/src/minerals/model_sets.cpp +0 -145
  249. burnman_cpp-0.8.0/src/minerals/water.cpp +0 -217
  250. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/.clang-format +0 -0
  251. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/.github/workflows/format.yml +0 -0
  252. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/.github/workflows/wheels.yml +0 -0
  253. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/.gitignore +0 -0
  254. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/LICENSE +0 -0
  255. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/benchmarks/core/benchmark_assemblage.cpp +0 -0
  256. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/benchmarks/core/benchmark_mineral.cpp +0 -0
  257. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/benchmarks/cpp_python_speedup.py +0 -0
  258. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/benchmarks/dekoker_2013/README.md +0 -0
  259. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/benchmarks/dekoker_2013/benchmark.py +0 -0
  260. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/benchmarks/dekoker_2013/extract_reference.py +0 -0
  261. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/benchmarks/dekoker_2013/reference/Mg2SiO4.png +0 -0
  262. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/benchmarks/dekoker_2013/reference/Mg3Si2O7.png +0 -0
  263. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/benchmarks/dekoker_2013/reference/Mg5SiO7.png +0 -0
  264. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/benchmarks/dekoker_2013/reference/MgO.png +0 -0
  265. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/benchmarks/dekoker_2013/reference/MgSi2O5.png +0 -0
  266. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/benchmarks/dekoker_2013/reference/MgSi3O7.png +0 -0
  267. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/benchmarks/dekoker_2013/reference/MgSi5O11.png +0 -0
  268. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/benchmarks/dekoker_2013/reference/MgSiO3.png +0 -0
  269. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/benchmarks/dekoker_2013/reference/SiO2.png +0 -0
  270. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/benchmarks/dekoker_2013/reference/endmembers.json +0 -0
  271. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/benchmarks/eos/benchmark_property_modifiers.cpp +0 -0
  272. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/benchmarks/parse_benchmarks.py +0 -0
  273. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/benchmarks/python_benchmarks.py +0 -0
  274. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/benchmarks/requirements.txt +0 -0
  275. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/benchmarks/stixrude_2024_figure13/README.md +0 -0
  276. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/benchmarks/stixrude_2024_figure13/overlay.py +0 -0
  277. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/benchmarks/stixrude_2024_figure13/reference/axis_registration.json +0 -0
  278. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/benchmarks/stixrude_2024_figure13/reference/figure13.svg +0 -0
  279. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/benchmarks/stixrude_2024_figure14/README.md +0 -0
  280. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/benchmarks/stixrude_2024_figure14/geotherm.py +0 -0
  281. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/benchmarks/stixrude_2024_figure14/overlay.py +0 -0
  282. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/benchmarks/stixrude_2024_figure14/reference/axis_registration.json +0 -0
  283. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/benchmarks/stixrude_2024_figure14/reference/expansivity.jpg +0 -0
  284. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/benchmarks/stixrude_2024_figure14/reference/figure14.svg +0 -0
  285. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/cmake/EmbedCovariance.cmake +0 -0
  286. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/examples/data/input_fitting/Bertka_Fei_1997_mars_mantle.dat +0 -0
  287. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/examples/example_basalt_phase_diagram.py +0 -0
  288. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/examples/example_composition.py +0 -0
  289. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/examples/example_dekoker_2013.py +0 -0
  290. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/examples/example_green2025_at1.py +0 -0
  291. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/examples/example_green2025_klb1.py +0 -0
  292. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/examples/example_green2025_mix1g.py +0 -0
  293. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/examples/example_green2025_re46.py +0 -0
  294. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/examples/example_green2025_ton101s.py +0 -0
  295. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/examples/example_green2025_ton101u.py +0 -0
  296. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/examples/example_harzburgite_basalt_px.py +0 -0
  297. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/examples/example_metasediment_phase_diagram.py +0 -0
  298. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/examples/example_olivine_vx.py +0 -0
  299. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/examples/example_patch_phase_diagram.py +0 -0
  300. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/examples/example_plot_pyrolite_sp_relaxed_properties.py +0 -0
  301. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/examples/example_pyrolite_phase_diagram_zoom.py +0 -0
  302. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/examples/example_refine_phase_diagram.py +0 -0
  303. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/examples/example_seismic.py +0 -0
  304. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/examples/example_solution_equilibrium.py +0 -0
  305. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/examples/example_spock_gold.py +0 -0
  306. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/examples/green2025.py +0 -0
  307. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/examples/green2025_reference.md +0 -0
  308. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/include/burnman/core/assemblage.hpp +0 -0
  309. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/include/burnman/core/combined_mineral.hpp +0 -0
  310. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/include/burnman/core/composite_material.hpp +0 -0
  311. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/include/burnman/core/composition.hpp +0 -0
  312. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/include/burnman/core/equation_of_state.hpp +0 -0
  313. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/include/burnman/core/equilibrated_composite.hpp +0 -0
  314. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/include/burnman/core/geotherm.hpp +0 -0
  315. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/include/burnman/core/layer.hpp +0 -0
  316. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/include/burnman/core/planet.hpp +0 -0
  317. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/include/burnman/core/relaxed_solution.hpp +0 -0
  318. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/include/burnman/core/seismic.hpp +0 -0
  319. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/include/burnman/core/solution_model.hpp +0 -0
  320. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/include/burnman/core/solution_models/ideal_solution.hpp +0 -0
  321. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/include/burnman/core/solution_models/solution_model_base.hpp +0 -0
  322. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/include/burnman/core/solution_models/symmetric_regular_solution.hpp +0 -0
  323. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/include/burnman/eos/birch_murnaghan.hpp +0 -0
  324. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/include/burnman/eos/components/anharmonic_prefactor_models.hpp +0 -0
  325. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/include/burnman/eos/components/anharmonic_thermal_models.hpp +0 -0
  326. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/include/burnman/eos/components/bukowinski_electronic.hpp +0 -0
  327. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/include/burnman/eos/components/debye_temperature_models.hpp +0 -0
  328. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/include/burnman/eos/components/excess_params.hpp +0 -0
  329. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/include/burnman/eos/components/gsl_params.hpp +0 -0
  330. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/include/burnman/eos/components/property_modifiers.hpp +0 -0
  331. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/include/burnman/eos/cork.hpp +0 -0
  332. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/include/burnman/eos/dks_liquid.hpp +0 -0
  333. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/include/burnman/eos/hp_liquid.hpp +0 -0
  334. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/include/burnman/eos/make_eos.hpp +0 -0
  335. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/include/burnman/eos/mie_grueneisen_debye.hpp +0 -0
  336. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/include/burnman/eos/modified_tait.hpp +0 -0
  337. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/include/burnman/eos/modular_mie_grueneisen_debye.hpp +0 -0
  338. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/include/burnman/eos/slb.hpp +0 -0
  339. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/include/burnman/eos/spock.hpp +0 -0
  340. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/include/burnman/eos/vinet.hpp +0 -0
  341. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/include/burnman/minerals/covariance.hpp +0 -0
  342. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/include/burnman/minerals/model_sets.hpp +0 -0
  343. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/include/burnman/optim/composition_fitting.hpp +0 -0
  344. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/include/burnman/optim/linear_fitting.hpp +0 -0
  345. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/include/burnman/optim/roots/bracket.hpp +0 -0
  346. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/include/burnman/optim/roots/brent.hpp +0 -0
  347. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/include/burnman/optim/roots/damped_newton_solver.hpp +0 -0
  348. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/include/burnman/optim/roots/damped_newton_state.hpp +0 -0
  349. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/include/burnman/optim/roots/damped_newton_types.hpp +0 -0
  350. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/include/burnman/tools/averaging/averaging_base.hpp +0 -0
  351. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/include/burnman/tools/averaging/averaging_schemes.hpp +0 -0
  352. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/include/burnman/tools/averaging/averaging_utils.hpp +0 -0
  353. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/include/burnman/tools/averaging/hs.hpp +0 -0
  354. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/include/burnman/tools/averaging/hs_lower.hpp +0 -0
  355. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/include/burnman/tools/averaging/hs_upper.hpp +0 -0
  356. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/include/burnman/tools/averaging/reuss.hpp +0 -0
  357. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/include/burnman/tools/averaging/voigt.hpp +0 -0
  358. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/include/burnman/tools/averaging/vrh.hpp +0 -0
  359. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/include/burnman/tools/chemistry.hpp +0 -0
  360. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/include/burnman/tools/equilibration/equality_constraint_base.hpp +0 -0
  361. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/include/burnman/tools/equilibration/equality_constraint_helpers.hpp +0 -0
  362. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/include/burnman/tools/equilibration/equality_constraint_variants.hpp +0 -0
  363. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/include/burnman/tools/equilibration/equality_constraints.hpp +0 -0
  364. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/include/burnman/tools/equilibration/equilibrate.hpp +0 -0
  365. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/include/burnman/tools/equilibration/equilibrate_impl.hpp +0 -0
  366. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/include/burnman/tools/equilibration/equilibrate_lambda_bounds.hpp +0 -0
  367. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/include/burnman/tools/equilibration/equilibrate_objective.hpp +0 -0
  368. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/include/burnman/tools/equilibration/equilibrate_types.hpp +0 -0
  369. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/include/burnman/tools/equilibration/equilibrate_utils.hpp +0 -0
  370. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/include/burnman/tools/partitioning.hpp +0 -0
  371. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/include/burnman/tools/phase_diagram/boundary_repair.hpp +0 -0
  372. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/include/burnman/tools/phase_diagram/calculation.hpp +0 -0
  373. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/include/burnman/tools/phase_diagram/common.hpp +0 -0
  374. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/include/burnman/tools/phase_diagram/consistency.hpp +0 -0
  375. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/include/burnman/tools/phase_diagram/continuation.hpp +0 -0
  376. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/include/burnman/tools/phase_diagram/contours.hpp +0 -0
  377. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/include/burnman/tools/phase_diagram/critical.hpp +0 -0
  378. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/include/burnman/tools/phase_diagram/domain.hpp +0 -0
  379. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/include/burnman/tools/phase_diagram/polygons.hpp +0 -0
  380. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/include/burnman/tools/phase_diagram/properties.hpp +0 -0
  381. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/include/burnman/tools/phase_diagram/refinement.hpp +0 -0
  382. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/include/burnman/tools/phase_diagram/stability.hpp +0 -0
  383. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/include/burnman/tools/phase_diagram/tracing.hpp +0 -0
  384. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/include/burnman/tools/phase_diagram/types.hpp +0 -0
  385. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/include/burnman/tools/phase_diagram/verification.hpp +0 -0
  386. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/include/burnman/tools/phase_diagram.hpp +0 -0
  387. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/include/burnman/tools/polytope.hpp +0 -0
  388. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/include/burnman/tools/seismic.hpp +0 -0
  389. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/include/burnman/utils/chemistry_utils.hpp +0 -0
  390. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/include/burnman/utils/exceptions.hpp +0 -0
  391. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/include/burnman/utils/index_utils.hpp +0 -0
  392. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/include/burnman/utils/math_utils.hpp +0 -0
  393. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/include/burnman/utils/matrix_utils.hpp +0 -0
  394. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/include/burnman/utils/polygon_utils.hpp +0 -0
  395. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/include/burnman/utils/string_utils.hpp +0 -0
  396. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/include/burnman/utils/types/ndarray.hpp +0 -0
  397. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/include/burnman/utils/types/types.hpp +0 -0
  398. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/include/burnman/utils/utils.hpp +0 -0
  399. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/include/burnman/utils/validate_optionals.hpp +0 -0
  400. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/include/burnman/utils/vector_utils.hpp +0 -0
  401. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/include/burnman/utils/warnings.hpp +0 -0
  402. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/python/bindings/chemistry.cpp +0 -0
  403. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/python/bindings/combined.cpp +0 -0
  404. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/python/bindings/composition.cpp +0 -0
  405. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/python/bindings/composition_fitting.cpp +0 -0
  406. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/python/bindings/equilibrated_composite.cpp +0 -0
  407. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/python/bindings/equilibration.cpp +0 -0
  408. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/python/bindings/geotherm.cpp +0 -0
  409. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/python/bindings/layer.cpp +0 -0
  410. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/python/bindings/linear_fitting.cpp +0 -0
  411. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/python/bindings/model_sets.cpp +0 -0
  412. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/python/bindings/modifiers.cpp +0 -0
  413. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/python/bindings/phase_diagram.cpp +0 -0
  414. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/python/bindings/planet.cpp +0 -0
  415. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/python/bindings/polytope.cpp +0 -0
  416. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/python/bindings/radial.hpp +0 -0
  417. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/python/bindings/seismic.cpp +0 -0
  418. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/python/bindings/solutions.cpp +0 -0
  419. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/python/bindings/utils.cpp +0 -0
  420. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/python/burnman_cpp/anharmonic_prefactor_models.py +0 -0
  421. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/python/burnman_cpp/anharmonic_thermal_models.py +0 -0
  422. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/python/burnman_cpp/classes/__init__.py +0 -0
  423. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/python/burnman_cpp/classes/geotherm.py +0 -0
  424. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/python/burnman_cpp/classes/layer.py +0 -0
  425. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/python/burnman_cpp/classes/planet.py +0 -0
  426. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/python/burnman_cpp/classes/seismic.py +0 -0
  427. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/python/burnman_cpp/constants.py +0 -0
  428. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/python/burnman_cpp/debye_temperature_models.py +0 -0
  429. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/python/burnman_cpp/optimize/composition_fitting.py +0 -0
  430. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/python/burnman_cpp/optimize/linear_fitting.py +0 -0
  431. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/python/burnman_cpp/tools/__init__.py +0 -0
  432. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/python/burnman_cpp/tools/aspect.py +0 -0
  433. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/python/burnman_cpp/tools/chemistry.py +0 -0
  434. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/python/burnman_cpp/tools/contours.py +0 -0
  435. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/python/burnman_cpp/tools/equilibrium_path.py +0 -0
  436. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/python/burnman_cpp/tools/partitioning.py +0 -0
  437. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/python/burnman_cpp/tools/phase_diagram.py +0 -0
  438. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/python/burnman_cpp/tools/phase_diagram_helpers.py +0 -0
  439. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/python/burnman_cpp/tools/polytope.py +0 -0
  440. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/python/burnman_cpp/tools/potential_grid.py +0 -0
  441. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/python/burnman_cpp/tools/properties.py +0 -0
  442. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/python/burnman_cpp/tools/seismic.py +0 -0
  443. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/python/burnman_cpp/tools/thermobarometry.py +0 -0
  444. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/python/tests/data/basalt_field_verification.json +0 -0
  445. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/python/tests/data/basalt_local_amphibole.json +0 -0
  446. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/python/tests/data/basalt_local_plagioclase.json +0 -0
  447. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/python/tests/data/forsterite_latent_interval.json +0 -0
  448. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/python/tests/data/green_provisional_loops.json +0 -0
  449. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/python/tests/data/harzburgite_garnet_composition_boundary.json +0 -0
  450. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/python/tests/data/harzburgite_thin_composition_field.json +0 -0
  451. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/python/tests/data/metasediment_contour_ordering_field.json +0 -0
  452. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/python/tests/data/metasediment_curved_node_connections.json +0 -0
  453. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/python/tests/data/metasediment_missing_melt_connection.json +0 -0
  454. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/python/tests/data/metasediment_parallel_fields.json +0 -0
  455. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/python/tests/data/metasediment_univariant_loop.json +0 -0
  456. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/python/tests/data/phase_diagram_model_limit_fan.json +0 -0
  457. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/python/tests/data/pyrolite_cold_endpoints.json +0 -0
  458. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/python/tests/data/pyrolite_critical_endpoints.json +0 -0
  459. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/python/tests/data/pyrolite_duplicate_curve.json +0 -0
  460. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/python/tests/data/pyrolite_endpoints.json +0 -0
  461. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/python/tests/data/pyrolite_exchanged_junction_zeros.json +0 -0
  462. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/python/tests/data/pyrolite_frame_order.json +0 -0
  463. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/python/tests/data/pyrolite_local_opx.json +0 -0
  464. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/python/tests/data/pyrolite_missing_solution_branch.json +0 -0
  465. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/python/tests/data/pyrolite_model_limit.json +0 -0
  466. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/python/tests/data/pyrolite_narrow_curves.json +0 -0
  467. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/python/tests/data/pyrolite_nearby_junctions.json +0 -0
  468. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/python/tests/data/pyrolite_neighbouring_branches.json +0 -0
  469. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/python/tests/data/pyrolite_partial_duplicate.json +0 -0
  470. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/python/tests/data/pyrolite_perimeter_neighbours.json +0 -0
  471. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/python/tests/data/pyrolite_pt_cold_coexistence.json +0 -0
  472. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/python/tests/data/pyrolite_pt_detached_junctions.json +0 -0
  473. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/python/tests/data/pyrolite_pt_garnet_stability.json +0 -0
  474. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/python/tests/data/pyrolite_pt_model_limit_duplicates.json +0 -0
  475. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/python/tests/data/pyrolite_pt_repair_regressions.json +0 -0
  476. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/python/tests/data/pyrolite_refinement_segment.json +0 -0
  477. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/python/tests/data/pyrolite_retired_junction_geometry.json +0 -0
  478. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/python/tests/data/pyrolite_short_branch_labels.json +0 -0
  479. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/python/tests/data/pyrolite_solution_replacement.json +0 -0
  480. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/python/tests/data/pyrolite_solvus_seeds.json +0 -0
  481. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/python/tests/data/pyrolite_sp_ak_branch_switch.json +0 -0
  482. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/python/tests/data/pyrolite_sp_enthalpy_branch.json +0 -0
  483. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/python/tests/data/pyrolite_sp_soft_grid_point.json +0 -0
  484. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/python/tests/data/pyrolite_sp_wrong_branch_junction.json +0 -0
  485. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/python/tests/data/pyrolite_stable_vertex_loop.json +0 -0
  486. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/python/tests/test_bindings.py +0 -0
  487. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/python/tests/test_composition.py +0 -0
  488. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/python/tests/test_composition_reference.py +0 -0
  489. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/python/tests/test_constants.py +0 -0
  490. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/python/tests/test_contour_tools.py +0 -0
  491. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/python/tests/test_cork.py +0 -0
  492. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/python/tests/test_dekoker_endmembers.py +0 -0
  493. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/python/tests/test_dekoker_example.py +0 -0
  494. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/python/tests/test_enthalpy_ps_infill.py +0 -0
  495. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/python/tests/test_equilibration.py +0 -0
  496. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/python/tests/test_figure14_benchmark.py +0 -0
  497. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/python/tests/test_forsterite_sections.py +0 -0
  498. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/python/tests/test_gaussian_moment_corrected.py +0 -0
  499. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/python/tests/test_green2025.py +0 -0
  500. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/python/tests/test_hp_datasets.py +0 -0
  501. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/python/tests/test_linear_fitting.py +0 -0
  502. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/python/tests/test_modifiers.py +0 -0
  503. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/python/tests/test_phase_diagram_branch_identity.py +0 -0
  504. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/python/tests/test_phase_diagram_consistency.py +0 -0
  505. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/python/tests/test_phase_diagram_contours.py +0 -0
  506. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/python/tests/test_phase_diagram_critical_endpoints.py +0 -0
  507. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/python/tests/test_phase_diagram_incidence.py +0 -0
  508. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/python/tests/test_phase_diagram_line_resolution.py +0 -0
  509. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/python/tests/test_phase_diagram_partial_duplicates.py +0 -0
  510. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/python/tests/test_phase_diagram_patching.py +0 -0
  511. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/python/tests/test_polygon_utils.py +0 -0
  512. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/python/tests/test_potential_grid.py +0 -0
  513. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/python/tests/test_property_grid.py +0 -0
  514. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/python/tests/test_seismic.py +0 -0
  515. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/python/tests/test_spock.py +0 -0
  516. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/python/tests/test_stable_equilibrium.py +0 -0
  517. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/python/tests/test_wheel_dependencies.py +0 -0
  518. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/python/tests/test_wheel_metadata.py +0 -0
  519. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/src/core/assemblage.cpp +0 -0
  520. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/src/core/combined_mineral.cpp +0 -0
  521. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/src/core/composite_material.cpp +0 -0
  522. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/src/core/composition.cpp +0 -0
  523. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/src/core/equation_of_state.cpp +0 -0
  524. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/src/core/equilibrated_composite.cpp +0 -0
  525. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/src/core/geotherm.cpp +0 -0
  526. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/src/core/layer.cpp +0 -0
  527. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/src/core/planet.cpp +0 -0
  528. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/src/core/radial_profile.hpp +0 -0
  529. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/src/core/relaxed_solution.cpp +0 -0
  530. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/src/core/seismic.cpp +0 -0
  531. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/src/core/solution.cpp +0 -0
  532. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/src/core/solution_models/asymmetric_regular_solution.cpp +0 -0
  533. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/src/core/solution_models/ideal_solution.cpp +0 -0
  534. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/src/core/solution_models/solution_model_base.cpp +0 -0
  535. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/src/core/solution_models/symmetric_regular_solution.cpp +0 -0
  536. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/src/data/geotherm_data.hpp +0 -0
  537. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/src/data/input_covariance/HGP_2018_ds633_cov.h5 +0 -0
  538. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/src/data/input_covariance/HP_2011_ds62_cov.h5 +0 -0
  539. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/src/data/input_covariance/HPx_ds636_cov.h5 +0 -0
  540. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/src/data/input_geotherm/Anzellini_2013_PT.txt +0 -0
  541. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/src/data/input_geotherm/Katsura_2022.txt +0 -0
  542. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/src/data/input_geotherm/Plesa_2022_Mars_V_6cm3.txt +0 -0
  543. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/src/data/input_geotherm/SOURCES.md +0 -0
  544. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/src/data/input_geotherm/Stacey_1977_continents.txt +0 -0
  545. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/src/data/input_geotherm/Stacey_1977_oceans.txt +0 -0
  546. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/src/data/input_geotherm/anderson_82.txt +0 -0
  547. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/src/data/input_geotherm/brown_81.txt +0 -0
  548. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/src/data/input_seismic/SOURCES.md +0 -0
  549. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/src/data/input_seismic/STW105.txt +0 -0
  550. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/src/data/input_seismic/ak135.txt +0 -0
  551. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/src/data/input_seismic/iasp91.txt +0 -0
  552. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/src/data/input_seismic/prem.txt +0 -0
  553. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/src/data/input_seismic/pwave_fast.txt +0 -0
  554. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/src/data/input_seismic/pwave_slow.txt +0 -0
  555. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/src/data/input_seismic/swave_fast.txt +0 -0
  556. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/src/data/input_seismic/swave_slow.txt +0 -0
  557. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/src/data/read_table.cpp +0 -0
  558. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/src/data/read_table.hpp +0 -0
  559. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/src/data/seismic_data.hpp +0 -0
  560. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/src/eos/birch_murnaghan.cpp +0 -0
  561. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/src/eos/components/bukowinski_electronic.cpp +0 -0
  562. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/src/eos/components/modular_mgd_models.cpp +0 -0
  563. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/src/eos/components/property_modifiers.cpp +0 -0
  564. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/src/eos/cork.cpp +0 -0
  565. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/src/eos/dks_common.hpp +0 -0
  566. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/src/eos/dks_liquid.cpp +0 -0
  567. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/src/eos/hp.cpp +0 -0
  568. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/src/eos/hp_liquid.cpp +0 -0
  569. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/src/eos/modified_tait.cpp +0 -0
  570. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/src/eos/slb.cpp +0 -0
  571. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/src/eos/spock.cpp +0 -0
  572. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/src/eos/vinet.cpp +0 -0
  573. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/src/optim/composition_fitting.cpp +0 -0
  574. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/src/optim/linear_fitting.cpp +0 -0
  575. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/src/optim/roots/damped_newton_solver.cpp +0 -0
  576. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/src/tools/averaging/averaging_base.cpp +0 -0
  577. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/src/tools/averaging/averaging_utils.cpp +0 -0
  578. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/src/tools/averaging/hs.cpp +0 -0
  579. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/src/tools/averaging/hs_lower.cpp +0 -0
  580. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/src/tools/averaging/hs_upper.cpp +0 -0
  581. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/src/tools/averaging/reuss.cpp +0 -0
  582. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/src/tools/averaging/voigt.cpp +0 -0
  583. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/src/tools/averaging/vrh.cpp +0 -0
  584. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/src/tools/chemistry.cpp +0 -0
  585. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/src/tools/equilibration/equality_constraint_variants.cpp +0 -0
  586. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/src/tools/equilibration/equilibrate_impl.cpp +0 -0
  587. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/src/tools/equilibration/equilibrate_lambda_bounds.cpp +0 -0
  588. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/src/tools/equilibration/equilibrate_objective.cpp +0 -0
  589. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/src/tools/equilibration/equilibrate_utils.cpp +0 -0
  590. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/src/tools/partitioning.cpp +0 -0
  591. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/src/tools/phase_diagram/boundary_repair.cpp +0 -0
  592. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/src/tools/phase_diagram/calculation.cpp +0 -0
  593. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/src/tools/phase_diagram/common.cpp +0 -0
  594. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/src/tools/phase_diagram/consistency.cpp +0 -0
  595. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/src/tools/phase_diagram/continuation.cpp +0 -0
  596. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/src/tools/phase_diagram/contours.cpp +0 -0
  597. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/src/tools/phase_diagram/critical.cpp +0 -0
  598. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/src/tools/phase_diagram/domain.cpp +0 -0
  599. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/src/tools/phase_diagram/polygons.cpp +0 -0
  600. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/src/tools/phase_diagram/potential.cpp +0 -0
  601. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/src/tools/phase_diagram/properties.cpp +0 -0
  602. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/src/tools/phase_diagram/refinement.cpp +0 -0
  603. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/src/tools/phase_diagram/stability.cpp +0 -0
  604. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/src/tools/phase_diagram/tracing.cpp +0 -0
  605. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/src/tools/phase_diagram/verification.cpp +0 -0
  606. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/src/tools/polytope.cpp +0 -0
  607. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/src/tools/seismic.cpp +0 -0
  608. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/src/tools/solution_simplification.cpp +0 -0
  609. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/src/utils/chemistry_utils.cpp +0 -0
  610. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/src/utils/polygon_utils.cpp +0 -0
  611. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/tests/core/test_assemblage.cpp +0 -0
  612. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/tests/core/test_composition.cpp +0 -0
  613. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/tests/core/test_geotherm.cpp +0 -0
  614. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/tests/core/test_layer_planet.cpp +0 -0
  615. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/tests/core/test_material.cpp +0 -0
  616. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/tests/core/test_seismic.cpp +0 -0
  617. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/tests/core/test_solution.cpp +0 -0
  618. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/tests/core/test_solution_model.cpp +0 -0
  619. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/tests/eos/test_birch_murnaghan.cpp +0 -0
  620. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/tests/eos/test_bukowinski_electronic.cpp +0 -0
  621. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/tests/eos/test_cork.cpp +0 -0
  622. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/tests/eos/test_debye.cpp +0 -0
  623. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/tests/eos/test_einstein.cpp +0 -0
  624. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/tests/eos/test_excess_params.cpp +0 -0
  625. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/tests/eos/test_hp.cpp +0 -0
  626. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/tests/eos/test_mie_grueneisen_debye.cpp +0 -0
  627. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/tests/eos/test_modified_tait.cpp +0 -0
  628. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/tests/eos/test_property_modifiers.cpp +0 -0
  629. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/tests/eos/test_spock.cpp +0 -0
  630. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/tests/eos/test_vinet.cpp +0 -0
  631. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/tests/eos/test_volume_accuracy.cpp +0 -0
  632. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/tests/include/eos_names.hpp +0 -0
  633. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/tests/include/equilibration_fixtures.hpp +0 -0
  634. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/tests/include/solution_fixtures.hpp +0 -0
  635. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/tests/include/thermocalc_reference.hpp +0 -0
  636. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/tests/include/tolerances.hpp +0 -0
  637. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/tests/optim/roots/test_damped_newton.cpp +0 -0
  638. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/tests/optim/roots/test_roots.cpp +0 -0
  639. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/tests/optim/test_composition_fitting.cpp +0 -0
  640. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/tests/optim/test_linear_fitting.cpp +0 -0
  641. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/tests/reference/ps1994.json +0 -0
  642. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/tests/reference/thermocalc_metapelite.json +0 -0
  643. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/tests/test_main.cpp +0 -0
  644. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/tests/tools/averaging/test_averaging_schemes.cpp +0 -0
  645. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/tests/tools/equilibration/test_equality_constraints.cpp +0 -0
  646. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/tests/tools/equilibration/test_equilibrate.cpp +0 -0
  647. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/tests/tools/equilibration/test_equilibrate_lambda_bounds.cpp +0 -0
  648. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/tests/tools/equilibration/test_equilibrate_objective.cpp +0 -0
  649. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/tests/tools/equilibration/test_equilibrate_utils.cpp +0 -0
  650. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/tests/utils/test_chemistry_utils.cpp +0 -0
  651. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/tests/utils/test_constants.cpp +0 -0
  652. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/tests/utils/test_exceptions.cpp +0 -0
  653. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/tests/utils/test_index_utils.cpp +0 -0
  654. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/tests/utils/test_math_utils.cpp +0 -0
  655. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/tests/utils/test_matrix_utils.cpp +0 -0
  656. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/tests/utils/test_polygon_utils.cpp +0 -0
  657. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/tests/utils/test_string_utils.cpp +0 -0
  658. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/tests/utils/test_types.cpp +0 -0
  659. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/tests/utils/test_validate_optionals.cpp +0 -0
  660. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/tests/utils/test_vector_utils.cpp +0 -0
  661. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/tests/utils/test_warnings.cpp +0 -0
  662. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/tools/build_wheel_dependencies.py +0 -0
  663. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/tools/burnman_reference.py +0 -0
  664. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/tools/check_reference_data.py +0 -0
  665. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/tools/export_geotherm_data.py +0 -0
  666. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/tools/export_seismic_data.py +0 -0
  667. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/tools/extract_thermocalc_reference.py +0 -0
  668. {burnman_cpp-0.8.0 → burnman_cpp-0.11.1}/tools/generate_ps1994_reference.py +0 -0
@@ -96,7 +96,7 @@ jobs:
96
96
  uses: actions/checkout@v7
97
97
  with:
98
98
  repository: geodynamics/burnman
99
- ref: e2cfac31052273b3fa9d5ce905978e97723005e9
99
+ ref: b7c54ccf7bfd8583158c6dffe210c004b9570f4d
100
100
  path: build/python-burnman-reference
101
101
  persist-credentials: false
102
102
 
@@ -110,7 +110,7 @@ jobs:
110
110
  uses: actions/checkout@v7
111
111
  with:
112
112
  repository: geodynamics/burnman
113
- ref: e2cfac31052273b3fa9d5ce905978e97723005e9
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(HP11 HP_2011_ds62)
84
- burnman_covariance_data(HGP18 HGP_2018_ds633)
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)/,HP11_covariance_data.hpp HGP18_covariance_data.hpp HPx_ds636_covariance_data.hpp)
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)/HP11_covariance_data.hpp: $(SRC_DIR)/data/input_covariance/HP_2011_ds62_cov.h5
134
- $(COVARIANCE_BUILD_DIR)/HGP18_covariance_data.hpp: $(SRC_DIR)/data/input_covariance/HGP_2018_ds633_cov.h5
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.8.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
- Install the published package with:
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
- If no matching wheel is available, pip builds from source and needs the dependencies below.
64
+ A virtual environment is optional. To use one, run these commands before
65
+ installing:
64
66
 
65
- ### Building from source
67
+ ```sh
68
+ python -m venv .venv
69
+ source .venv/bin/activate
70
+ ```
66
71
 
67
- Source builds require:
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
- - A C++17 compiler, such as GCC or Clang.
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
- On Ubuntu:
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 python3-dev \
81
- libeigen3-dev libgsl-dev libnlopt-cxx-dev libcdd-dev libgmp-dev catch2
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 catch2
171
+ brew install python cmake pkg-config eigen gsl nlopt cddlib gmp hdf5
90
172
  ```
91
173
 
92
- Clone the repository:
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 e2cfac31052273b3fa9d5ce905978e97723005e9
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 `e2cfac31052273b3fa9d5ce905978e97723005e9`. The XML, CTest log and CSV files
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.