MB_CNS is a program for the time-integration of the Navier-Stokes equations for two-dimensional compressible flows on a multiple-block structured mesh. The flow geometry may be either planar or axisymmetric and multiply-connected domains can be modelled by patching together several blocks.
The main simulation code is accompanied by a set of pre- and post-processing programs. The pre-processing programs scriptit and mb_prep start with a short script describing the geometry, initial flow state and boundary conditions and produce a discretised version of the initial flow state.
The main flow simulation program (or solver as it is sometimes called) is mb_cns. It takes the files prepared by scriptit and mb_prep, integrates the discrete form of the gas flow equations in time and writes the evolved flow data to a set of output files. This output data may consist of the flow state (over the whole domain) at a number of instants in time.
After integration in time, the post-processing programs mb_post and mb_cont can be used to reformat the flow state data and produce GIF or postscript plots of flow quantities such as pressure, temperature and Mach number. Data, in tabular form, may be extracted with the post-processing program mb_prof.
The flow field is recorded as cell-average values at cell centres and explicit time stepping is used to update conserved quantities. MUSCL-type interpolation and one of three flux calculation methods (Riemann solver, AUSMDV flux splitting and the Equilibrium Flux Method, EFM) are used to calculate inviscid fluxes across cell faces while central differences (via the divergence theorem) are used to calculate the viscous fluxes. The flux calculators are suitable for flows with very strong shocks and do not require the entropy fix as applied to the Roe-type solvers.
A full description of the basic equations and algorithms used for the single-block version of the code may be found in ICASE Interim Report 18 (NASA Langley Research Center, 1991) and the multi-block formulation is documented in Department of Mechanical Engineering Research Report 10/96 (The University of Queensland, 1996).
The program is written in C and makes extensive use of data structures to encapsulate the data. The idea of writing the code this way is to make it easier (than a traditional FORTRAN code) to "parallelize" for the Multiple-Instruction-Multiple-Data style of parallel computer. The source code supplied here runs in parallel on a Silicon Graphics Power Challenge (or Cray Origin 2000) and another, derived code (PAMELA) written by Andrew McGhee runs under the Single-Program-Multiple-Data environment of MPI.
MB_CNS is distributed as source code in the hope that you will find it useful. You may edit it and use it for non-commercial activities. If you make use of it, please send me a postcard.
MB_CNS contains ideas and code fragments from a number of people. Recent sources include Chris Craddock, Ian Johnston, Andrew McGhee and Paul Petrie.
The GIF creation functions are from Thomas Boutell's
gd 1.2 graphics library.
gd 1.2 is copyright 1994, 1995, Quest Protein Database Center,
Cold Spring Harbour Labs.
GIFMerge is by M. Podlipec and R. K. Mueller.
The particular copy in the plot/source directory is from the
web-site http://the-labs.com/GIFMerge/index.html.
All original MB_CNS source code Copyright (c) 1991-1998, PAJ, PJP, AMM, CSC, IAJ as appropriate.
Remember that MB_CNS is a "research" code that comes warts and all. Hence, one should expect trouble occasionally. If problems are reported to me, I will do my best to fix them but I will not guarantee anything.