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
Neumann boundary conditions can be imposed with minimal changes to the code. The computational domain 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 http://www.ann.jussieu.fr/~frey/logiciels/medit.html 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.
AdvDiffSquare:
Creates a matrix corresponding to the finite element discretization of the advection-diffusion problem
where , , and if and . The unstructured grid is obtained with MATLAB, and it is composed by triangles. The grid is composed by 5248 triangles, 2705 nodes, and 160 boundary faces, and can be found in file "galeri/data/Square.grid"
. The solution looks like:
LaplaceCircle:
Creates a matrix corresponding to the finite element discretization of the Laplace problem
The unstructured grid is obtained with MATLAB, and it is composed by triangles. The grid is composed by 4128 triangles, 2129 nodes, and can be found in file "galeri/data/Circle.grid"
. The solution looks like:
LaplaceSquare:
Creates a matrix corresponding to the finite element discretization of the Laplace problem
The unstructured grid is obtained with MATLAB, and it is composed by triangles. The grid is composed by 5248 triangles, 2705 nodes, and 160 boundary faces, and can be found in file "galeri/data/Square.grid"
. The solution looks like:
LaplaceSquareInSquare:
Creates a matrix corresponding to the finite element discretization of the Laplace problem
and on the exterior square, and on the interior square. The unstructured grid is obtained with MATLAB, and it is composed by triangles. The tag of the external boundary is 0
, while the one of the internal boundary is 1
. The grid is composed by 4800 triangles, 2516 nodes, and 232 boundary faces, and can be found in file "galeri/data/SquareInSquare.grid"
. The solution looks like: