Skip to content

Tutorials

The diagram below illustrates the set of notebook tutorials available in G-ADOPT and how they relate to each other. These notebooks demonstrate how to use G-ADOPT to set up (forward and inverse) geodynamical simulations.

graph TD
  base[Base]

  subgraph adjoint[Adjoint]
  adjoint_forward[Forward] --> inverse[Inverse]
  end

  subgraph geometry[Geometry]
  cylindrical_2d[2D Cylindrical] --> spherical_3d[3D Spherical]
  end

  subgraph gplates[GPlates]
  gplates_global["Global GPlates"]
  end

  subgraph dimension[Dimension]
  cartesian_3d[3D Cartesian]
  end

  subgraph bcs[Boundary Conditions]
  free_surface[Free Surface]
  end

  subgraph compressibility[Compressibility]
  tala[TALA] --> ala[ALA] --> visualise_ala[ALA Nullspace]
  end

  subgraph rheology[Rheology]
  viscoplastic[Viscoplastic]
  end

  base --> dimension
  base --> compressibility
  base --> rheology
  base --> geometry
  base --> bcs
  base --> adjoint
  geometry --> gplates

  click base "mantle_convection/base_case"
  click tala "mantle_convection/2d_compressible_TALA"
  click ala "mantle_convection/2d_compressible_ALA"
  click visualise_ala "mantle_convection/visualise_ALA_p_nullspace"
  click viscoplastic "mantle_convection/viscoplastic_case"
  click cartesian_3d "mantle_convection/3d_cartesian"
  click cylindrical_2d "mantle_convection/2d_cylindrical"
  click spherical_3d "mantle_convection/3d_spherical"
  click gplates_global "mantle_convection/gplates_global"
  click adjoint_forward "mantle_convection/adjoint_forward"
  click inverse "mantle_convection/adjoint"
  click free_surface "mantle_convection/free_surface"

We start with the most basic problem — isoviscous, incompressible convection, in an enclosed 2-D Cartesian box (base) — and systematically build complexity, initially moving into more realistic physical approximations (compressibility — ALA, TALA; visco-plastic rheology), subsequently to multi-material simulations, and finally to different dimensions and to spherical shell geometries that are more representative of Earth's mantle.

These pages are all rendered from Jupyter notebooks included in the G-ADOPT source code. You can find them under the directory demos/.

To run these notebooks, you will need a working installation of Firedrake and G-ADOPT and a Jupyter kernel for Firedrake. See the install page for instructions.

Note that Firedrake includes its own tutorials to get you started. If you are not familiar with Firedrake, we strongly recommend that you start with their introductory tutorials.