 v0.10.0
Tutorials

The tutorials contain a number of basic programs that are built on top of each other. Those with the full source code has the following structure

1. Introduction: Problem being solved, mathematical equations and derivations leading to finite element implementation
2. Implementation: Detailed explanation of the source code where tasks are separated in different functions
3. Results: How to run the program, output, visualisation, interpretation and comments, possible extensions.
4. Plain program: Full source code without extended comments

The source code and corresponding binary files of the tutorials are located at the following directories when you install MoFEM with developer version Installation

• Source code: $HOME/mofem_install/mofem-cephas/mofem/users_modules/tutorials • Binary files (build directory): $HOME/mofem_install/um/build_release/tutorials

Each tutorial in this page includes code name and keywords for quick reference and search within the browser.

Note
You do not need to go through all the tutorials in the order they are listed in this page before jumping into the topic in which you are interested. However, we do recommend you to have a look at the first few tutorials solving scalar-field problems to have a general idea how the finite element implementation is done in MoFEM. We also make a recommendation at the beginning of each tutorial regarding which tutorial(s) you should read (prerequisites) before continuing with the one you are most excited about.

Note
The tutorials are under development. Send us your feedback on Q&A regarding the tutorials that already done and the missing ones that you most prefer to see.

# Fundamentals

 MoFEM Interfaces Brief introduction about MoFEM interfaces which enable users to implement the codes with different level of complexity. Keywords: Hierarchical approximation Introduce elementary concepts of the Finite Element Method (FEM) with hierarchical shape functions and their implementation in MoFEM Keywords: Hierarchical approximation fun-0: Hello world Creating Simple problem, and pushing operators to pipelines Keywords: UDOs, pipelines fun-1: Integration on finite element mesh Numerical integration is essential for most of the numerical methods employed to solve partial differential equations (PDEs) Keywords: UDOs and integration

# Mesh creation

 Create a MoFEM-compatible 2D mesh from Gmsh This document shows how to create a MoFEM-compatible 2D input mesh from Gmsh Keywords: Gmsh, block definition, config file, read_med Create a MoFEM-compatible 3D mesh from Gmsh This document shows how to create a MoFEM-compatible 3D input mesh from Gmsh Keywords: Gmsh, block definition, config file, read_med

# Scalar-field problems

 SCL-0: Least square approximaton Solve the least square problem to approximate scalar function Keywords: Simple Interface, KSP solver, mofem_part, mbconvert, 3D extension SCL-1: Poisson's equation (homogeneous BC) Solve the Poisson's equation with zero value boundary conditions Keywords: Simple Interface, KSP solver, mofem_part, mbconvert, 3D extension SCL-2: Poisson's equation (non-homogeneous BC) An expansion of previous tutorial to cover non-homogeneous (non-zero value) boundary condition of Poisson's equation Keywords: Least square approximation SCL-3: Poisson's equation (Lagrange multiplier) Solve the Poisson's equation using Lagrange multiplier for the non-homogeneous boundary condition Keywords: PCFIELDSPLIT block solver SCL-4: Nonlinear Poisson's equation Solve nonlinear Poisson's equation using Newton iterative scheme Keywords: SNES solver SCL-5: Minimal surface equation A variant of the nonlinear Poisson's equation Keywords: SNES solver SCL-6: Heat equation This is the first tutorial to solve a time-dependent problem with first-order time derivative Keywords: TS solver, implicit scheme SCL-7: Wave equation Time-dependent problem with second-order time derivative Keywords: TS solver, implicit scheme SCL-8: Radiation boundary conditions Nonlinear problem at the boundary Keywords: axisymmetric problem, linearisation

# Problems with complex variable fields

 CLX-0: Hemholtz problem Hemholtz problem for acoustics Keywords: Complex variable, Linear Solver

# Vector-field problems

 VEC-0: Linear elasticity Linear elastic Keywords: Hooke equation VEC-1: Eigen elastic Eigen elastic Keywords: Eigen values, SLEP VEC-2: Dynamic elastic Dynamic elastic Keywords: Time dependent problem VEC-3: Nonlinear dynamic elastic Nonlinear elastic Keywords:

# Mixed field problems

 MIX-0: Mix poisson equation A mixed problem Keywords: H-div space

# Data driven problems

 DD-0: Tranport data driven Data driven for transport or heat conduction problems Keywords: Scalar problem

# Maxwell problems

 MAX-0: Magnetostatics Magnetostatics Keywords: MAX-1: Lorenz force Lorenz force Keywords: