FLOW4
A Finite Element Code for Fluid Flow
FLOW4
is a FORTRAN90 program which
uses the finite element method
to solve a problem involving two dimensional steady incompressible Navier Stokes flow.
FLOW4 uses the finite element method to solve for the steady state
velocity and pressure of an incompressible fluid flowing in a
two dimensional region.
FLOW4 writes a graphics dump file that can be read in
and displayed by
DISPLAY3.
Licensing:
The computer code and data files described and made available on this web page
are distributed under
the GNU LGPL license.
Languages:
FLOW4 is available in
a FORTRAN90 version
Related Data and Programs:
BUMP
is a FORTRAN90 program which
solves a fluid flow problem
in a channel including a bump which obstructs and redirects the flow.
CHANNEL
is a FORTRAN90 program which
solves a fluid flow problem in a channel.
DISPLAY3,
a FORTRAN90 program which
displays graphics from the
flow data computed by FLOW3,
FLOW4. This program
used to work, but it is very out of date;
FEM2D_PACK
is a FORTRAN90 library which
contains utilities for 2D finite element calculations.
SLAB,
a FORTRAN90 program which
analyzes the optimization of a scalar function of multidimensional data
by examining contour lines in a selected plane.
SLICE,
a FORTRAN90 program which
analyzes the optimization of a scalar function of multidimensional data
by examining contour lines in a selected plane.
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:
-
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.
Source Code:
Examples and Tests:
The list of routines includes:
-
FLOWMAIN controls a package that solves a fluid flow problem.
-
BMPBC computes the value of the boundary conditions for the
-
BMPBC1 computes the value of the boundary conditions for the
-
BMPBC2 computes the value of the boundary conditions for the
-
BMPCST evaluates the cost of the bump control.
-
BMPDER evaluates the derivative of the cost of the bump control
-
BMPSEN sets up the right hand side F associated with the
-
BMPSPL sets up or updates the spline data that describes the bump.
-
BSP computes the value and spatial derivatives of the linear basis
-
CH_CAP capitalizes a single character.
-
CHKDAT performs some simple checks on the input data.
-
CHRCTD accepts a string of characters, and tries to extract a
-
CHRCTI accepts a STRING of characters and reads an integer
-
CHRDB1 accepts a string of characters and removes all
-
CHRUP2 copies STRING into STRNG2, up to, but not including, the
-
CUBSPL is given data and boundary conditions for a cubic
-
DISCST computes the discrepancy integrals for the pressure,
-
DISDER computes the derivative of the discrepancy integrals for the
-
FLODUV sets the derivative of the parabolic inflow in terms of
-
FLOSEN sets up the right hand side F associated with the
-
FLOSOL is given a set of flow parameters in PARA, and an
-
FLOSPL sets up or updates the spline data that describes the inflow.
-
FLOUV computes the specified boundary values of velocity for a
-
FP computes the jacobian of the finite element Navier Stokes or
-
FX computes the residual of the Navier Stokes or Stokes equations,
-
GETCST is given the value of the solution, G, the target
-
GETDER returns the derivatives of the cost with respect to the parameters.
-
GETDU uses the finite element method to estimate the value of
-
GETDU2 is damaged code.
-
GETDU3 uses interpolating serendipity quadrilaterals in an attempt
-
GETDU4 uses the Zienkiewicz-Zhou technique to attempt to improve the
-
GETDU5 uses interpolating serendipity quadrilaterals in an attempt
-
GETFIX computes GRADF, a correction for the finite difference
-
GETGRD uses finite differences to compute GDIF, an estimate of the
-
GETSEN computes the sensitivities of the state variables U, V and
-
GQUAD1 returns the weights and abscissas for a 1 dimensional,
-
HELLO prints the program name, date, and computer name.
-
ILAENV is called from the LAPACK routines to choose problem-dependent
-
INIT initializes the simple parameters which may be overridden
-
INPUT takes symbolic commands of the form "name = value" and
-
INTERV computes LEFT, the maximum value of I so that
-
ISAMAX FINDS THE INDEX OF ELEMENT HAVING MAX. ABSOLUTE VALUE.
-
LBASE evalualates the IVAL-th Lagrange polynomial based
-
LMEMRY allows the user to define the name of a logical variable,
-
LSAME returns .TRUE. if CA is the same letter as CB regardless of
-
LSPOLY evaluates a polynomial in (1, x, y, x*x, xy, y*y) at
-
MARCH carries out a one, two or three dimensional "march".
-
MAROPN opens the marching file.
-
NAMELS reads a line of user input which is similar in form
-
NEWTON seeks a solution G of the nonlinear state equations.
-
PLDX evaluates the derivative of a piecewise linear function with
-
PLDX1 evaluates the X derivative of the piecewise linear
-
PLTOPN opens the plotting file.
-
PLTWRT writes information to a file which can be used to create
-
PLVAL evaluates a piecewise linear function at a given point.
-
PLVAL1 evaluates the piecewise linear polynomial which is 1
-
PPVALU calculates the value at X of the JDERIV-th derivative of
-
PQDX evaluates the derivative of a piecewise quadratic function with
-
PQDX1 evaluates the X derivative of the piecewise quadratic
-
PQVAL evaluates a piecewise quadratic function at a given point.
-
PQVAL1 evaluates the piecewise quadratic polynomial which is 1
-
PRCOST2 prints out the current cost function.
-
PRCSEN prints out the cost sensitivities.
-
PRDAT prints the user input file data.
-
PRGS2 prints out the maximum entries in the finite difference and
-
PROBAS accepts N vectors of length M, when N <= M, and
-
PROJEC computes the projection of an M vector into an N
-
PRPAR prints out the current parameters.
-
PRPUV prints out the nodal values of the finite differences and
-
PRSOL prints out information about a single solution.
-
PRSPL prints the raw spline data for the simple cases ISHAPE = 1 or 2.
-
PRSPLN prints out the value of a spline function or one of its
-
QBF evaluates a particular quadratic basis function at a point
-
QSOLVE carries out the optimization algorithm for a fixed grid,
-
REFBSP evaluates one of the three linear basis functions,
-
REFQBF evaluates one of the six quadratic basis functions,
-
REYSEN sets up the right hand side RHS associated with the first
-
RINT_TO_RINT maps a real interval to another real interval.
-
S_EQI is a case insensitive comparison of two strings for equality.
-
SCOPY copies a vector, x, to a vector, y.
-
SDOT forms the dot product of two vectors.
-
SERENE evaluates an interpolating function which is defined on
-
SERTRN computes the value of dUdY at the central node of an
-
SETBAN computes NLBAND, the lower band width of the Jacobian matrix,
-
SETBAS computes the value of the basis functions at each
-
SETNOD assigns numbers to the nodes.
-
SETQ3 sets the abscissas and weights for a three point quadrature
-
SETQ7 sets the abscissas and weights for a seven point quadrature
-
SETXY sets the X and Y coordinates of the nodes.
-
SGBTF2 computes an LU factorization of a real m-by-n band matrix A
-
SGBTRF computes an LU factorization of a real m-by-n band matrix A
-
SGBTRS solves a system of linear equations
-
SGEMM performs one of the matrix-matrix operations
-
SGEMV performs one of the matrix-vector operations
-
SGER performs the rank 1 operation
-
SGETF2 computes an LU factorization of a general m-by-n matrix A
-
SGETRF computes an LU factorization of a general M-by-N matrix A
-
SGETRS solves a system of linear equations
-
SLASWP performs a series of row interchanges on the matrix A.
-
SSCAL scales a vector by a constant.
-
SSWAP interchanges two vectors.
-
STBSV solves one of the systems of equations
-
STRSM solves one of the matrix equations
-
TRANS calculates the biquadratic transformation which maps the
-
UPVALQ evaluates the sensitivities of the velocities and pressure,
-
UVAL evaluates the velocities and pressure, and their X and Y
-
UVALQ evaluates the velocities and pressure, and their X and Y
-
WHODAT is damaged code.
-
WRITES writes out scalar data for use by SAMPLE2 when comparing
-
WRITEV writes out vector data for use by SAMPLE2 when comparing
-
XERBLA is an error handler for the LAPACK routines.
-
XOFXSI is given the XSI, ETA coordinates of a point in an
You can go up one level to
the FORTRAN90 source codes.
Last revised on 18 January 2007.