# IFISS3.3 - Incompressible Flow Iterative Solution Software

IFISS3.3 is a MATLAB program which embodies version 3.3 of the Incompressible Flow Iterative Solution Software (IFISS), that can model the steady (time-independent) flow of a 2D incompressible fluid, by Howard Elman, Alison Ramage, David Silvester.

The library includes algorithms for discretization by mixed finite element methods and for a posteriori error estimation of the computed solution.

The most recent version of the software may be found by going to http://www.maths.manchester.ac.uk/~djs/ifiss/

The text of many ACM TOMS algorithms is available online through ACM: http://www.acm.org/pubs/calgo or NETLIB: http://www.netlib.org/toms/index.html.

The four classes of problems that can be solved by this code are identified by an alphabetic code:

• P, the Poisson or diffusion equation;
• CD, the convection/diffusion equation;
• S, the Stokes equations;
• NS, the Navier Stokes equation;

There are four predefined example problems for the Poisson or diffusion equation:

• P1, diffusion in a square plate;
• P2, diffusion in an L-shaped region;
• P3, diffusion in the square, with an exact analytic solution;
• P4, diffusion in an L-shaped region with an exact analytic solution;

There are four predefined example problems for the convection/diffusion equation. All problems are posed on a square domain with a convective velocity of order 1:

• CD1, constant convective velocity (0,1), with an exponential boundary layer;
• CD2, convective velocity (0,1+(x+1)^2/4); characteristic boundary layers.
• CD3, convective velocity (-sin(pi/6),cos(pi/6)), with a solution discontinuity that is smeared by viscosity;
• CD4, a simple model for temperature diffusion in a cavity;

The four predefined Stokes problems:

• S1, steady horizontal channel flow, (Poiseuille flow);
• S2, slow flow in a rectangular duct with sudden expansion, flow over a step;
• S3, driven cavity flow;
• S4, colliding flow;

The four predefined Navier-Stokes problems:

• S1, steady horizontal channel flow, (Poiseuille flow);
• S2, slow flow in a rectangular duct with sudden expansion, flow over a step;
• S3, driven cavity flow, with a choice of leaky, watertight or regularized boundary conditions;
• S4, boundary layer flow over a flat plate, (Blasius flow);

### Licensing:

The computer code and data files made available on this web page are distributed under the GNU LGPL license.

### Languages:

IFISS3.3 is available in a MATLAB version.

### Related Data and Programs:

ARBY4, a FORTRAN90 program which analyzes a 2D fluid flow using the reduced basis method. This is version 4 of a program which had 4 versions.

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

CHANNEL, a FORTRAN90 program which solves a fluid flow problem in a channel.

DOLFIN, PYTHON scripts which are used with the DOLFIN library to set up and solve a wide variety of problems using the finite element method.

IFISS, examples which illustrate the use of IFISS, the MATLAB-based flow-solver.

INOUT, a FORTRAN77 program which computes the pressure and velocity for a Navier Stokes flow in a square 1D region with an inlet and an outlet.

MHD_FLOW, a FORTRAN90 program which simulates the evolution of a system governed by the equations for 2D magnetohydrodynamics.

NAST2D, a C++ program which solves the 2D Navier Stokes fluid flow equations

NS3D_FEM, a MATLAB program which sets up and solves a finite element formulation of the steady incompressible 3D Navier Stokes equations on a user-defined geometry. The program can output graphics files for TECPLOT, VU or the VTK format used by PARAVIEW.

TCELL_FLOW, a dataset directory which contains 500 time steps of Navier-Stokes flow in a 2D "T"-shaped region.

TOMS866, a MATLAB library which is version 2.2 of the Incompressible Flow Iterative Solution Software (IFISS), by Howard Elman, Alison Ramage, David Silvester; this is ACM TOMS algorithm 866.

### Author:

• Howard Elman,
Department of Computer Science,
University of Maryland,
College Park, Maryland 20742,
USA,
elman@cs.umd.edu
• Alison Ramage,
Department of Mathematics,
University of Strathclyde,
26 Richmond Street,
Glasgow G1 1XH,
United Kingdom,
a.ramage@strath.ac.uk
• David Silvester,
School of Mathematics,
University of Manchester,
Sackville Street,
Manchester M60 1QD,
United Kingdom,
na.silvester@na-net.ornl.gov

### Reference:

1. Howard Elman, Alison Ramage, David Silvester,
Finite Elements and Fast Iterative Solvers with Applications in Incompressible Fluid Dynamics,
Oxford, 2005,
ISBN: 978-0198528678,
LC: QA911.E39.
2. Howard Elman, Alison Ramage, David Silvester,
Algorithm 866: IFISS, A Matlab Toolbox for Modelling Incompressible Flow,
ACM Transactions on Mathematical Software,
Volume 33, Number 2, June 2007.
3. Howard Elman, Alison Ramage, David Silvester,
Incompressible Flow Iterative Solution Software (IFISS), Installation and Software Guide,
http://www.maths.manchester.ac.uk/~djs/ifiss/ifiss_guide_3.0.pdf.

### Source Code:

• activemode.m, turns off batch processing for IFISS.
• batchmode.m, enables batch processing for IFISS test problems. The command batchmode('P2') uses the file diffusion/test_problems/P2_batch.m to generate and solve the second test problem for the Poisson (diffusion) equation.
• bookcover.m, generates the image on the cover of the IFISS reference book.
• citation.m, displays the proper citation for IFISS.
• Contents.m, lists the main contents of the package.
• default.m, gets response to IFISS prompt.
• gohome.m, positions command prompt at top level directory.
• helpme.m, IFISS interactive help facility.
• ifiss.m, returns IFISS version number.
• readme.m, contains information to be read by the user.
• recall.m, queries the current discretized problem in the workspace.
• setpath.m, sets the IFISS search path.
• smile.m.

### Subdirectories:

• batchfiles, example files for solving problems in batch mode.
• convection, for the convection-diffusion equation.
• datafiles, a directory for storing intermediate data. Programs run with the batchmode command, for instance, will store their results here.
• diffusion, for the Poisson equation.
• graphs, functions that visualize the computed solutions.
• grids, functions associated with the domain geometry and grid generation.
• matlab704, patched versions of four MATLAB 7.0.4 functions.
• navier_flow, for the Navier-Stokes equations.
• plotfiles, a directory for storying intermediate data for plotting.
• solvers, specialized fast iterative solvers.
• specific_files, functions which set up specific examples from the reference.
• stokes_flow, for the Stokes equations.

You can go up one level to the MATLAB source codes.