FEM2D_PROJECT_FUNCTION is a C++ program which projects a function W(X,Y), given as a formula, into a given finite element space of piecewise linear triangular elements.
The result is that the function W(x,y) is approximated by a finite element function U(x,y) formed using piecewise linear triangular elements.
The computational region is a rectangle, which is divided up into a mesh of triangles using a grid of NX by NY points. For node K at grid point (I,J) in the interior, the associated basis function Vk(x,y) is used to pose the equation:
Integral U(x,y) Vk(x,y) dx = Integral W(x,y) Vk(x,y) dx
while, for node K at grid point (I,J) on the boundary, the associated degree of freedom
is determined by the boundary condition
U(x,y) = ( W(x,y),
The conditions define a linear system for the coefficients in the finite element expansion of U(x,y):
U(x,y) = sum ( 1 <= K <= M*N) Uk * Vk(x,y)
The program computes these coefficients, compares U and W pointwise at the nodes, and computes the L2 norms of U, W and U-W.
The computer code and data files described and made available on this web page are distributed under the GNU LGPL license.
FEM is a data directory which contains a description and examples of files that describe a finite element model.
FEM_50 is a MATLAB program which implements a finite element calculation in just 50 lines of code.
FEM_50_HEAT is a MATLAB program which implements a finite element calculation specifically for the heat equation.
FEM_BASIS_T3_DISPLAY is a MATLAB program which displays a basis function associated with a linear triangle ("T3") mesh.
FEM_BASIS_T6_DISPLAY is a MATLAB program which displays a basis function associated with a quadratic triangle ("T6") mesh.
FEM_IO is a C++ library which reads or writes the node, element and data files that define a finite element model.
FEM_TO_TEC is a FORTRAN90 program which can convert an FEM model into a TEC graphics file.
FEM1D, is a C++ program which applies the finite element method, with piecewise linear basis functions, to a linear two point boundary value problem;
FEM1D_ADAPTIVE is a C++ program which applies the finite element method to a linear two point boundary value problem in a 1D region, using adaptive refinement to improve the solution.
FEM1D_NONLINEAR is a C++ program which applies the finite element method to a nonlinear two point boundary value problem in a 1D region.
FEM1D_PMETHOD is a C++ program which applies the p-method version of the finite element method to a linear two point boundary value problem in a 1D region.
FEM1D_PROJECT is a C++ program which projects data into a finite element space, including the least squares approximation of data, or the projection of a finite element solution from one mesh to another.
FEM2D_HEAT is a C++ program which solves the time dependent heat equation in the unit square.
FEM2D_POISSON is a C++ program which solves the 2D Poisson equation on a rectangle, using the finite element method, and piecewise quadratic triangular elements.
FEM2D_POISSON_LINEAR is a C++ program which solves the 2D Poisson equation on a rectangle, using the finite element method, and piecewise linear triangular elements.
FEM2D_PROJECT is a C++ program which projects a function F(X,Y), given as a data, into a given finite element space of piecewise linear triangular elements.
FEM2D_PROJECT_FUNCTION is available in a C++ version and a FORTRAN90 version and a MATLAB version.
FEM2D_SAMPLE is a C++ library which evaluates a finite element function defined on an order 3 or order 6 triangulation.
FEMPACK is a C++ library which contains utilities for finite element calculations.
FREE_FEM_HEAT is a C++ program which uses the finite element method and the backward Euler method to solve the 2D time-dependent heat equation on an arbitrary triangulated region.
FREE_FEM_NAVIER_STOKES is a C++ program which solves the 2D incompressible Navier Stokes equations in an arbitrary triangulated region.
FREE_FEM_POISSON is a C++ program which solves Poisson's equation on a triangulated region, using the finite element method.
FREE_FEM_STOKES is a C++ program which solves the 2D incompressible Stokes equations in an arbitrary triangulated region.
HOT_PIPE is a MATLAB program which uses FEM_50_HEAT to solve the heat equation for a pipe model.
HOT_POINT is a MATLAB program which uses FEM_50_HEAT to solve the heat equation for a 2D region with a hot point.
TRIANGULATION_ORDER3 is a data directory which contains a description and examples of how an order 3 (linear) triangulation is defined by a node and element file.
TRIANGULATION_ORDER3_CONTOUR is a MATLAB program which makes contour plot of data defined on an order 3 triangulation.
You can go up one level to the C++ source codes.