Links - Programming and Computing
This section contains links to selected resources that might be of interest
for people developing CFD codes. For software and source code you should also
check out the
Links - Software section.
To suggest a link to be included in this section please use
the online
link suggestion form. You are of
course also welcome to contact us directly via email at
webmaster@cfd-online.com.
Contents:
Data Formats
- CGNS - CFD General Notation System
![[GOOD]](Icons/smiley.gif)
- CGNS is slowly becoming a de facto data format standard in the CFD world.
CGNS was initiated by NASA and Boeing back in 1994 and the format is still
actively developed. The CGNS format is now supported by most commercial code
vendors, although not as well by some large vendors as you would hope. If
you are writing your own CFD code you should definitely make sure that it
can read and write CGNS data.
- Unstructured Grid Consortium (UGC)
- UGC is a consortium of several large companies and organizations (Boeing, NASA Langley, Pointwise, Lockheed-Martin, ... ). Among other things they are developing a standard for data-transfer related to unstructured grids.
- HDF5
- HDF is a general purpose library and file format for storing scientific
data. HDF was developed by NCSA and has many users. HDF is a lower-level
format than CGNS and CGNS will most likely switch to using HDF5 as the storage
layer. There are also other more "intelligent" CFD related developments
of HDF that might be of interest, like the HDF5
Mesh API.
- PLOT3D
Read and Write Utilities
- Fortran routines to read and write PLOT3D data. PLOT3D is an old NASA format
which is widely supported. When everything else fails you can always try
the PLOT3D format. Another description of PLOT3D can be found here.
- MOAB - a Mesh-Oriented datABase
- A software library for creating, storing and accessing finite element mesh
data. Distributed under GPL. Developed by Elemental Technologies and Sandia
National Labs.
- Scientific
Data Management, by Mario Valle
- A nice overview of the field of scientific data management. Contains many
links.
Software Libraries
Libraries which you can use if you don't want to write your own routines for
everything. These can be invaluable if you, for example, don't want to code your
own linear equation solver. For documents and information on discretizations
schemes and solvers see the
Modeling
and Numerics section. For links to more sources of numerical software see
the
Software > General Numerical Software section.
- TOPS - Terascale Optimal PDE Simulation
![[GOOD]](Icons/smiley.gif)
- A large project to build a numerical framwork for PDE simulations. Includes
state-of-the-art solvers like Hypre from
LLNL, PETSc from Argonne and SuperLU from
LBL. This is good stuff.
- Trilinos
![[GOOD]](Icons/smiley.gif)
- A project led by Sandia to develop an object-oriented sofware framework
for scientific computations. This is an active project which includes several
state-of-the-art solvers and lots of other nice things a software engineer
writing CFD codes would find useful. Everything is freely available for download
once you have registered. Very good!
- Aztec
- A parallel iterative sparse linear solver package developed at Sandia
National Laboratories. This solver is included in the TOPS and Trilinos
suites above.
- Hypre
- A library of high performance preconditioners using parallel multigrid
methods for both structured and unstructured grids. Developed at the Lawrence
Livermore National Laboratory .
- PETSc
- A parallel library of routines for scientific computations developed by
the MCS division at Argonne National Laboratory .
This library is included in the TOPS and Trilinos suites above.
- BlockSolve95
- Software for the efficient solution of large, sparse linear systems on
massively parallel computers
- Freely
Available Software for Linear Algebra
- Links to more packages. By Jack Dongarra.
- Overview of
Iterative Linear System Solver Packages
- A nice surevey from 1997 by Victor Eijkhout
Parallel Computing
For information on clusters, cluster software etc. please see the
Links >
Hardware > Clusters section.
Mesh Generation and Partitioning
- METIS: Unstructured
Graph Partitioning and Sparse Matrix Ordering System
![[GOOD]](Icons/smiley.gif)
- METIS is a set of routines to partition and re-order grids. The algorithms
used produce very good results for domain decomposition methods. Both serial
and parallel versions are freely available for download. This is good stuff!
- SUMAA3d - Scalable Unstructured
Mesh Algorithms and Applications
- Parallel software for mesh generation, smoothing, refinement and partitioning.
Freely available for download.
Communication Interfaces
- MPI - Message Passing Interface
- The most commonly used communication interface. There are many MPI implementation.
Some of the more popular are MPICH, LAM/MPI and
the new Open MPI There is also a complete reference
book on MPI freely available on the web
- PVM - Parallel Virtual
Machine
- PVM is a communication library with a long history and many users. In recent
years it has lost market share to MPI though. You can find a complete reference
book on PVM freely available on the web.
- BSP - Bulk Synchronous Parallel
Model
- BSPlib is an alternative to MPI and PVM. It is based on the BSP model of
parallel computation. It is supposed to be simpler to use but it does not
seem to be taking off.
Parallel Info
- Nan's Parallel Computing
Page
- Lots of links to parallel computing related resources.
- Designing and Building Parallel
Programs
- A free hypertextbook by Ian Foster. Looks nice.