Introduction to Finite Element Method

This lecture covers theory in slides 19 from page 1 to page 59.

Reading Material

Five steps of the finite element method

  • This video presents an overview of the five logical steps in the mathematical recipe that makes up the finite element method.
  • This video aims to give an overview of the steps we will learn about in later videos.
  • Covers: slides 19 (pages 2-3)

A simple problem for learning finite element method by example

  • This video presents a simple PDE problem that we will use later to learn the five steps of the finite element method recipe.
  • The aim is to understand terms such as governing equations, and strong forms, and build intuition about what type of unknown functions are solutions to our problem.
  • Covers: slides 19 (page 4)

Step 1 how to rewrite into a volume integral

  • This video explains how a trial function is used to rewrite the original partial differential equation into a volume integral form which is mathematically equivalent, meaning it has the same solution as the original problem.
  • The aim is to learn how trial functions enable one to convert a problem with multiple equations into a single scalar equation that is equivalent to the original problem. The key to this is to learn how trial functions work as masks on the domain to extract boundary and interior as needed.
  • Covers: slides 19 (page 4)

Step 2 how to apply integration by parts

  • This video explains how to rewrite the original volume integral by using integration by parts.
  • This video aims to learn that integration by parts reduced the differentiability requirement for the unknown y function and how the trial functions are affected by this.
  • Covers: slides 19 (pages 9-10)

Step 3 how to create an approximation

  • This video shows how the shape functions are used to create an interpolating approximating function and outline the linear 1D shape function known as the hat function.
  • The aim is to understand how approximations are used in the finite element method and to be able to define the hat-function and computational mesh.
  • Test yourself: Is it a problem that shape functions are non-smooth at the discrete x-values (the mesh nodes)?
  • Covers: slides 19 (pages 11-16)

Step 4 choosing the trial function

  • This video shows how to use the Galerkin assumption to define the trial function and how the substitution of this specific trial function results in a final linear system.
  • The aim is to learn how to use the Galerkin method to reuse shape functions and derive a discrete system.
  • Covers: slides 19 (pages 17-19)

Step 5 Compute a solution

  • This video shows how all pieces come together into a linear system that can be solved using your favourite solver.
  • The aim is to show that one needs to add boundary conditions before solving the discrete problem.
  • Covers: slides 19 (pages 20-21)

Introduction to local shape functions and elements

  • This video introduces the idea of local shape functions and the assembly process.
  • Test yourself: Obviously, the dimensionality of the integral with global shape functions does not match the dimensionality of the local shape functions are not the same. Hence, the main equation in this video is mathematical incorrect but intuitively correct. Can you explain how to fix the "math" such that the equation is correct, in other words, what went wrong?
  • Covers: slides 19 (pages 27-31)

Elements from piecewise continuous integrals

  • This video explains how the global setting is connected to the local setting using the property of rewriting the global integral into a sum of piecewise continuous integrals.
  • The aim is to learn that the non-smoothness of global shape functions at discrete nodes is not an issue as this vanishes when using the local shape functions.
  • Covers: slides 19 (pages 30-31)

Redoing simple problems with local shape functions

  • This video shows how the local linear hat functions are substituted to derive a closed-form solution for the local K matrix of the simple test problem.
  • The aim is to show how the local elements are related to the local K matrix's dimensionality.
  • Covers: slides 19 (page 30)

A 2D problem and its computational mesh and shape functions

  • This video presents a 2D problem that we will use the FEM method on later. It defines important concepts and notations that will be reused in later videos. In particular, the ideas of a triangular computational mesh are presented and local shape functions for linear triangle elements are derived.
  • The aim is to learn how to extend the ideas of the 1D hat shape functions into the equivalent 2D concept for a triangle mesh.
  • Covers: slides 19 (pages 37-45)

Computing the value and derivative of local shape functions in 2D

  • This video goes into the details of how to compute the value of the local shape functions for a linear triangular element as well as their derivatives.
  • The aim is to learn the basic formulas that are needed later when we apply the finite element method to our 2D problem.
  • Covers: slides 19 (pages 44-46)

Getting derivatives of shape functions from geometry

  • This video outlines a different approach for deriving equations for the shape function derivatives.
  • The aim is to obtain a geometric intuition about gradients of shape functions.
  • Covers: slides 19 (pages 47-51)

Applying the finite element method to a 2D scalar problem

  • This video shows how to explain local shape functions and Galerkin's assumption to quickly derive a closed-form solution for computing local element matrices.
  • The video aims to demonstrate that as soon as computational mesh, shape, and trial functions are chosen the finite element method essentially boils down to doing integration by parts before evaluation/deriving local element matrices/vectors.
  • Covers: slides 19 (pages 52-56)

Finite element assembly process using scattering approach

  • This video demonstrates the assembly process for a 2D Poisson problem using local element matrices scattering into the global matrix.
  • The video aims to learn how a face-indexed array combined with an array of local element matrices can be used for efficient local-to-global indexing in the assembly process, and how the mesh connectivity and memory access patterns in the global matrix are related.
  • Test yourself: Consider how to parallelize the scatter-assembly approach. What difficulties can you see with this approach (Hint: think about race conditions and load-balancing).

Block indexing in the assembly process

  • This video shows how to efficiently index into an array of local element matrices.
  • The aim is to learn how to find the block size of element matrices and compute indexing correctly.

Pseudocode for the assembly process

  • This video demonstrates how "scattering" and block indexing are combined into a pseudo-code algorithm for the assembly process. A gathering approach is sketched too.
  • The aim is to learn what data structures and computations to use in implementing a finite element assembly process using a two-pass scattering approach and understands parallelization issues.

Implicit assembly process

  • This video shows how to avoid doing an assembly process and instead use an implicit representation of the global matrix.
  • The aim is to learn how to use the implicit representation to efficiently compute matrix-vector products in an iterative solver, and understand the pros and cons of applying direction methods vs iterative methods. Be able to explain the relationship to a gathering assembly process.
  • Self-test: There is an index typo when the pseudocode is written up, can you spot it? (answer, Ke(l,i) should be Ke(l,0) and similar)

The assembly process of higher dimensional problems

  • This video shows what happens when the unknown function in the finite element method is a vector function and not a scalar. Elastic forces are used as a working example.
  • The aim is to learn how block size is affected for higher-dimensional problems and how to use interlaced vs non-interlaced memory patterns of unknown variables.

Process of elimination to reduce the size of the system of equations

  • This video illustrates how boundary conditions after an assembly can be used to eliminate boundary nodes in the final global system.
  • The aim is to learn how to use boundary conditions in the assembly process.

Algorithm for modified assembly to include boundary conditions

  • This video shows how the elimination of boundary values is related to modifying the assembled global matrices/vectors such that boundary conditions are included. It is shown how "full form", "reduced form" and "extended reduced forms" are related to each other.
  • The aim is to learn the algorithm for modifying an assembled system to handle boundary conditions and provide an overview of different variations of the modification algorithm.

Implicit handling of boundary conditions in reduced forms

  • This video shows how to extend the previous algorithm that used an implicit representation of the global to evaluate a matrix-vector product to include boundary conditions too.
  • The aim is to learn how the matrix-vector algorithm handles boundary conditions using existing implicit function evaluation and index masks.