Skip to main content
Ctrl+K
Logo image
  • The FEniCSx tutorial

Introduction

  • An overview of the FEniCS Project
  • Changelog

Fundamentals

  • Solving the Poisson equation
    • Implementation
  • The Poisson problem with complex numbers
  • Weak imposition of Dirichlet conditions for the Poisson problem
  • Deflection of a membrane
    • Implementation
    • Using Paraview for visualization

A Gallery of finite element solvers

  • A Gallery of finite element solvers
  • The heat equation
    • Diffusion of a Gaussian function
    • A known analytical solution
  • A nonlinear Poisson equation
    • Implementation
  • The equations of linear elasticity
    • Implementation
    • Scaling
  • The Navier-Stokes equations
    • Test problem 1: Channel flow (Poiseuille flow)
    • Test problem 2: Flow past a cylinder (DFG 2D-3 benchmark)
  • Hyperelasticity

Subdomains and boundary conditions

  • Combining Dirichlet and Neumann conditions
  • Setting multiple Dirichlet condition
  • Defining subdomains for different materials
  • Setting multiple Dirichlet, Neumann, and Robin conditions
  • Component-wise Dirichlet BC
  • Electromagnetics example

Improving your FEniCSx code

  • Solver configuration
  • JIT options and visualization using Pandas
  • Error control: Computing convergence rates
  • Custom Newton solvers
  • Repository
  • Suggest edit
  • Open issue
  • .md

A Gallery of finite element solvers

A Gallery of finite element solvers#

The goal of this chapter is to demonstrate how a range of important PDEs from science and engineering can be quickly solved with a few lines of DOLFINx code. We will start with the heat equation, then continue with the non-linear Poisson equation, the equations for linear elasticity, the Navier-Stokes equations, and finally look at how to solve systems of nonlinear advection-diffusion-reaction equations. These problems illustrate how to solve time-dependent problems, non-linear problems, vector-values problems and systems of PDEs. For each problem, we derive the variational formulation and express the problem in Python in a way that closely resembels the mathematics.

previous

Using Paraview for visualization

next

The heat equation

By Jørgen S. Dokken

© Copyright 2022.

Last updated on Mar 27, 2023.

This webpage is an adaptation of The FEniCS tutorial and is distributed under the terms of the Creative Commons Attribution 4.0 International License which permits use, duplication, adaptation, distribution and reproduction in any medium or format, as long as you give appropriate credit to the original author(s) and the source, provide a link to the Creative Commons license and indicate if changes were made.