|
Galeri Development
|
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
"galeri/data/Square.grid". The solution looks like:
LaplaceCircle: Creates a matrix corresponding to the finite element discretization of the Laplace problem
"galeri/data/Circle.grid". The solution looks like:
LaplaceSquare: Creates a matrix corresponding to the finite element discretization of the Laplace problem
"galeri/data/Square.grid". The solution looks like:
LaplaceSquareInSquare: Creates a matrix corresponding to the finite element discretization of the Laplace problem
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: