MFEM Tutorial on AWS

August 22, 2024

MFEM on AWS

Welcome to the MFEM tutorial, part of the LLNL HPC Software Tutorials Series in collaboration with AWS.

MFEM is a modular parallel C++ library for finite element methods developed at CASC, LLNL with the help of the MFEM community worldwide.

The pages below provide a self-paced overview of MFEM and its use for scalable finite element discretizations and application development. You can follow along in your own Amazon EC2 instance or in a Local Docker Container  . No previous experience is necessary.

%%{init: { 'theme': 'base', 'themeVariables': { 'primaryColor': '#deebf7', 'primaryBorderColor': '#3182bd' }}}%% graph LR; A[fa:fa-play-circle Getting Started]; B[fa:fa-book Finite Element Basics]; C[fa:fa-gears Tour of MFEM Examples]; D[fa:fa-picture-o Meshing and Visualization]; E[fa:fa-tasks Solvers and Scalability]; F[fa:fa-rocket Further Steps]; A-->B; B-->C; B-->D; B-->E; C-->F; D-->F; E-->F; click A "start" click B "fem" click C "examples" click D "meshvis" click E "solvers" click F "further"

We recommend that you start with the Getting Started and Finite Element Basics lessons, and then, depending on your interests, pick some of the next 3 lessons: Tour of MFEM Examples, Meshing and Visualization, and Solvers and Scalability. The tutorial concludes with additional suggestions in the Further Steps page.


Getting Started

This is the first page you should visit to setup your tutorial environment. You will learn about:


Finite Element Basics

Once you have the tutorial environment working, visit this page to learn about the basics of the finite element method and its implementation in MFEM. The lesson covers:


Tour of MFEM Examples

This is an optional lesson where you can learn about MFEM's main features: support for high-order methods, adaptive mesh refinement, $H^1$, $H(curl)$, $H(div)$ and $L^2$ discretizations, through several of the examples included with the library:


Meshing and Visualization

This is an optional lesson that illustrates MFEM's support for external mesh generators, internal meshing tools, and external visualization tools. You will learn about:


Solvers and Scalability

This is an optional lesson that showcases MFEM's parallel scalability and support for efficient solvers and preconditioners. The lesson covers:


Further Steps

This is the final lesson with further activities, including: