DGFEM
This subpackage contains the discontinuous Galerkin finite element solvers. Currently, we have the two-dimensional code in place and running as intended. Please click on the module to see all the details. There are a few things to note; these are discussed in the remainder of this description.
What does the solver do theoretically?
This solver closely follows the methodology of Cangiani et al. [^1]. I.e. solves the problem of the form;
The variational/weak form of this equation is derived, and a discrete form is found. This converts to the problem; Find \(u_h\in\mathbb{V}_p\) such that
where,
and
What practical things do I need to know?
There are several practical notes to make here. The code is written to be readable to all users. This allows learning and adaptability to be a focus. Additionally, the code is fully vectorised. This allows speed and efficiency.
There are some limitations and benefits to this:
The solver is only able to support Dirichlet boundary conditions.
It can accept any geometry and polynomial degree (\(>=1\)).
The coefficients must be
numbacompatible.numbaallows the coefficients to be calculated rapidly, especially as they are vector-valued themselves. Additionally, complicated source terms are commonplace in DGFEM; this negates some of that cost.
There are several more benefits and limitations, but these are function-specific and are explained in the relevant docstrings/documentation.