Skip to content

Commit

Permalink
add references to tutorials
Browse files Browse the repository at this point in the history
  • Loading branch information
bobmyhill committed Jun 16, 2023
1 parent 921abbb commit 62f4dab
Showing 1 changed file with 31 additions and 13 deletions.
44 changes: 31 additions & 13 deletions paper/paper.md
Original file line number Diff line number Diff line change
Expand Up @@ -96,7 +96,9 @@ seismological and geodynamic software, including: Mineos [@Masters:2011],
AxiSEM [@NissenMeyer:2014] and
ASPECT [@Kronbichler:2012;@aspect-doi-v2.4.0;@aspectmanual]

The project also includes a tutorial, a large collection of annotated examples,
The project also includes a multipart tutorial
(\url{https://burnman.readthedocs.io/en/latest/tutorial.html}),
a large collection of annotated examples,
an extensive suite of unit tests and benchmarks, and
a directory containing user-contributed code from published papers.
Use of the code requires only moderate Python skills, and its modular nature
Expand Down Expand Up @@ -131,7 +133,9 @@ access to many thermodynamic properties

![Heat capacity and bulk sound velocities of quartz through the alpha-beta
quartz transition as found in [@Stixrude:2011]. This transition is modelled
via a Landau-type model.
via a Landau-type model.
See \url{https://burnman.readthedocs.io/en/latest/tutorial_01_material_classes.html#}
for more details and the code required to make this plot.
\label{fig:qtzproperties}](figures/quartz_properties.png)

Several other object classes in `BurnMan` build on the endmember
Expand All @@ -148,6 +152,8 @@ model [@Jennings:2015], as output by `BurnMan`.
The excess Gibbs energy is useful for calculating phase equilibria by
Gibbs minimization, while the endmember activities can be used to
determine equilibrium via the equilibrium relations [@Holland:1998].
See \url{https://burnman.readthedocs.io/en/latest/tutorial_01_material_classes.html#}
for more details and the code required to make this plot.
\label{fig:garnetsolution}](figures/mg_ca_gt_properties.png)

`BurnMan` includes many higher level functions that use
Expand All @@ -164,6 +170,8 @@ AxiSEM [@NissenMeyer:2014] and Mineos [@Woodhouse:1988;@Masters:2011].
![Optimized fit of a PV equation of state [@Holland:2011] to
stishovite data [@Andrault:2003], including 95% confidence intervals
on both the volume and the bulk modulus.
See \url{https://burnman.readthedocs.io/en/latest/tutorial_04_fitting.html#}
for more details and the code required to make this plot.
\label{fig:fit}](figures/stishovite_fitting.png)

![A 1D profile through Planet Zog, a planet much like Earth, with an
Expand All @@ -180,17 +188,28 @@ with thermal boundary layers
The computed geotherm is compared to several from the literature
[@Stacey:1977;@Brown:1981;@Anderson:1982;@Alfe:2007;@Anzellini:2013].
The other properties are compared to the PREM [@Dziewonski:1981].
See \url{https://burnman.readthedocs.io/en/latest/tutorial_03_layers_and_planets.html}
for more details and the code required to make this plot.
\label{fig:zog}](figures/zog.png)

`BurnMan` also provides many utility classes and functions, including
those required to undertake bulk and phase chemical calculations,
to aid preparation and analysis of laboratory experiments.
One example is a utility function, `fit_phase_proportions_to_bulk_composition()`,
that uses constrained least squares to estimate phase proportions
and their corresponding covariances. The fitting applies appropriate
non-negativity constraints (i.e. no phase can have a negative abundance
in the bulk). An example that uses real
experimental data [@Bertka:1997] is shown in \autoref{fig:mars_fit}.
The `Composition` class provides a high level framework to
convert between mass, molar, and elemental compositions, convert
to different component systems, and add or subtract chemical
components (see
\url{https://burnman.readthedocs.io/en/latest/tutorial_02_composition_class.html#}).
The utility functions `fit_composition_to_solution()` and
`fit_phase_proportions_to_bulk_composition()`
use weighted constrained least squares to estimate endmember or
phase proportions and their corresponding covariances, given a bulk composition.
The fitting functions apply appropriate
non-negativity constraints
(i.e. that no species can have negative proportions on a site,
and that no phase can have a negative abundance
in the bulk). An example of `fit_phase_proportions_to_bulk_composition()`
that uses real experimental data [@Bertka:1997] is shown in \autoref{fig:mars_fit}.
Loss of an independent component from the bulk composition
can be tested by adding another phase with the composition of
that component (e.g. Fe) and checking that the amount of that phase
Expand All @@ -202,17 +221,14 @@ $$C_{im} = (A_{ji} K^{-1}_{jk} A_{km})^{-1}.$$
The weighted residuals are calculated
using the phase proportions $x$ and the bulk composition $b$:
$$\chi^2 = (K^{-0.5}_{ij} A_{jk} x_k - K^{-0.5}_{ik} b_k)(K^{-0.5}_{ip} A_{pq} x_q - K^{-0.5}_{iq} b_q).$$
A related function is `fit_composition_to_solution()`,
that uses weighted constrained least squares to fit a phase composition
(calculated, for example, by EPMA) to a solution model. In this case,
non-negativity constraints are applied such that no site may have a
negative species occupancy.

![Mineral phase proportions in the mantle of Mars, estimated by using
the method of constrained least squares on high pressure experimental
data [@Bertka:1997]. Weighted residuals
(misfits) are also shown, indicating that the majority of experimental
run products are consistent with the reported starting composition.
See \url{https://burnman.readthedocs.io/en/latest/tutorial_04_fitting.html#}
for more details and the code required to make this plot.
\label{fig:mars_fit}](figures/fit_mars_experiments.png)

`BurnMan` does not attempt to replicate Gibbs minimization codes,
Expand All @@ -237,6 +253,8 @@ The equilibrate function is similar to that implemented in THERMOCALC
![The olivine phase diagram at three different temperatures as computed
using the equilibrate routines in `BurnMan`. The solution model properties
are taken from the literature [@Stixrude:2011].
See \url{https://burnman.readthedocs.io/en/latest/tutorial_05_equilibrium.html#}
for more details and the code required to make this plot.
\label{fig:eqm}](figures/olivine_equilibrium.png)

The features used in `BurnMan` are documented in the codebase
Expand Down

0 comments on commit 62f4dab

Please sign in to comment.