Contents:

- Introduction to finite element methods
- Approximation of vectors
- Approximation of functions
- The least squares method (3)
- The projection (or Galerkin) method
- Example: linear approximation
- Implementation of the least squares method
- Perfect approximation
- Ill-conditioning
- Fourier series
- Orthogonal basis functions
- Numerical computations
- The interpolation (or collocation) method
- Lagrange polynomials

- Finite element basis functions (1)
- Elements and nodes
- The basis functions
- Example on piecewise quadratic finite element functions
- Example on piecewise linear finite element functions
- Example on piecewise cubic finite element basis functions
- Calculating the linear system
- Assembly of elementwise computations
- Mapping to a reference element
- Example: Integration over a reference element

- Implementation (1)
- Comparison of finite element and finite difference approximation
- A generalized element concept
- Numerical integration (1)
- Approximation of functions in 2D
- Finite elements in 2D and 3D
- Exercises (1)
- Exercise 1: Linear algebra refresher I
- Exercise 2: Linear algebra refresher II
- Exercise 3: Approximate a three-dimensional vector in a plane
- Exercise 4: Approximate the exponential function by power functions
- Exercise 5: Approximate the sine function by power functions
- Exercise 6: Approximate a steep function by sines
- Exercise 7: Animate the approximation of a steep function by sines
- Exercise 8: Fourier series as a least squares approximation
- Exercise 9: Approximate a steep function by Lagrange polynomials
- Exercise 10: Define nodes and elements
- Exercise 11: Define vertices, cells, and dof maps
- Exercise 12: Construct matrix sparsity patterns
- Exercise 13: Perform symbolic finite element computations
- Exercise 14: Approximate a steep function by P1 and P2 elements
- Exercise 15: Approximate a steep function by P3 and P4 elements
- Exercise 16: Investigate the approximation error in finite elements
- Exercise 17: Approximate a step function by finite elements
- Exercise 18: 2D approximation with orthogonal functions
- Exercise 19: Use the Trapezoidal rule and P1 elements
- Problem 20: Compare P1 elements and interpolation
- Exercise 21: Implement 3D computations with global basis functions
- Exercise 22: Use Simpson’s rule and P2 elements

- Basic principles for approximating differential equations
- Differential equation models
- Simple model problems
- Forming the residual
- The least squares method (4)
- The Galerkin method (1)
- The Method of Weighted Residuals
- Test and Trial Functions
- The collocation method (1)
- Examples on using the principles
- Integration by parts
- Boundary function (1)
- Abstract notation for variational formulations
- Variational problems and optimization of functionals

- Examples on variational formulations
- Computing with finite elements
- Boundary conditions: specified nonzero value
- Boundary conditions: specified derivative
- Implementation (4)
- Variational formulations in 2D and 3D
- Summary
- Time-dependent problems
- Discretization in time by a Forward Euler scheme
- Variational forms (1)
- Simplified notation for the solution at recent time levels
- Deriving the linear systems
- Computational algorithm
- Comparing P1 elements with the finite difference method
- Discretization in time by a Backward Euler scheme
- Dirichlet boundary conditions
- Example: Oscillating Dirichlet boundary condition
- Analysis of the discrete equations

- Systems of differential equations
- Exercises (2)
- Exercise 23: Refactor functions into a more general class
- Exercise 24: Compute the deflection of a cable with sine functions
- Exercise 25: Check integration by parts
- Exercise 26: Compute the deflection of a cable with 2 P1 elements
- Exercise 27: Compute the deflection of a cable with 1 P2 element
- Exercise 28: Compute the deflection of a cable with a step load
- Exercise 29: Show equivalence between linear systems
- Exercise 30: Compute with a non-uniform mesh
- Problem 31: Solve a 1D finite element problem by hand
- Exercise 32: Compare finite elements and differences for a radially symmetric Poisson equation
- Exercise 33: Compute with variable coefficients and P1 elements by hand
- Exercise 34: Solve a 2D Poisson equation using polynomials and sines
- Exercise 35: Analyze a Crank-Nicolson scheme for the diffusion equation