This book offers a concise and gentle introduction to finite element programming in Python
based on the popular FEniCS software library. Using a series of examples including the Poisson
equation the equations of linear elasticity the incompressible Navier-Stokes equations and
systems of nonlinear advection-diffusion-reaction equations it guides readers through the
essential steps to quickly solving a PDE in FEniCS such as how to define a finite variational
problem how to set boundary conditions how to solve linear and nonlinear systems and how to
visualize solutions and structure finite element Python programs. This book is open access
under a CC BY license.