src/OpenFOAM logo
The Open Source CFD Toolbox
  Search
  
  Back to OpenFOAM Home
 
  OpenFOAM FEATURES
  Solvers
  Creating solvers
  Standard solvers
  Pre-processing
  The FoamX case manager
  Other pre-processing utilities
  Post-processing
  The paraFoam post-processor
  Third-party post-processing
  Other post-processing utilities
  Mesh processing
  Mesh generation
  Mesh converters
  Mesh manipulation
  Model libraries
  Turbulence
  Large-eddy simulation (LES)
  Transport models
  Thermophysical models
  Lagrangian particle tracking
  Chemical kinetics
  Other features
  Linear system solvers
  ODE system solvers
  Parallel computing
  Mesh motion
  Numerical method
 
  © 2004-2008 OpenCFD Ltd
SourceForge.net Logo
OpenCFD Solutions Contact OpenFOAM
Creating solvers

While OpenFOAM can be used as a standard simulation package, it offers much more. Essentially, OpenFOAM is a suite of C++ libraries, most of which are supplied with source code. It uses primarily the finite volume method to solve coupled sets of partial differential equations (typical of engineering problems) ascribed on any 3D unstructured mesh of cells with an arbitrary number of faces that may undergo motion and/or topological changes. OpenFOAM is designed to be a flexible, programmable environment for simulation by having top-level code that is a direct representation of the equations being solved, e.g.:

@rU--
 @t  +  \~/  • rUU -  \~/  •m \~/ U  = -  \~/ p
\special {t4ht=
is represented by the code:


    solve
    (
        fvm::ddt(rho, U)
      + fvm::div(phi, U)
      - fvm::laplacian(mu, U)
        ==
      - fvc::grad(p)
    );

The use of equation representation offers significant advantages over conventional software:

  • Users have total freedom to create or modify a solver
  • Compiled solvers tailored by a user for a specific need rather than ’bolt-on’ subroutines, making OpenFOAM ideal for research and development.
  • All facilities -- pre- and post-processing, models and utilities -- are compiled using the OpenFOAM C++ library. This ensures consistency across the whole of the OpenFOAM distribution, rather than having a suite of packages compiled from entirely separate source code.
  • Transparent solution algorithms which can be viewed by the user, encouraging better understanding of the underlying physics.

The use of advanced level C++ as the core programming language brings major benefits to users:

  • Advanced error checking at both complile and run time.
  • Extremely robust solver and utility executables.
  • High speed calculation with efficient memory management and fast linear equation solvers.
  • Parallel processing with linear speed up with number of processors.