This book gives a concise and gentle introduction to finite element programming in Python based on the popular FEniCS software library. The library delivers high performance since FEniCS automatically delegates compute-intensive tasks to C++ by help of code generation. We show in detail how to write finite element solvers for the Poisson equation, the time-dependent diffusion equation, the equations of elasticity, and the Navier–Stokes equations, in heterogeneous media and with different types of boundary conditions.
This document is also available in PDF and Sphinx web format.