NAST2D
A Finite Volume Code for Fluid Flow


NAST2D is a C++ program which uses the finite volume method to model the behavior of an incompressible fluid in a 2D flow region.

The program treats the incompressible time-dependent Navier Stokes equations (velocity and pressure) as well as the heat equation. The program can handle free boundaries.

The program uses finite differences on a structured equidistant staggered grid for discretization of derivatives, with central and upwind (donor-cell) discretization of the convective term and an explicit time stepping scheme, Chorin's projection method. Free boundaries are treated with the MAC technique.

NAST2D writes a (binary) graphics dump file, typically with an extension of ".uvp", which contains the values of the solution. This file can be read in and plotted by IDL.

NAST2D can write out a "streak" file, typically with the extension ".str", containing a sequence of locations of marker particles, to give a striking illustration of the flow. The streak files can be very large, and their creation occasionally causes the program to crash!

NAST2D writes out a file containing the stream function values at the last step. This file is always called "psi_data.txt". The file contains ASCII data.

Usage:

nast2d input.par
where

Languages:

NAST2D is available in a C++ version and a FORTRAN90 version.

Related Data and Programs:

BUMP, a FORTRAN90 program which solves a fluid flow problem in a channel including a bump which obstructs and redirects the flow.

DIRECTION_ARROWS, a MATLAB program which can be used to plot the vector direction field.

DIRECTION_ARROWS_GRID, a MATLAB program which reads files of node and velocity data, and, using interpolation, creates a velocity direction plot with arrows place on a uniform grid of the user's specification.

TOMS866, a MATLAB library which is the Incompressible Flow Iterative Solution Software;
this library is commonly called IFISS;
this is ACM TOMS algorithm 866.

VECTOR_PLOT, a FORTRAN90 program which can plot the velocity field and the velocity direction field.

VECTOR_STREAM_GRID, a MATLAB program which reads node and vector data from a file, computes an interpolatory function, evaluates on a uniform grid of points specified by the user, and displays a streamline plot of the vector field.

VELOCITY_ARROWS_GRID, a MATLAB program which reads files of node and velocity data, and, using interpolation, creates a vector plot with arrows place on a uniform grid of the user's specification.

Reference:

  1. ftp://ftp.lrz-muenchen.de/pub/science/fluiddynamics/cfd/NaSt2D the web site
  2. Michael Griebel, Thomas Dornseifer, Tilman Neunhoeffer,
    Numerische Simulation in der Stroemungsmechanik,
    Vieweg 1995.
  3. Michael Griebel, Thomas Dornseifer, Tilman Neunhoeffer,
    Numerical Simulation in Fluid Dynamics,
    SIAM, 1998,
    This book can be ordered from the SIAM web site.

Source Code:

Examples and Tests:

BACKSTEP is the backward-facing step:

CIRCLE is flow past a circular obstacle:

CONVECT is buoyancy flow with heated side walls:

DAM is a free boundary problem with a breaking dam:

DCAVITY is the driven cavity:

DROP follows the splash of a drop of liquid:

FLTRAP is a buoyancy flow with obstacles:

MOLDING is a flow based on injection molding:

RAYLEIGH is a buoyancy flow with heated upper and lower walls:

WAVE is a flow past an obstacle:

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


Last revised on 24 June 2013.