BurnMan 2.1: 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., Unterborn, C., Dannberg, J., Gassmoeller, R. and Farla, R. (2024): BurnMan v2.1.0 [Software]. Computational Infrastructure for Geodynamics. Zenodo. (https://doi.org/10.5281/zenodo.14238360)
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 2.1
- 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_masses
dictionarize_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_perovskite
fe_perovskite
al_perovskite
ca_perovskite
periclase
wuestite
ca_bridgmanite
mg_bridgmanite
fe_bridgmanite
al_bridgmanite
- Murakami_etal_2012
mg_perovskite
mg_perovskite_3rdorder
fe_perovskite
mg_periclase
fe_periclase
fe_periclase_3rd
fe_periclase_HS
fe_periclase_LS
fe_periclase_HS_3rd
fe_periclase_LS_3rd
mg_bridgmanite
fe_bridgmanite
mg_bridgmanite_3rdorder
- Murakami_2013
periclase
wuestite
mg_perovskite
fe_perovskite
mg_bridgmanite
fe_bridgmanite
- SLB_2005
stishovite
periclase
wuestite
mg_perovskite
fe_perovskite
mg_bridgmanite
fe_bridgmanite
- SLB_2011
c2c_pyroxene
ca_ferrite_structured_phase
clinopyroxene
garnet
akimotoite
ferropericlase
mg_fe_olivine
orthopyroxene
plagioclase
post_perovskite
mg_fe_perovskite
mg_fe_ringwoodite
mg_fe_aluminous_spinel
mg_fe_wadsleyite
anorthite
albite
spinel
hercynite
forsterite
fayalite
mg_wadsleyite
fe_wadsleyite
mg_ringwoodite
fe_ringwoodite
enstatite
ferrosilite
mg_tschermaks
ortho_diopside
diopside
hedenbergite
clinoenstatite
ca_tschermaks
jadeite
hp_clinoenstatite
hp_clinoferrosilite
ca_perovskite
mg_akimotoite
fe_akimotoite
corundum
pyrope
almandine
grossular
mg_majorite
jd_majorite
quartz
coesite
stishovite
seifertite
mg_perovskite
fe_perovskite
al_perovskite
mg_post_perovskite
fe_post_perovskite
al_post_perovskite
periclase
wuestite
mg_ca_ferrite
fe_ca_ferrite
na_ca_ferrite
kyanite
nepheline
ab
an
sp
hc
fo
fa
mgwa
fewa
mgri
feri
en
fs
mgts
odi
di
he
cen
cats
jd
mgc2
fec2
hpcen
hpcfs
mgpv
mg_bridgmanite
fepv
fe_bridgmanite
alpv
capv
mgil
feil
co
py
al
gr
mgmj
jdmj
qtz
coes
st
seif
mppv
fppv
appv
pe
wu
mgcf
fecf
nacf
ky
neph
c2c
cf
cpx
gt
il
ilmenite_group
mw
magnesiowuestite
ol
opx
plag
ppv
pv
mg_fe_bridgmanite
mg_fe_silicate_perovskite
ri
spinel_group
wa
spinelloid_III
ab
al
alpv
an
anao
apbo
appv
capv
cats
cen
co
coes
crst
di
en
fa
fapv
fec2
fecf
feil
fepv
feri
fewa
flpv
fnal
fo
fppv
fs
gr
hc
he
hem
hepv
hlpv
hmag
hppv
jd
ky
lppv
mag
mgc2
mgcf
mgil
mgmj
mgpv
mgri
mgts
mgwa
mnal
mppv
nacf
namj
neph
nnal
odi
pe
py
qtz
sp
st
wu
wuls
c2c_pyroxene
calcium_ferrite_structured_phase
clinopyroxene
garnet
ilmenite
ferropericlase
new_aluminous_phase
olivine
orthopyroxene
plagioclase
post_perovskite
bridgmanite
ringwoodite
mg_fe_aluminous_spinel
wadsleyite
albite
almandine
al_perovskite
anorthite
alpha_nao2_phase
alpha_pbo_2_sio_2
al_post_perovskite
ca_perovskite
lime_tschermak
clinoenstatite
corundum
coesite
cristobalite
diopside
enstatite
fayalite
fealo3_perovskite_hs
hp_clinoferrosilite
fe_ca_ferrite
fe_akimotoite
fe_perovskite
fe_ringwoodite
fe_wadsleyite
fe_perovskite_low_spin
fe_nal_phase
forsterite
fe_postperovskite
ferrosilite
grossular
hercynite
hedenbergite
hematite
fe2o3_perovskite_hs
fe2o3_perovskite_ls
high_pressure_magnetit
hs_fe2o3_post_perovski
jadeite
kyanite
ls_fe2o3_post_perovski
magnetite
hp_clinoenstatite
mg_ca_ferrite
mg_akimotoite
mg_majorite
mg_perovskite
mg_ringwoodite
mg_tschermaks
mg_wadsleyite
mg_nal_phase
mg_postperovskite
na_ca_ferrite
na_majorite
nepheline
na_nal_phase
ortho_diopside
periclase
pyrope
quartz
spinel
stishovite
wustite
wustite_low_spin
c2c
cf
cpx
gt
il
mw
nal
ol
opx
plg
ppv
pv
ri
wa
- SLB_2011_ZSB_2013
stishovite
periclase
wuestite
mg_perovskite
fe_perovskite
mg_bridgmanite
fe_bridgmanite
- DKS_2013_solids
stishovite
perovskite
periclase
- DKS_2013_liquids
vector_to_array()
SiO2_liquid
MgSiO3_liquid
MgSi2O5_liquid
MgSi3O7_liquid
MgSi5O11_liquid
Mg2SiO4_liquid
Mg3Si2O7_liquid
Mg5SiO7_liquid
MgO_liquid
- RS_2014_liquids
Fe2SiO4_liquid
- HP_2011_ds62
fo
fa
teph
lrn
mont
chum
chdr
mwd
fwd
mrw
frw
mpv
fpv
apv
cpv
mak
fak
maj
py
alm
spss
gr
andr
knor
osma
osmm
osfa
vsv
andalusite
ky
sill
smul
amul
tpz
mst
fst
mnst
mctd
fctd
mnctd
merw
spu
zo
cz
ep
fep
pmt
law
mpm
fpm
jgd
geh
ak
rnk
ty
crd
hcrd
fcrd
mncrd
phA
sph
cstn
zrc
en
pren
cen
hen
fs
mgts
di
hed
jd
acm
kos
cats
caes
rhod
pxmn
wo
pswo
wal
tr
fact
ts
parg
gl
fgl
rieb
anth
fanth
cumm
grun
ged
spr4
spr5
fspr
mcar
fcar
deer
mu
cel
fcel
pa
ma
phl
ann
mnbi
east
naph
clin
ames
afchl
daph
mnchl
sud
fsud
prl
ta
fta
tats
tap
minn
minm
kao
pre
fpre
chr
liz
glt
fstp
mstp
atg
ab
abh
mic
san
an
kcm
wa
hol
q
trd
crst
coe
stv
ne
cg
cgh
sdl
kls
lc
me
wrk
lmt
heu
stlb
anl
lime
ru
per
fper
mang
cor
mcor
hem
esk
bix
NiO
pnt
geik
ilm
bdy
ten
cup
sp
herc
mt
mft
usp
picr
br
dsp
gth
cc
arag
mag
sid
rhc
dol
ank
syv
hlt
pyr
trot
tro
lot
trov
any
iron
Ni
Cu
gph
diam
S
syvL
hltL
perL
limL
corL
qL
h2oL
foL
faL
woL
enL
diL
silL
anL
kspL
abL
neL
lcL
cov()
- HP_2011_fluids
CO2
CH4
O2
H2
S2
H2S
- HHPH_2013
fo
fa
mwd
fwd
mrw
frw
mpv
fpv
apv
npv
cpv
mak
fak
maj
nagt
py
alm
gr
en
cen
hen
hfs
fs
mgts
di
hed
jd
cats
stv
macf
mscf
fscf
nacf
cacf
manal
nanal
msnal
fsnal
canal
per
fper
cor
mcor
- HGP_2018_ds633
fo
fa
teph
lrn
mont
chum
chdr
mwd
fwd
mrw
frw
mpv
fpv
apv
npv
ppv
cpv
mak
fak
maj
nagt
py
alm
spss
gr
andr
ski
knor
uv
osma
osmm
osfa
vsv
andalusite
ky
sill
smul
amul
tpz
mst
fst
mnst
mctd
fctd
mnctd
merw
spu
zo
cz
ep
fep
pmt
law
mpm
fpm
jgd
geh
ak
rnk
ty
crd
hcrd
fcrd
mncrd
phA
phD
phE
shB
sph
cstn
zrc
zrt
tcn
en
pren
cen
hen
hfs
fs
mgts
di
hed
jd
kjd
acm
kos
cats
caes
rhod
pxmn
wo
pswo
wal
tr
fact
ts
parg
gl
fgl
nyb
rieb
anth
fanth
cumm
grun
ged
spr4
spr5
fspr
mcar
fcar
deer
mu
cel
fcel
pa
ma
phl
ann
mnbi
east
naph
tan
clin
ames
afchl
daph
mnchl
sud
fsud
prl
ta
fta
tats
tap
nta
minn
minm
kao
pre
fpre
chr
liz
glt
fstp
mstp
atg
ab
abh
mic
san
an
kcm
wa
hol
q
trd
crst
coe
stv
ne
cg
cgh
macf
mscf
fscf
nacf
cacf
manal
nanal
msnal
fsnal
canal
sdl
kls
lc
me
wrk
lmt
heu
stlb
anl
lime
ru
per
fper
wu
mang
cor
mcor
hem
esk
bix
NiO
pnt
geik
ilm
bdy
bdyT
bdyC
ten
cup
sp
herc
mt
mft
qnd
usp
picr
br
dsp
gth
cc
arag
mag
sid
rhc
dol
ank
syv
hlt
pyr
trot
tro
lot
trov
any
iron
Ni
Cu
gph
diam
S
syvL
hltL
perL
limL
corL
eskL
hemL
qL
h2oL
foL
faL
woL
enL
diL
silL
anL
kspL
abL
neL
lcL
ruL
bdyL
cov()
make_melt_class()
silicate_melt
CMS_melt
MS_melt
- JH_2015
ferropericlase
plagioclase
clinopyroxene
cfs
crdi
cess
cen
cfm
olivine
spinel
garnet
orthopyroxene
fm
odi
cren
mess
construct_combined_covariance()
cov()
- Saxena and Eriksson (2015)
bcc_iron
fcc_iron
hcp_iron
liquid_iron
- Other minerals
liquid_iron
ZSB_2013_mg_perovskite
ZSB_2013_fe_perovskite
Speziale_fe_periclase
Speziale_fe_periclase_HS
Speziale_fe_periclase_LS
Liquid_Fe_Anderson
Fe_Dewaele
- Calibrant databases
- Optimization
DummyCompositionSolution
DummyCompositionSolution.endmember_formulae
DummyCompositionSolution.C_p
DummyCompositionSolution.C_v
DummyCompositionSolution.G
DummyCompositionSolution.H
DummyCompositionSolution.K_S
DummyCompositionSolution.K_T
DummyCompositionSolution.P
DummyCompositionSolution.S
DummyCompositionSolution.T
DummyCompositionSolution.V
DummyCompositionSolution.activities
DummyCompositionSolution.activity_coefficients
DummyCompositionSolution.alpha
DummyCompositionSolution.beta_S
DummyCompositionSolution.beta_T
DummyCompositionSolution.bulk_sound_velocity
DummyCompositionSolution.compositional_basis
DummyCompositionSolution.compositional_null_basis
DummyCompositionSolution.copy()
DummyCompositionSolution.debug_print()
DummyCompositionSolution.density
DummyCompositionSolution.dependent_element_indices
DummyCompositionSolution.elements
DummyCompositionSolution.endmember_names
DummyCompositionSolution.endmembers
DummyCompositionSolution.energy
DummyCompositionSolution.entropy_hessian
DummyCompositionSolution.evaluate()
DummyCompositionSolution.evaluate_with_volumes()
DummyCompositionSolution.excess_enthalpy
DummyCompositionSolution.excess_entropy
DummyCompositionSolution.excess_gibbs
DummyCompositionSolution.excess_partial_entropies
DummyCompositionSolution.excess_partial_gibbs
DummyCompositionSolution.excess_partial_volumes
DummyCompositionSolution.excess_volume
DummyCompositionSolution.formula
DummyCompositionSolution.gibbs
DummyCompositionSolution.gibbs_hessian
DummyCompositionSolution.gr
DummyCompositionSolution.grueneisen_parameter
DummyCompositionSolution.helmholtz
DummyCompositionSolution.independent_element_indices
DummyCompositionSolution.isentropic_bulk_modulus_reuss
DummyCompositionSolution.isentropic_compressibility_reuss
DummyCompositionSolution.isentropic_thermal_gradient
DummyCompositionSolution.isothermal_bulk_modulus_reuss
DummyCompositionSolution.isothermal_compressibility_reuss
DummyCompositionSolution.molar_enthalpy
DummyCompositionSolution.molar_entropy
DummyCompositionSolution.molar_gibbs
DummyCompositionSolution.molar_heat_capacity_p
DummyCompositionSolution.molar_heat_capacity_v
DummyCompositionSolution.molar_helmholtz
DummyCompositionSolution.molar_internal_energy
DummyCompositionSolution.molar_mass
DummyCompositionSolution.molar_volume
DummyCompositionSolution.n_endmembers
DummyCompositionSolution.n_reactions
DummyCompositionSolution.name
DummyCompositionSolution.p_wave_velocity
DummyCompositionSolution.partial_entropies
DummyCompositionSolution.partial_gibbs
DummyCompositionSolution.partial_volumes
DummyCompositionSolution.pressure
DummyCompositionSolution.print_minerals_of_current_state()
DummyCompositionSolution.reaction_basis
DummyCompositionSolution.reset()
DummyCompositionSolution.rho
DummyCompositionSolution.set_composition()
DummyCompositionSolution.set_method()
DummyCompositionSolution.set_state()
DummyCompositionSolution.set_state_with_volume()
DummyCompositionSolution.shear_modulus
DummyCompositionSolution.shear_wave_velocity
DummyCompositionSolution.site_formula()
DummyCompositionSolution.site_occupancies
DummyCompositionSolution.stoichiometric_array
DummyCompositionSolution.stoichiometric_matrix
DummyCompositionSolution.temperature
DummyCompositionSolution.thermal_expansivity
DummyCompositionSolution.to_string()
DummyCompositionSolution.unroll()
DummyCompositionSolution.v_p
DummyCompositionSolution.v_phi
DummyCompositionSolution.v_s
DummyCompositionSolution.volume_hessian
fit_composition_to_solution()
fit_phase_proportions_to_bulk_composition()
MineralFit
fit_PTp_data()
fit_PTV_data()
SolutionFit
fit_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
- Unit cell
- Mathematical
round_to_n()
unit_normalize()
float_eq()
linear_interpol()
bracket()
smooth_array()
interp_smoothed_array_and_derivatives()
compare_l2()
compare_chifactor()
l2()
nrmse()
chi_factor()
independent_row_indices()
array_to_rational_matrix()
complete_basis()
generate_complete_basis()
is_positive_definite()
- Miscellaneous
- Tools
- Bibliography