There is a newer version of the record available.

Published January 8, 2024 | Version 1.3.0
Software Open

FEniCS-full-Stokes

  • 1. Kiel University

Description

This Python 3 source code solves the full-Stokes equations with different solvers and step size controls.

We solve the full-Stokes equations with different algorithms and test these with the experiment ISMIP-HOM B, see (Pattyn et al.; Benchmark experiments for higher-order and full-Stokes ice sheet models (ISMIP-HOM; 2008; The Cryosphere). The program allows one to choose between Armijo step sizes, exact step sizes, and constant step sizes; the Picard iteration and the Newton iteration; the functional and the residual norm as a minimization term; and an experiment in two and three dimensions. A combination of exact step sizes with the residual norm as the minimization term is not possible as the exact step sizes rely on a convex function as the minimization term. An executable example with comments is in examples/run_fullStokes.py. In this example are written comments on how to switch between algorithms.

This source code relies on FEniCS https://fenicsproject.org/download/archive/ version 2019.1.0. FEniCS allows us to formulate the problem in the variational formulation. The use of Finite Elements is implemented by FEniCS. We only consider an iterative solver to solve the nonlinear full-Stokes equations.

Notes

New in this version:

  • Added example with different delta values
  • Added a time dependent experiment
  • Added a divergence-Term to the functional. This is needed for initial guesses that are not divergence-free. (For example, in time-dependent simulations.)
  • Added example with different resolutions

Files

solvers_full_Stokes_equations_v1_3_0.zip

Files (95.5 MB)

Name Size Download all
md5:0c6824db4852362ac611cf8880db69d1
95.5 MB Preview Download