The basis of the FAST3D flow solver is the Flux-Corrected Transpor (FCT) algorithm. This algorithm, including a discussion on accuracy, stability, use in multi-dimensions, boundary conditions and example test problems, are detailed in the following report:

  • Boris, J.P.; A.M. Landsberg; E.S. Oran; and J.H. Gardner. 1993. "LCPFCT - A Flux-Corrected Transport Algorithm for Solving Generalized Continuity Equations." NRL Memorandum Report 93-7192.

This report is available as a compressed postscript file,, (Note: This file is 2.68MB, uncompressed, and 134 pgs in length) or as a PDF file, LCPFCT.pdf, (Note: This file is 964596KB, uncompressed, and 134 pgs in length.)

The subroutines and test programs from the report are listed below (written in Fortran):

To download a compressed tar file (LCPFCT.tar.Z) containing these subroutines click here.

Description of Test Problems
  • convect.f: compile with lcpfct.f
    • Constant Velocity Convection - LCPFCT Test # 1
      This program runs three periodic convection problems using LCPFCT and the FCT utility routines . The three profiles are the square wave, a semicirle, and a Gaussian peak. The velocity is constant in space and time and the grid is kept stationary.
  • shock.f: compile with lcpfct.f, gasdyn.f
    • Progressing 1D Gas Dynamic Shock - LCPFCT Test # 2
      This program runs a simple 1D gasdynamic shock through a uniform grid using LCPFCT and its utility routines. The fluid is ideal and inviscid with constant GAMMA0 = 1.4. The boundary conditions are specified external values on both ends of the system.
  • diaphragm.f: compile with lcpfct.f, gasdyn.f
    • 1D Bursting Diaphragm Problem - LCPFCT Test # 3
      This program runs a very simple 1D bursting diaphragm test problem using LCPFCT and its utility routines. The fluid is ideal and inviscid with constant GAMMA = 1.667. The end walls are reflecting so the fluid should be totally contained in the domain.
  • fast2d.f: compile with lcpfct.f, gasdyn.f
    • Bursting Diaphragm "Muzzle Flash" - LCPFCT TEST # 4
      The problem begins with 1000:1 pressure and 100:1 density ratios across a diaphragm inside a solid cylindrical barrel. The ideal wall of the barrel is 10 cells thick (1.0 cm) with its inner radius given as 1.5 cm and its outer radius of 2.5 cm. The run starts at time t = 0.0 when the diaphragm at interface J = 11 (inside the barrel) is ruptured. The flow then expands upward in a 1D manner, spilling out of the barrel in a 2D flow which eventually reaches the boundaries at R = 4.0 cm and Z = 4.0 cm where a very simple extrapolative outflow condition is expressed through the LCPFCT boundary conditions values. The outflow condition used here includes a slow relaxation to ambient conditions far from the origin.