GeoPart provides utility functions to complement the LEoPart library.
Further utility functions are provided to complement the LEoPart fork library facilitating compressible flows such as the anelastic liquid approximation.
GeoPart leverages LEoPart for:
- Pointwise divergence free finite element velocity solutions of the Stokes system by the hybrid discontinuous Galerkin (HDG) method.
- Exactly mass conserving projection methods for advection of fields.
- Solution of block local/global finite element (FE) problems found in HDG formulations by static condensation.
GeoPart provides:
- A collection of commonly used elements for the Stokes finite element (FE) system.
- Encapsulation of ℓ₂ and PDE-Constrained ℓ₂ projection of particle data by LEoPart.
- A suite of tests and demonstrations of optimal error convergence rates using exactly mass conserving methods in a geodynamics context.
GeoPart requires:
Follow the typical procedure:
cd geopart
python3 setup.py install --user
For extensive documentation regarding using FEniCS in a Docker environment see here
Acquire the stable FEniCS docker image quay.io/fenicsproject/stable:latest
.
Compile and install LEoPart
git clone https://bitbucket.org/nate-sime/leopart.git
cd leopart/source/cpp
cmake .
make
cd ../..
python3 setup.py install
Compile and install dolfin_dg
git clone https://bitbucket.org/nate-sime/dolfin_dg.git
cd dolfin_dg
python3 setup.py install
Compile and install geopart
git clone https://bitbucket.org/nate-sime/geopart.git
cd geopart
python3 setup.py install
N. Sime, J.M. Maljaars, C.R. Wilson and P.E. van Keken
An exactly mass conserving and pointwise divergence free velocity
method: application to compositional buoyancy driven flow problems in
geodynamics
Geochemisry, Geophysics, Geosystems, 2021
(ESSOAr)
N. Sime, C.R. Wilson and P.E. van Keken
A pointwise divergence free momentum method for fileds advected by tracers
using the compressible aneslatic liquid approximation
In preparation
Demonstrations of exact mass conservation and pointwise divergence flow are
available in demo/convergence/
.
The Rayleigh Taylor benchmark demonstration in available in demo/benchmark/rayleigh_taylor.py
Unit tests are available in test/unit/
LGPL-3.0