dolfin_dg
provides utility functions for the automatic generation of nonlinear
DG FEM formulations using UFL.
dolfin_dg
derives its name from original development with the DOLFIN
component of the FEniCS project. However, the core components of dolfin_dg
now
solely depend on UFL.
dolfin_dg
has been successfully employed with:
Consider the nonlinear conservation equation
$$ \nabla \cdot \mathcal{L}(u; \nabla u) = f $$
Here $\mathcal{L}(\cdot; \cdot)$ is a semilinear operator (nonlinear in the first argument and linear in the second). The semilinear residual weak formulation, subject to appropriate boundary conditions, reads: find $u \in V$ such that
$$ \mathcal{N}(u; v) = \intD \mathcal{L}(u; \nabla u) : \nabla v \; \mathrm{d}x - \int{\partial D} \mathcal{L}(u; \nabla u) \cdot n \cdot v \; \mathrm{d} s - \int_D f \cdot v \; \mathrm{d} x \equiv 0 \quad \forall v \in V. $$
The DG FEM formulation of the above equation is notoriously verbose to define.
Programming the code to compute the DG FEM approximation $u_h \in V_h$ is a large
task. dolfin_dg
provides utility functions for the automatic formulation of
the DG FEM discretisation of the weak formulation. These functions work with
UFL to facilitate simple implementation and efficient computation of the DG
approximation of nonlinear FEM problems.
Paul Houston and Nathan Sime,
Automatic symbolic computation for discontinuous Galerkin finite element methods,
SIAM Journal on Scientific Computing, 2018, 40(3), C327–C357
(arXiv)
Nathan Sime and Cian R. Wilson,
Automatic weak imposition of free slip boundary conditions via Nitsche's method: application to
nonlinear problems in geodynamics
(arXiv)
dolfin_dg.dolfinx
and the dolfinx
demos: the core components of the
FEniCSx project.dolfin_dg.dolfin
and the dolfin
demos: the core components of the
legacy FEniCS project.
dolfin
,
this LEoPart fork is required.firedrake
support the core components of the Firedrake
projectNavigate to the dolfin_dg
directory and install with
pip install .
dolfin
docker image with LEoPart forkA docker image facilitating compilation and execution of dolfin_dg
examples
with the legacy version of dolfin
and leopart
is available:
docker run -it quay.io/natesime/dolfin_dg:master
GNU LGPL, version 3.