v0.14.0
MoFEM UKACM 2021 School: "Weak form" in many flavours. Design and sustainable code development

Introduction

In this course we will go through the theory of finite elements, approximation methods, and implementation techniques, to solve spectrum of linear/nonlinear partial differential equations (PDEs). The first part of the school contains introduction about MoFEM's code design, overview of heterogeneous and hierarchical basis and explains concept behind pipelines. We show, step by step how by stacking together UDOs starting with simple problems, finite element solver can be extended. We start with a classical Poisson's equation, where basics are introduced. The following linear acoustics example demonstrates solving problems with multiple fields. Subsequently, we explain implementation of vector valued problems on an example of linear elasticity, further extended to a nonlinear case. Finally, a mixed problem is built by composition of simple blocks. Moreover, we exploit the MoFEM's advanced capabilities of using various spaces, heterogeneous and adaptive approximation basis. These examples, demonstrate how each component can be implemented independently, simultaneously (in parallel), by a group of researchers or developers, tested independently, and then composed together into one single pipeline of operators.

Poisson problem

Talk on the Poisson problem in MoFEM explains:

  • general structure of a program developed using MoFEM
  • idea of Simple Interface in MoFEM and how to use it
  • idea of Domain element in MoFEM and how to use it
  • process of implementing User Data Operators (UDOs) to calculate and assemble stiffness matrix and force vector
  • how to push the developed UDOs to the Pipeline
  • a way to handle homogeneous boundary condition in MoFEM
  • utilisation of tools to convert outputs (MOAB) and visualise them (Paraview)

For more details see tutorial SCL-1: Poisson's equation (homogeneous BC).

Linear acoustics

Talk on the linear acoustics implementation in MoFEM at the UKACM School 2021. In this tutorial you will learn how to:

  • Solve complex fields problems
  • Deal with two fields in MoFEM
  • Push Forms Integrators into the pipelines

For more details, see tutorial CLX-0: Helmholtz problem.

Elastic problem

Talk on the elasticity problem in MoFEM finite element library at the UKACM School 2021 includes:

  • Presentation of the weak form for elasticity
  • Implementation of vector valued problems in MoFEM
  • Introduction to nonlinear problems based on Hencky material
  • Methods for verifying tangent stiffness matrix

The full tutorials for linear and nonlinear case with source code dissections can be found in tutorial VEC-0: Linear elasticity and VEC-2: VEC-2: Nonlinear elastic.

Mixed Finite Elements

Talk on the mixed finite element formulation at the UKACM School 2021 includes:

  • Motivation for using mixed problem formulation
  • Preliminaries for function spaces: \(L^2\), \(H^1\), \(H(\textrm{div})\) and \(H(\textrm{curl})\)
  • Derivation of the mixed weak form for the Poisson equation
  • Implementation of the mixed weak form and error indicators
  • Convergence analysis for p-adaptive refinement
  • Conclusions and further reading

For more details, see tutorial MIX-0: Mixed formulation of Poisson equation.

Additional materials

PDF files of the presentations can be found here.