BurnMan 1.2: a thermodynamic and geophysics toolkit for the Earth and planetary sciences#
BurnMan is a Python library for computing the thermodynamic and thermoelastic properties of geological materials from simple mineral endmembers to complex multilayered planetary interiors.
BurnMan is released under the GNU GPL v2 or newer. It relies heavily on numpy, scipy, and matplotlib.
Homepage: https://geodynamics.github.io/burnman/
Documentation: http://burnman.readthedocs.io
Source code: https://github.com/geodynamics/burnman
If you haven’t yet installed BurnMan, you can go straight to Requirements for detailed instructions. After that, you might want to try out The BurnMan Tutorial or the other Examples. Finally, and most importantly, have fun!
Citing BurnMan#
If you use BurnMan in your work, we ask that you cite the following publications:
Myhill, R., Cottaar, S., Heister, T., Rose, I., Unterborn, C., Dannberg, J. and Gassmoeller, R. (2023). BurnMan - a Python toolkit for planetary geophysics, geochemistry and thermodynamics. Journal of Open Source Software. (https://doi.org/10.21105/joss.05389)
Myhill, R., Cottaar, S., Heister, T., Rose, I., and Unterborn, C. (2023): BurnMan v1.2 [Software]. Computational Infrastructure for Geodynamics. Zenodo. (https://doi.org/10.5281/zenodo.8104293)
Cottaar S., Heister, T., Rose, I., and Unterborn, C. (2014). BurnMan: A lower mantle mineral physics toolkit, Geochemistry, Geophysics, and Geosystems, 15(4), 1164-1179 (https://doi.org/10.1002/2013GC005122)
Contributing to BurnMan#
If you would like to contribute bug fixes, new functions or new modules to the existing codebase, please contact us at info@burnman.org or make a pull request at https://github.com/geodynamics/burnman.
BurnMan also includes a contrib directory that contains python and ipython scripts used to reproduce published results. We welcome the submission of new contributions to this directory. As with the contribution of code, please contact us at info@burnman.org or make a pull request at https://github.com/geodynamics/burnman.
Acknowledgement and Support#
This project was initiated at, and follow-up research support was received through, Cooperative Institute of Deep Earth Research, CIDER (NSF FESD grant 1135452) – see www.deep-earth.org
We thank all the members of the CIDER Mg/Si team for their input: Valentina Magni, Yu Huang, JiaChao Liu, Marc Hirschmann, and Barbara Romanowicz. We also thank Lars Stixrude for providing benchmarking calculations and Zack Geballe, Motohiko Murakami, Bill McDonough, Quentin Williams, Wendy Panero, and Wolfgang Bangerth for helpful discussions.
We thank CIG (www.geodynamics.org) for support and accepting our donation of BurnMan as an official project.
- Introducing BurnMan 1.2
- Mathematical Background
- The BurnMan Tutorial
- CIDER Tutorial 2014
- Examples
- Autogenerated Full API
- Materials
- Equations of state
- Solution models
- Solution tools
- Compositions
- Polytopes
- Averaging Schemes
- Geotherms
- Layers and Planets
- Thermodynamics
- Lattice Vibrations
- Chemistry parsing and thermodynamics
read_masses()atomic_massesdictionarize_formula()sum_formulae()formula_mass()convert_formula()process_solution_chemistry()site_occupancies_to_strings()compositional_array()ordered_compositional_array()formula_to_string()sort_element_list_to_IUPAC_order()convert_fractions()reaction_matrix_as_strings()fugacity()relative_fugacity()equilibrium_pressure()equilibrium_temperature()invariant_point()hugoniot()reactions_from_stoichiometric_matrix()reactions_from_formulae()
- Equilibrium Thermodynamics
- Seismic
- Mineral databases
- Matas_etal_2007
mg_perovskitefe_perovskiteal_perovskiteca_perovskitepericlasewuestiteca_bridgmanitemg_bridgmanitefe_bridgmaniteal_bridgmanite- Murakami_etal_2012
mg_perovskitemg_perovskite_3rdorderfe_perovskitemg_periclasefe_periclasefe_periclase_3rdfe_periclase_HSfe_periclase_LSfe_periclase_HS_3rdfe_periclase_LS_3rdmg_bridgmanitefe_bridgmanitemg_bridgmanite_3rdorder- Murakami_2013
periclasewuestitemg_perovskitefe_perovskitemg_bridgmanitefe_bridgmanite- SLB_2005
stishovitepericlasewuestitemg_perovskitefe_perovskitemg_bridgmanitefe_bridgmanite- SLB_2011
c2c_pyroxeneca_ferrite_structured_phaseclinopyroxenegarnetakimotoiteferropericlasemg_fe_olivineorthopyroxeneplagioclasepost_perovskitemg_fe_perovskitemg_fe_ringwooditemg_fe_aluminous_spinelmg_fe_wadsleyiteanorthitealbitespinelhercyniteforsteritefayalitemg_wadsleyitefe_wadsleyitemg_ringwooditefe_ringwooditeenstatiteferrosilitemg_tschermaksortho_diopsidediopsidehedenbergiteclinoenstatiteca_tschermaksjadeitehp_clinoenstatitehp_clinoferrosiliteca_perovskitemg_akimotoitefe_akimotoitecorundumpyropealmandinegrossularmg_majoritejd_majoritequartzcoesitestishoviteseifertitemg_perovskitefe_perovskiteal_perovskitemg_post_perovskitefe_post_perovskiteal_post_perovskitepericlasewuestitemg_ca_ferritefe_ca_ferritena_ca_ferritekyanitenephelineabansphcfofamgwafewamgriferienfsmgtsodidihecencatsjdmgc2fec2hpcenhpcfsmgpvmg_bridgmanitefepvfe_bridgmanitealpvcapvmgilfeilcopyalgrmgmjjdmjqtzcoesstseifmppvfppvappvpewumgcffecfnacfkynephc2ccfcpxgtililmenite_groupmwmagnesiowuestiteolopxplagppvpvmg_fe_bridgmanitemg_fe_silicate_perovskiterispinel_groupwaspinelloid_IIIabalalpvananaoapboappvcapvcatscencocoescrstdienfafapvfec2fecffeilfepvferifewaflpvfnalfofppvfsgrhchehemhepvhlpvhmaghppvjdkylppvmagmgc2mgcfmgilmgmjmgpvmgrimgtsmgwamnalmppvnacfnamjnephnnalodipepyqtzspstwuwulsc2c_pyroxenecalcium_ferrite_structured_phaseclinopyroxenegarnetilmeniteferropericlasenew_aluminous_phaseolivineorthopyroxeneplagioclasepost_perovskitebridgmaniteringwooditemg_fe_aluminous_spinelwadsleyitealbitealmandineal_perovskiteanorthitealpha_nao2_phasealpha_pbo_2_sio_2al_post_perovskiteca_perovskitelime_tschermakclinoenstatitecorundumcoesitecristobalitediopsideenstatitefayalitefealo3_perovskite_hshp_clinoferrosilitefe_ca_ferritefe_akimotoitefe_perovskitefe_ringwooditefe_wadsleyitefe_perovskite_low_spinfe_nal_phaseforsteritefe_postperovskiteferrosilitegrossularhercynitehedenbergitehematitefe2o3_perovskite_hsfe2o3_perovskite_lshigh_pressure_magnetiths_fe2o3_post_perovskijadeitekyanitels_fe2o3_post_perovskimagnetitehp_clinoenstatitemg_ca_ferritemg_akimotoitemg_majoritemg_perovskitemg_ringwooditemg_tschermaksmg_wadsleyitemg_nal_phasemg_postperovskitena_ca_ferritena_majoritenephelinena_nal_phaseortho_diopsidepericlasepyropequartzspinelstishovitewustitewustite_low_spinc2ccfcpxgtilmwnalolopxplgppvpvriwa- SLB_2011_ZSB_2013
stishovitepericlasewuestitemg_perovskitefe_perovskitemg_bridgmanitefe_bridgmanite- DKS_2013_solids
stishoviteperovskitepericlase- DKS_2013_liquids
vector_to_array()SiO2_liquidMgSiO3_liquidMgSi2O5_liquidMgSi3O7_liquidMgSi5O11_liquidMg2SiO4_liquidMg3Si2O7_liquidMg5SiO7_liquidMgO_liquid- RS_2014_liquids
Fe2SiO4_liquid- HP_2011_ds62
fofatephlrnmontchumchdrmwdfwdmrwfrwmpvfpvapvcpvmakfakmajpyalmspssgrandrknorosmaosmmosfavsvandalusitekysillsmulamultpzmstfstmnstmctdfctdmnctdmerwspuzoczepfeppmtlawmpmfpmjgdgehakrnktycrdhcrdfcrdmncrdphAsphcstnzrcenprencenhenfsmgtsdihedjdacmkoscatscaesrhodpxmnwopswowaltrfacttspargglfglriebanthfanthcummgrungedspr4spr5fsprmcarfcardeermucelfcelpamaphlannmnbieastnaphclinamesafchldaphmnchlsudfsudprltaftatatstapminnminmkaoprefprechrlizgltfstpmstpatgababhmicsanankcmwaholqtrdcrstcoestvnecgcghsdlklslcmewrklmtheustlbanllimeruperfpermangcormcorhemeskbixNiOpntgeikilmbdytencupsphercmtmftusppicrbrdspgthccaragmagsidrhcdolanksyvhltpyrtrottrolottrovanyironNiCugphdiamSsyvLhltLperLlimLcorLqLh2oLfoLfaLwoLenLdiLsilLanLkspLabLneLlcLcov()- HP_2011_fluids
CO2CH4O2H2S2H2S- HHPH_2013
fofamwdfwdmrwfrwmpvfpvapvnpvcpvmakfakmajnagtpyalmgrencenhenhfsfsmgtsdihedjdcatsstvmacfmscffscfnacfcacfmanalnanalmsnalfsnalcanalperfpercormcor- HGP_2018_ds633
fofatephlrnmontchumchdrmwdfwdmrwfrwmpvfpvapvnpvppvcpvmakfakmajnagtpyalmspssgrandrskiknoruvosmaosmmosfavsvandalusitekysillsmulamultpzmstfstmnstmctdfctdmnctdmerwspuzoczepfeppmtlawmpmfpmjgdgehakrnktycrdhcrdfcrdmncrdphAphDphEshBsphcstnzrczrttcnenprencenhenhfsfsmgtsdihedjdkjdacmkoscatscaesrhodpxmnwopswowaltrfacttspargglfglnybriebanthfanthcummgrungedspr4spr5fsprmcarfcardeermucelfcelpamaphlannmnbieastnaphtanclinamesafchldaphmnchlsudfsudprltaftatatstapntaminnminmkaoprefprechrlizgltfstpmstpatgababhmicsanankcmwaholqtrdcrstcoestvnecgcghmacfmscffscfnacfcacfmanalnanalmsnalfsnalcanalsdlklslcmewrklmtheustlbanllimeruperfperwumangcormcorhemeskbixNiOpntgeikilmbdybdyTbdyCtencupsphercmtmftqndusppicrbrdspgthccaragmagsidrhcdolanksyvhltpyrtrottrolottrovanyironNiCugphdiamSsyvLhltLperLlimLcorLeskLhemLqLh2oLfoLfaLwoLenLdiLsilLanLkspLabLneLlcLruLbdyLcov()make_melt_class()silicate_meltCMS_meltMS_melt- JH_2015
ferropericlaseplagioclaseclinopyroxenecfscrdicesscencfmolivinespinelgarnetorthopyroxenefmodicrenmessconstruct_combined_covariance()cov()- Saxena and Eriksson (2015)
bcc_ironfcc_ironhcp_ironliquid_iron- Other minerals
liquid_ironZSB_2013_mg_perovskiteZSB_2013_fe_perovskiteSpeziale_fe_periclaseSpeziale_fe_periclase_HSSpeziale_fe_periclase_LSLiquid_Fe_AndersonFe_Dewaele
- Calibrant databases
- Optimization
DummyCompositionSolutionDummyCompositionSolution.endmember_formulaeDummyCompositionSolution.C_pDummyCompositionSolution.C_vDummyCompositionSolution.GDummyCompositionSolution.HDummyCompositionSolution.K_SDummyCompositionSolution.K_TDummyCompositionSolution.PDummyCompositionSolution.SDummyCompositionSolution.TDummyCompositionSolution.VDummyCompositionSolution.activitiesDummyCompositionSolution.activity_coefficientsDummyCompositionSolution.adiabatic_bulk_modulusDummyCompositionSolution.adiabatic_bulk_modulus_reussDummyCompositionSolution.adiabatic_compressibilityDummyCompositionSolution.adiabatic_compressibility_reussDummyCompositionSolution.alphaDummyCompositionSolution.beta_SDummyCompositionSolution.beta_TDummyCompositionSolution.bulk_sound_velocityDummyCompositionSolution.compositional_null_basisDummyCompositionSolution.copy()DummyCompositionSolution.debug_print()DummyCompositionSolution.densityDummyCompositionSolution.dependent_element_indicesDummyCompositionSolution.elementsDummyCompositionSolution.endmember_namesDummyCompositionSolution.endmembersDummyCompositionSolution.energyDummyCompositionSolution.entropy_hessianDummyCompositionSolution.evaluate()DummyCompositionSolution.excess_enthalpyDummyCompositionSolution.excess_entropyDummyCompositionSolution.excess_gibbsDummyCompositionSolution.excess_partial_entropiesDummyCompositionSolution.excess_partial_gibbsDummyCompositionSolution.excess_partial_volumesDummyCompositionSolution.excess_volumeDummyCompositionSolution.formulaDummyCompositionSolution.gibbsDummyCompositionSolution.gibbs_hessianDummyCompositionSolution.grDummyCompositionSolution.grueneisen_parameterDummyCompositionSolution.helmholtzDummyCompositionSolution.independent_element_indicesDummyCompositionSolution.isothermal_bulk_modulusDummyCompositionSolution.isothermal_bulk_modulus_reussDummyCompositionSolution.isothermal_compressibilityDummyCompositionSolution.isothermal_compressibility_reussDummyCompositionSolution.molar_enthalpyDummyCompositionSolution.molar_entropyDummyCompositionSolution.molar_gibbsDummyCompositionSolution.molar_heat_capacity_pDummyCompositionSolution.molar_heat_capacity_vDummyCompositionSolution.molar_helmholtzDummyCompositionSolution.molar_internal_energyDummyCompositionSolution.molar_massDummyCompositionSolution.molar_volumeDummyCompositionSolution.n_endmembersDummyCompositionSolution.n_reactionsDummyCompositionSolution.nameDummyCompositionSolution.p_wave_velocityDummyCompositionSolution.partial_entropiesDummyCompositionSolution.partial_gibbsDummyCompositionSolution.partial_volumesDummyCompositionSolution.pressureDummyCompositionSolution.print_minerals_of_current_state()DummyCompositionSolution.reaction_basisDummyCompositionSolution.reset()DummyCompositionSolution.rhoDummyCompositionSolution.set_composition()DummyCompositionSolution.set_method()DummyCompositionSolution.set_state()DummyCompositionSolution.set_state_with_volume()DummyCompositionSolution.shear_modulusDummyCompositionSolution.shear_wave_velocityDummyCompositionSolution.site_formula()DummyCompositionSolution.site_occupanciesDummyCompositionSolution.stoichiometric_arrayDummyCompositionSolution.stoichiometric_matrixDummyCompositionSolution.temperatureDummyCompositionSolution.thermal_expansivityDummyCompositionSolution.to_string()DummyCompositionSolution.unroll()DummyCompositionSolution.v_pDummyCompositionSolution.v_phiDummyCompositionSolution.v_sDummyCompositionSolution.volume_hessian
fit_composition_to_solution()fit_phase_proportions_to_bulk_composition()MineralFitfit_PTp_data()fit_PTV_data()SolutionFitfit_XPTp_data()weighted_constrained_least_squares()nonlinear_least_squares_fit()confidence_prediction_bands()abs_line_project()plot_cov_ellipse()corner_plot()weighted_residual_plot()extreme_values()plot_residuals()solve_constraint_lagrangian()damped_newton_solve()
- Utilities
- Tools
- Bibliography