jburkardt

FD1D_BVP\ Finite Difference Method\ 1D Boundary Value Problem {#fd1d_bvp-finite-difference-method-1d-boundary-value-problem align=”center”} =========================


FD1D_BVP is a C++ program which applies the finite difference method to solve a two point boundary value problem in one spatial dimension.

The boundary value problem (BVP) that is to be solved has the form:

        - d/dx ( a(x) * du/dx ) + c(x) * u(x) = f(x)

in the interval X[0] < x < X[N-1]. The functions a(x), c(x), and f(x) are given functions, and a formula for a’(x) is also available.

Boundary conditions are applied at the endpoints, and in this case, these are assumed to have the form:

        u(X[0]) = 0.0;
        u(X[N-1]) = 0.0.

To compute a finite difference approximation, a set of n nodes is defined over the interval, and, at each interior node, a discretized version of the BVP is written, with u’‘(x) and u’(x) approximated by central differences.

Usage: {#usage align=”center”}

fd1d_bvp ( n, a, aprime, c, f, x, u )

where

Licensing: {#licensing align=”center”}

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

Languages: {#languages align=”center”}

FD1D_BVP is available in a C version and a C++ version and a FORTRAN77 version and a FORTRAN90 version and a MATLAB version.

FD1D_BURGERS_LAX, a C++ program which applies the finite difference method and the Lax-Wendroff method to solve the non-viscous time-dependent Burgers equation in one spatial dimension.

FD1D_BURGERS_LEAP, a C++ program which applies the finite difference method and the leapfrog approach to solve the non-viscous time-dependent Burgers equation in one spatial dimension.

FD1D_DISPLAY, a MATLAB program which reads a pair of files defining a 1D finite difference model, and plots the data.

FD1D_HEAT_EXPLICIT, a C++ program which uses the finite difference method and explicit time stepping to solve the time dependent heat equation in 1D.

FD1D_HEAT_IMPLICIT, a C++ program which uses the finite difference method and implicit time stepping to solve the time dependent heat equation in 1D.

FD1D_HEAT_STEADY, a C++ program which uses the finite difference method to solve the steady (time independent) heat equation in 1D.

FD1D_WAVE, a C++ program which applies the finite difference method to solve the time-dependent wave equation utt = c * uxx in one spatial dimension.

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

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

Reference: {#reference align=”center”}

  1. Dianne O’Leary,\ Finite Differences and Finite Elements: Getting to Know You,\ Computing in Science and Engineering,\ Volume 7, Number 3, May/June 2005.
  2. Dianne O’Leary,\ Scientific Computing with Case Studies,\ SIAM, 2008,\ ISBN13: 978-0-898716-66-5,\ LC: QA401.O44.
  3. Hans Rudolf Schwarz,\ Finite Element Methods,\ Academic Press, 1988,\ ISBN: 0126330107,\ LC: TA347.F5.S3313..
  4. Gilbert Strang, George Fix,\ An Analysis of the Finite Element Method,\ Cambridge, 1973,\ ISBN: 096140888X,\ LC: TA335.S77.
  5. Olgierd Zienkiewicz,\ The Finite Element Method,\ Sixth Edition,\ Butterworth-Heinemann, 2005,\ ISBN: 0750663200,\ LC: TA640.2.Z54

Source Code: {#source-code align=”center”}

Examples and Tests: {#examples-and-tests align=”center”}

List of Routines: {#list-of-routines align=”center”}

You can go up one level to the C++ source codes.


Last revised on 17 May 2009.