Finite elements are discrete approximation schemes for partial differential equations defined on a finite domain $\Omega$. The basic idea is to split $\Omega$ into simple subsets $S_i$, often simplices, and approximate the exact solution by a linear combination of simple functions like polynomials with support restricted to one $S_i$ each. Therefore, the problem is reduced to an approximation problem on a finite dimensional vector space of functions.
Splines? of a fixed order are examples of such a finite dimensional function space. Unlike splines? however, the basis functions in general finite element methods are allowed to overlap, and there are no a priori matching conditions on basis functions of elements with common borders.
The condition that can tell what the best approximation in such a finite dimensional function space does look like depends on the problem under study.
The literature on finite elements is immense, since this is a technique that is widely used in engineering. This page is a stub and is intended to serve as a notepad for references and aspects that are of special interest for climate models.
Finite element methods lead to special problems in numerical linear algebra.
When a higher accuracy is needed, there are three ways how a finite element approximation can be tuned:
h-refinement: One chooses smaller grid cells. Since the step size resp. the average size of a grid cell is commonly denoted by h, this kind of refinement is called h-refinement.
r-refinement: One chooses smaller grid cells in specific parts of the domain only, where a higher resolution is needed. There are different ways to identify these regions.
p-refinement: One chooses a higher order approximation per grid cell. If the basis functions are piecewise polynomial, this results in choosing higher order polynomials, which is where the p in the name comes from. A p-refinement therefore corresponds to choosing more approximation functions as explained at spectral methods.
Combining h- and p-refinement leads to hp finite elements.
In case the approximation using finite elements results in a system of linear equations
for the unknown approximation coefficients $x$, one commonly calls $A$ the stiffness matrix and $b$ the load vector.
Tim van Beek: I’m sure that “stiffness” and “load” come from an application to solid state physics, but don’t know which one.
This naming convention comes from civil engineering applications, where the method was first applied as matrix analysis of structures.
Nikishkov uses the Java 3D library to generate three dimensional animations of stress levels in solid state objects.
List of FEM solvers:
Open source solvers: