v0.14.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:

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

If you install MoFEM using either instructions in Installation with Docker - JupyterHub or the script provided in Installation with Spack (Scripts) the source code and corresponding binary files of the tutorials are located in the following directories:

- Source code:
`$HOME/mofem_install/mofem-cephas/mofem/users_modules/tutorials`

- Binary files (build directory):
`$HOME/mofem_install/mofem-cephas/mofem/users_modules/um-build-Release-5sehreo/tutorials/`

In the build directory described above, `5sehreo`

is the `hash`

of the particular build, and it may be different on your machine.

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.

Source code Description Jupyter Notebook

MoFEM Interfaces | Brief introduction about MoFEM interfaces which enable users to implement the codes with different level of complexity. | |

How to compile a program | Brief introduction about compiling MoFEM - Developer version | |

How to add a new module and program | Tutorial on adding a new MoFEM module (you might want to skip this tutorial for now and return after reading other tutorials) | |

FUN-0: Hello world | Creating Simple problem, and pushing operators to 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) | |

FUN-2: Hierarchical approximation | Introduce elementary concepts of the Finite Element Method (FEM) with hierarchical shape functions and their implementation in MoFEM |

MSH-1: Create a 2D mesh from Gmsh | This document shows how to create a MoFEM-compatible 2D input mesh from Gmsh | |

MSH-2: Create a 3D mesh from Gmsh | This document shows how to create a MoFEM-compatible 3D input mesh from Gmsh |

SCL-0: Least square approximaton | Solve the least square problem to approximate scalar function | |

| SCL-1: Poisson's equation (homogeneous BC) | Solve the Poisson's equation with zero value boundary conditions |

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 | |

SCL-3: Poisson's equation (Lagrange multiplier) | Solve the Poisson's equation using Lagrange multiplier for the non-homogeneous boundary condition | |

SCL-4: Nonlinear Poisson's equation | Solve nonlinear Poisson's equation using Newton iterative scheme | |

SCL-5: Minimal surface equation | A variant of the nonlinear Poisson's equation | |

SCL-6: Heat equation | This is the first tutorial to solve a time-dependent problem with first-order time derivative | |

SCL-7: Wave equation | Time-dependent problem with second-order time derivative | |

SCL-8: Radiation boundary conditions | Nonlinear problem at the boundary | |

SCL-9: Heat method | Finding geodesic distance with heat method | |

SCL-10: Photon diffusion | Photon diffusion equation | |

SCL-11: Discontinuous Galerkin for Poisson problem | Discontinuous Galerkin for Poisson problem |

CLX-0: Helmholtz problem | Helmholtz problem for acoustics |

VEC-0: Linear elasticity | Linear elasticity | |

VEC-1: Eigen elastic | Eigen elastic | |

VEC-2: Nonlinear elastic | Nonlinear elastic with Hencky material | |

VEC-3: Nonlinear dynamic elastic | Time-dependent nonlinear elastic (dynamics) | |

VEC-4: Shallow wave equation on sphere | Shallow wave equation on mainfold (atmospheric processes) | |

VEC-5: Phase field model and Navier-Stokes | Phase field model and Navier-Sokes equations | |

VEC-6: Discontinuous Galerkin for Kirchoff-Love Plate | Solving forth order eliptic equation describing plate bending |

MIX-0: Mixed formulation of Poisson equation | A mixed problem |

MIX-1: Retrive phase solving transport-of-intensity equation. | A mixed problem for transport intensity equation | |

MIX-2: Mixed formulation for incompressible elasticity | A mixed problem for incompressible elasticity |

MAX-0: Magnetostatics | Magnetostatics | |

MAX-1: Lorenz force | Lorenz force |

ADV-0: Plastic problem | Plasticity problem | |

ADV-1: Contact problem | Contact problem | |

ADV-2: Thermo-elastic example | Solve thermo-elasto-plastic probelm | |

ADV-3: DG Upwind for advection problem or level set | Upwind Discontinuous Galerkin for Level-Set | |

ADV-5: Seepage in elsatic body example | Seepgae problem in deformable porous media |

COR-0: Mixed formulation and integration on skeleton (h-adaptivity) | Mix formulation for transport problem | |

COR-1: Time dependent nonlinear mix formulation (unsaturated flow) | Mix formulation for capillary flow | |

COR-2: Solving the Poisson equation | Poison equation again with different implementations | |

COR-3: Implementing operators for the Poisson equation | Poison equation implementation of differentiation operators | |

COR-4: Using fieldsplit solver and DM sub problem. | Poison equation implementation of differentiation operators | |

COR-5: A nonlinear Poisson equation | Poison nonlinear equation again | |

COR-6: Solid elasticity | Older implementation of elastic problem | |

COR-7: Mixed formulation for incompressible elasticity | Older implementation of mixed elastic problem | |

COR-8: Implementation of spring element | Implementation of boundary element with springs | |

COR-9: Reaction-diffusion equation | Reaction-diffusion Fisher's equation | |

COR-10: Navier-Stokes equation | Navier-Stokes equations | |

COR-11: Mixed formulation of nonlinear elasticity | Mixed formulation for large strain elasticity |

MOD-0: Soap film spanned on wire | Soap film as an external module | |

VEC-7: Automatic Differentiation for Plasticity | Automatic differentiation for elato-plasticity |

Generated by Doxygen 1.8.17 and hosted at