CHANNEL
Finite Element Model of 2D Channel Flow
CHANNEL
is a FORTRAN90 program which
computes the time-independent flow
of a viscous incompressible fluid in a 2D channel.
The strength
of the flow at the inlet is determined by a parameter.
The desired flow profile along a line downstream is given. The task is
to determine the inflow parameter that generates a flow that minimizes
the difference with the given profile data.
Licensing:
The computer code and data files made available on this web page
are distributed under
the GNU LGPL license.
Languages:
CHANNEL is available in
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_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.
FEM2D_NAVIER_STOKES,
a FORTRAN90 program which
solves the 2D incompressible Navier Stokes equations in an arbitrary
triangulated region.
FEM2D_STOKES,
a FORTRAN90 program which
solves the steady
Stokes flow equations on a triangulated 2D region.
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
is intended to be used with a MATLAB
calling program to set up the sparse matrix needed for
a Newton iteration to solve a finite element formulation of
the steady incompressible 2D Navier Stokes equations.
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 program writes out "XY" (node coordinate) and "UV" (velocity
component) data files for the optimized solution.
List of Routines:
-
MAIN is the main program for CHANNEL.
-
BSP evaluates the linear basis functions associated with pressure.
-
DAXPY computes constant times a vector plus a vector.
-
DCOPY copies a vector, x, to a vector, y.
-
DDOT forms the dot product of two vectors.
-
DELETE deletes a file.
-
DGBFA factors a double precision band matrix by elimination.
-
DGBSL solves a double precision banded system factored by DGBFA.
-
DSCAL scales a vector by a constant.
-
GDUMP writes information to a file.
-
GETG outputs field values along the profile line X = XZERO.
-
GRAM computes the Gram matrix, GR(I,J) = INTEGRAL PHI(I)*PHI(J).
-
IDAMAX finds the index of element having max. absolute value.
-
IGETL gets the local unknown number along the profile line.
-
LINSYS sets up and solves the linear system.
-
NSTOKE solves the Navier Stokes equation using Taylor-Hood elements.
-
PVAL computes a table of pressures.
-
QBF evaluates a quadratic basis function in a triangle.
-
RESID computes the residual.
-
SETBAN computes the half band width.
-
SETBAS computes the basis functions at each integration point.
-
SETGRD sets up the grid for the problem..
-
SETLIN gets the unknown indices along the profile line.
-
SETQUD sets midpoint quadrature rule information.
-
SETXY sets the X, Y coordinates of grid points.
-
UBDRY sets the parabolic inflow in terms of the value of the parameter.
-
UVAL evaluates the velocities at a given point in a particular triangle.
-
UV_PLOT3D creates a velocity file for use by PLOT3D.
-
UV_TABLE creates a velocity table file.
-
XY_PLOT3D creates a grid file for use by PLOT3D.
-
XY_TABLE creates an XY table file.
You can go up one level to
the FORTRAN90 source codes.
Last revised on 26 November 2006.