| Basic techniques | Step-1 | Creating a grid. A simple way to write it to a file |
| Step-2 | Degrees of freedom | |
| Step-3 | Solve the Laplace equation | |
| Step-4 | Dimension independent programming, non-zero data | |
| Step-5 | Computing on uniformly refined meshes | |
| Step-6 | Adaptivity | |
| Step-7 | Evaluating errors | |
| Step-15 | Nonlinear problems, Newton's method | |
| Advanced techniques | Step-9, Step-28, Step-32, Step-44, Step-48 | Multithreading |
| Step-20, Step-21, Step-22, Step-31, Step-32, Step-43, Step-44 | Block solvers and preconditioners | |
| Step-31, Step-32, Step-33, Step-41, Step-43 | Using Trilinos | |
| Step-17, Step-18, Step-19, Step-40 | Parallelization via PETSc and MPI | |
| Step-32 | Parallelization via Trilinos and MPI | |
| Step-32, Step-40 | Parallelization on very large numbers of processors | |
| Step-19, Step-28, Step-29, Step-32, Step-33, Step-34, Step-35, Step-36, Step-44 | Input parameter handling | |
| Step-10, Step-11, Step-32 | Higher order mappings | |
| Step-6, Step-9, Step-14, Step-39 | Error indicators and estimators | |
| Step-15, Step-28, Step-31, Step-32, Step-33, Step-40, Step-43 | Transferring solutions across mesh refinement | |
| Step-12, Step-21, Step-39, Step-46 | Discontinuous Galerkin methods | |
| Step-27, Step-46 | hp finite elements | |
| Step-30 | Anisotropic refinement for DG finite element methods. | |
| Step-16, Step-31, Step-32, Step-39, Step-41, Step-43 | Multilevel preconditioners | |
| Step-33 | Computing Jacobians from residuals, automatic differentiation | |
| Step-32, Step-34, Step-38 | Boundary element methods, curved manifolds | |
| Step-45 | Periodic boundary conditions | |
| Step-37, Step-48 | Matrix-free methods | |
| Linear solver issues | Step-3 | Conjugate Gradient solver |
| Step-5 | Preconditioned CG solver | |
| Step-9 | BiCGStab | |
| Step-16, Step-31, Step-32, Step-37, Step-39, Step-41, Step-43 | Multilevel preconditioners | |
| Step-17, Step-18, Step-32, Step-40 | Parallel solvers | |
| Step-20, Step-21, Step-22, Step-31, Step-32, Step-43 | Block and Schur complement solvers | |
| Step-35 | Decoupled projection solvers | |
| Step-33, Step-41, Step-44 | Linear Newton systems from nonlinear equations | |
| Step-36 | Eigenvalue solvers | |
| Other equations | Step-7, Step-29 | Helmholtz equation |
| Step-8, Step-46 | Elasticity equations | |
| Step-15 | Minimal surface equation | |
| Step-18, Step-44 | Quasi-static elasticity equations | |
| Step-9, Step-21, Step-31, Step-32, Step-43 | Transport (advection) equations | |
| Step-33 | The nonlinear hyperbolic Euler system of compressible gas dynamics | |
| Step-20, Step-21, Step-43 | Mixed Laplace, Darcy, Porous media | |
| Step-22, Step-31, Step-32, Step-35, Step-46 | Stokes and incompressible Navier-Stokes flow | |
| Step-23, Step-24, Step-25, Step-48 | The wave equation, in linear and nonlinear variants | |
| Step-28 | A multigroup diffusion problem in neutron transport | |
| Step-34 | Irrotational flow | |
| Step-36 | An eigenspectrum problem | |
| Step-41 | The obstacle problem, a variational inequality | |
| Step-46 | Coupling different equations in different parts of the domain | |
| Vector problems | Step-8 | Elasticity equations |
| Step-20 | Mixed Laplace | |
| Step-21, Step-43 | Mixed Laplace plus an advection equation | |
| Step-22, Step-31, Step-32, Step-35 | Incompressible Stokes and Navier-Stokes flow | |
| Step-29 | A complex-valued Helmholtz problem | |
| Step-33 | The Euler equations of compressible gas dynamics | |
| Step-46 | Coupling different equations in different parts of the domain | |
| Time-dependent problems | Step-18, Step-44 | Quasi-static elasticity |
| Step-21, Step-43 | Porous media flow | |
| Step-23, Step-24, Step-25, Step-48 | The wave equation, in linear and nonlinear variants | |
| Step-31, Step-32 | Time dependent Stokes flow driven by buoyancy | |
| Step-33 | The Euler equations of compressible gas dynamics |