FEM1D_PROJECT
Project Data onto a 1D Finite Element Mesh


FEM1D_PROJECT is a FORTRAN90 program which computes the projection of data onto a given 1D finite element mesh.

This procedure can be used to determine the least squares approximant to data (actually, to the piecewise linear interpolant of that data) or to determine the finite element coefficients appropriate when recomputing a finite element solution from a fine mesh to a coarse mesh.

The sample data is given simply as two files, one containing the points, the other, the corresponding data values.

The user must also supply two files defining the finite element mesh, containing the points, and the pairs of points that form the elements.

The program takes the sample data, projects it onto the finite element mesh, and determines a file of finite element coefficients that represent the projection of the data onto the finite element space.

The current version of the program can only handle finite element meshes which are made of piecewise linear basis functions.

Usage:

fem1d_project sample_prefix fem_prefix
where sample_prefix is the common prefix for the SAMPLE files: and fem_prefix is the common prefix for the FEM files:

Licensing:

The computer code and data files described and made available on this web page are distributed under the GNU LGPL license.

Languages:

FEM1D_PROJECT is available in a C version and a C++ version and a FORTRAN90 version and a MATLAB version.

Related Data and Programs:

FEM1D, a data directory which contains examples of 1D FEM files, three text files that describe a 1D finite element model;

FEM1D, a FORTRAN90 program which applies the finite element method to a 1D linear two point boundary value problem.

FEM1D_ADAPTIVE, a FORTRAN90 program which applies the finite element method to a 1D linear two point boundary value problem using adaptive refinement to improve the solution.

FEM1D_BVP_LINEAR, a FORTRAN90 program which applies the finite element method, with piecewise linear elements, to a two point boundary value problem in one spatial dimension.

FEM1D_HEAT_STEADY, a FORTRAN90 program which uses the finite element method to solve the steady (time independent) heat equation in 1D.

FEM1D_NONLINEAR, a FORTRAN90 program which applies the finite element method to a 1D nonlinear two point boundary value problem.

FEM1D_PACK, a FORTRAN90 library which contains utilities for 1D finite element calculations.

FEM1D_PMETHOD, a FORTRAN90 program which applies the p-method version of the finite element method to a 1D linear two point boundary value problem.

FEM1D_SAMPLE, a FORTRAN90 program which samples a scalar or vector finite element function of one variable, defined by FEM files, returning interpolated values at the sample points.

FEM2D_PROJECT, a FORTRAN90 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, a FORTRAN90 program which projects a function F(X,Y), given as a formula, into a given finite element space of piecewise linear triangular elements.

FEM2D_SAMPLE, a FORTRAN90 program which evaluates a finite element function defined on an order 3 or order 6 triangulation.

PIECEWISE_LINEAR_PRODUCT_INTEGRAL, a FORTRAN90 library which calculates the exact value of the integral of the product of two piecewise linear functions F(X) and G(X).

Reference:

  1. Hans Rudolf Schwarz,
    Finite Element Methods,
    Academic Press, 1988,
    ISBN: 0126330107,
    LC: TA347.F5.S3313.
  2. Gilbert Strang, George Fix,
    An Analysis of the Finite Element Method,
    Cambridge, 1973,
    ISBN: 096140888X,
    LC: TA335.S77.
  3. Olgierd Zienkiewicz,
    The Finite Element Method,
    Sixth Edition,
    Butterworth-Heinemann, 2005,
    ISBN: 0750663200,
    LC: TA640.2.Z54.

Source Code:

Examples and Tests:

POWERS starts with sample data for the vector function f(x)=[ 1, x, x^2], on a grid of 11 equally spaced nodes from 0 to 10, and projects this onto a piecewise linear grid of 6 equally spaced nodes from 0 to 10.

List of Routines:

You can go up one level to the FORTRAN90 source codes.


Last revised on 13 June 2009.