We should reiterate from the outset that OpenFOAM is a C++ library used
primarily to create executables, known as applications. OpenFOAM is distributed
with a large set of precompiled applications but users also have the freedom to
create their own or modify existing ones. Applications are split into two main
categories:
solvers
that are each designed to solve a specific problem in computational
continuum mechanics;
utilities
that perform simple pre-and post-processing tasks, mainly
involving data manipulation and algebraic calculations.
OpenFOAM is divided into a set of precompiled libraries that are dynamically linked
during compilation of the solvers and utilities. Libraries such as those for physical
models are supplied as source code so that users may conveniently add their own
models to the libraries.
This chapter gives an overview of solvers, utilities and libraries, their creation,
modification, compilation and execution. The actual writing of code for solvers
and utilities is not described here but is within the Programmer’s Guide. The
Programmer’s Guide is currently under development so, if users have any queries,
further information may also available at the OpenFOAM discussion group and
the OpenFOAM web site.