Introduction to Finite Element Modelling in Geosciences
Spring Semester 2020



Lecturers:   Antoine Billy Rozel (antoine.rozel@erdw.ethz.ch)
                   Patrick Sanan (patrick.sanan@erdw.ethz.ch)


Location:    ETH Zentrum
                   The class will happen on zoom. Instructions will be given by email


Dates:         July 6th-10th, 2020
Schedule:   9:00-12:00   (lunch)   13:30-17:00


Objectives:  
Learn how to program the finite element method and apply it to equations
relevant for modelling geodynamic processes. The course is given in the
form of a series of MATLAB exercises, with an introduction of the relevant
theory. The emphasis is on practical exercises, with students obtaining
knowledge of how to write their own finite element codes.

Assessment:
The best way to ensure a mark of 6.0 is to write a 2D Stokes solver and
use it to solve a geological problem - refer to PDF below for a more
detailed break-down of the requirements.

** Requirements for assessment (2020) **

Course notes:
ALL THEORY, EXAMPLES AND EXERCISES ARE IN THIS DOCUMENT (PDF)

Prerequisites:
Basic knowledge of MATLAB, linear algebra and partial differential equations.
If you are new to MATLAB, or wish to revise the basic matrix/vector operations,
please refer to Appendix A within the notes above.

Program:
0: Motivation (presentation)

1: Basic FE principles (presentation)
  Additional notes about integration by parts - see Appendix B
  Additional notes about weak forms - see Chapter 6
  Supplementary presentation - "Basics of the FE Method", B. Kaus, 2011
  Short tips on programming

2: Programming the FEM in 1D

Please use this code!

3: Numerical integration (presentation)

  Additional notes - tabulated quadrature rules (Kwon & Bang)

4: Concept summary (presentation)

5: From 1D to 2D: The diffusion equation (presentation)

   Additional notes - quadratic shape functions
   Matlab example: Visualization routines for 2D structured meshes (source)

6: Code verification (presentation)

   Matlab example: Solves 1D diffusion equation with manufactured RHS (source)
   Matlab example: Computes the order of accuracy from L2 error measures (source)
   Python example: Symbolically compute (manufacture) the RHS for the 1D diffusion problem via MMS (source)

7: 2D Elasticity
(presentation)

8: 2D Stokes flow (presentation)

Resources:
Numerical modelling of rock deformation (Stefan Schmalholz, 2009)
FEM-BEM notes
The Finite Element Method, Hughes (2000)
The Finite Element Method, vol. 1, Zienkiewicz and Taylor (2000)
Finite Elements and Fast Iterative Solvers, Elman, Silvester & Wathan (2005)