BUMP
Flow Over a Bump
BUMP
is a FORTRAN90 program which
solves a 2D steady incompressible flow problem set in a channel with a small
bump.
BUMP is a preliminary version of the code that eventually became
the FLOW programs. The code was designed to solve for the
flow field in a channel with a parameterized bump. Data for the flow
profile downstream from the bump was given, and the idea was to determine
a bump parameter value that produced the best match with the given
profile. In later programs, this task became much more elaborate.
Licensing:
The computer code and data files made available on this web page
are distributed under
the GNU LGPL license.
Languages:
BUMP is available in
a FORTRAN90 version.
Related Data and Programs:
CHANNEL,
a FORTRAN90 program which
solves a simple channel flow problem with no bump.
FEM2D,
a data directory which
contains a description of the data files
that can be used to describe a 2D finite element model.
FLOW3,
a FORTRAN90 program which
solves steady incompressible
Navier Stokes equations in 2D using the finite element method.
FLOW5,
a FORTRAN90 program which
solves steady incompressible
Navier Stokes equations in 2D using the finite element method.
HCELL,
a FORTRAN77 program which
computes the pressure
and velocity for a Navier Stokes flow in an "H"-shaped region.
INOUT,
a FORTRAN77 program which
computes the pressure
and velocity for a Navier Stokes flow in a square region with
an inlet and an outlet.
MHD_CONTROL,
a FORTRAN90 program which
tries to control the evolution of an MHD system so that a particular
state is achieved.
MHD_FLOW,
a FORTRAN90 program which
computes the evolution of an MHD system.
NAST2D_F90,
a FORTRAN90 program which
uses the finite volume method to set up and solve
the 2D incompressible Navier Stokes equations with heat.
NSASM,
a C library which
sets up the sparse matrix needed for
a Newton iteration to solve a finite element formulation of
the steady incompressible 2D Navier Stokes equations.
TCELL,
a FORTRAN77 program which
computes the pressure
and velocity for a Navier Stokes flow in a "T"-shaped region.
TOMS866,
a MATLAB library which
is the Incompressible Flow Iterative Solution Software;
this library is commonly called IFISS;
this is ACM TOMS algorithm 866.
Reference:
-
John Burkardt, Max Gunzburger, Janet Peterson,
Discretization of Cost and Sensitivities in Shape Optimization,
in Computation and Control IV,
edited by Bowers and Lund,
Proceedings of the Fourth Bozeman Conference on Computation
and Control,
Birkhaeuser, 1995.
-
Max Gunzburger,
Finite Element Methods for Viscous Incompressible Flows,
A Guide to Theory, Practice, and Algorithms,
Academic Press, 1989,
ISBN: 0-12-307350-2,
LC: TA357.G86.
-
Hans Rudolf Schwarz,
Methode der Finiten Elemente,
Teubner Studienbuecher, 1980,
ISBN: 3-519-02349-0.
-
Gilbert Strang, George Fix,
An Analysis of the Finite Element Method,
Cambridge, 1973,
ISBN: 096140888X,
LC: TA335.S77.
-
Olgierd Zienkiewicz,
The Finite Element Method,
Sixth Edition,
Butterworth-Heinemann, 2005,
ISBN: 0750663200.
Source Code:
Examples and Tests:
The program writes out "XY" (node coordinate) and "UV" (velocity
component) data files at each step.
-
bump_output.txt, printed output from a
run of the program.
-
xy_001.txt,
grid information, step 1.
-
uv_001.txt,
velocity information, step 1.
-
uv_001_vec.png,
a PNG image of
the velocity information.
-
xy_002.txt,
grid information, step 2.
-
uv_002.txt,
velocity information, step 2.
-
uv_002_vec.png,
a PNG image of
the velocity information.
-
xy_003.txt,
grid information, step 3.
-
uv_003.txt,
velocity information, step 3.
-
uv_003_vec.png,
a PNG image of
the velocity information.
-
xy_004.txt,
grid information, step 4.
-
uv_004.txt,
velocity information, step 4.
-
uv_004_vec.png,
a PNG image of
the velocity information.
-
xy_005.txt,
grid information, step 5.
-
uv_005.txt,
velocity information, step 5.
-
uv_005_vec.png,
a PNG image of
the velocity information.
-
xy_006.txt,
grid information, step 6.
-
uv_006.txt,
velocity information, step 6.
-
uv_006_vec.png,
a PNG image of
the velocity information.
-
xy_007.txt,
grid information, step 7.
-
uv_007.txt,
velocity information, step 7.
-
uv_007_vec.png,
a PNG image of
the velocity information.
-
xy_008.txt,
grid information, step 8.
-
uv_008.txt,
velocity information, step 8.
-
uv_008_vec.png,
a PNG image of
the velocity information.
List of Routines:
-
MAIN is the main program for BUMP.
-
BSP evaluates the linear basis function associated with pressure.
-
DAXPY computes constant times a vector plus a vector.
-
DDOT forms the dot product of two vectors.
-
DGBFA factors a real band matrix by elimination.
-
DGBSL solves a real banded system factored by DGBCO or DGBFA.
-
DSCAL scales a vector by a constant.
-
FILE_NAME_INC increments a partially numeric filename.
-
GET_UNIT returns a free FORTRAN unit number.
-
GETG extracts the values of a quantity along the profile line.
-
GRAM computes and stores the Gram matrix.
-
I4_MODP returns the nonnegative remainder of integer division.
-
I4_WRAP forces an integer to lie between given limits by wrapping.
-
IDAMAX finds the index of the vector element of maximum absolute value.
-
IGETL gets the local unknown number along the profile line.
-
LINSYS solves the linearized Navier Stokes equation.
-
NSTOKE solves the Navier Stokes equation using Taylor-Hood elements.
-
PVAL computes a table of pressures at all the nodes.
-
QBF evaluates the quadratic basis functions.
-
REFBSP evaluates the linear basis functions in a reference triangle.
-
REFQBF evaluates the quadratic basis functions on reference triangle
-
RESID computes the residual.
-
SETBAN computes the half band width.
-
SETBAS evaluates the basis functions at each integration point.
-
SETGRD sets up the geometric grid.
-
SETLIN determines unknown numbers along the profile line.
-
SETQUD sets midpoint quadrature rule information.
-
SETXY sets the grid coordinates based on the value of the parameter.
-
TIMESTAMP prints the current YMDHMS date as a time stamp.
-
TRANS calculates the element transformation mapping.
-
UBDRY sets the parabolic inflow in terms of the value of the parameter
-
UBUMP calculates the sensitivity dU/dA on the bump.
-
UVAL evaluates the velocities at a given quadrature point.
-
UV_WRITE writes a velocity file.
-
XY_WRITE creates node coordinate data.
You can go up one level to
the FORTRAN90 source codes.
Last revised on 26 November 2006.