Chapter 3 Applications and libraries

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.

 3.1 The programming language of OpenFOAM
  3.1.1 Language in general
  3.1.2 Object-orientation and C++
  3.1.3 Equation representation
  3.1.4 Solver codes
 3.2 Compiling applications and libraries
  3.2.1 Header .H files
  3.2.2 Compiling with wmake
  3.2.3 Removing dependency lists: wclean
  3.2.4 Compiling libraries
  3.2.5 Compilation example: the pisoFoam application
  3.2.6 Debug messaging and optimisation switches
  3.2.7 Linking user-defined libraries to applications
 3.3 Running applications
 3.4 Running applications in parallel
  3.4.1 Decomposition of mesh and initial field data
  3.4.2 File input/output in parallel
  3.4.3 Running a decomposed case
  3.4.4 Distributing data across several disks
  3.4.5 Post-processing parallel processed cases
 3.5 Standard solvers
  3.5.1 ‘Basic’ CFD codes
  3.5.2 Incompressible flow
  3.5.3 Compressible flow
  3.5.4 Multiphase flow
  3.5.5 Direct numerical simulation (DNS)
  3.5.6 Combustion
  3.5.7 Heat transfer and buoyancy-driven flows
  3.5.8 Particle-tracking flows
  3.5.9 Discrete methods
  3.5.10 Electromagnetics
  3.5.11 Stress analysis of solids
  3.5.12 Finance
 3.6 Standard utilities
  3.6.1 Pre-processing
  3.6.2 Mesh generation
  3.6.3 Mesh conversion
  3.6.4 Mesh manipulation
  3.6.5 Other mesh tools
  3.6.6 Post-processing
  3.6.7 Post-processing data converters
  3.6.8 Surface mesh (e.g. OBJ/STL) tools
  3.6.9 Parallel processing
  3.6.10 Thermophysical-related utilities
  3.6.11 Miscellaneous utilities
OpenFOAM v10 User Guide - Chapter 3 Applications and libraries