Galeri  Development
 All Classes Files Functions Variables Pages
The Finite Element Module

This file gives an overview of the finite element module of Galeri.

An alternative way to produce example matrices is to define a finite element problem. The Galeri package contains (in the Galeri::FiniteElement namespace) a set of classes that can be used to discretize scalar, second-order, symmetric and non-symmetric PDEs of type

\begin{eqnarray*} - \epsilon \Delta u + b \cdot \nabla u + \sigma u & = & f \mbox{ on } \Omega\\ & u = & g \mbox{ on } \partial \Omega \end{eqnarray*}

Neumann boundary conditions can be imposed with minimal changes to the code. The computational domain $\Omega$ must be a 2D or a 3D domain, discretized using triangles, quadrilaterals, tetrahedra or hexahedra. The code can be quite easily extended to tackle vector problems, using the same finite element space for all unknowns. Functions are provided to compute norms and to visualize the results.

The Galeri finite element code is based on a set of abstract classes:

The solution can be visualized using MEDIT (see web page for details and download).

Probably, the easiest way to understand the finite element module is to browse the examples; see 3D Laplacian and 2D Advection-diffusion. File How to deal with AbstractGrid Classes shows how to use the AbstractGrid class.

Examples of solutions are reported below.