FreeFOAM The Cross-Platform CFD Toolkit
Hosted by SourceForge:
Get FreeFOAM at SourceForge.net. Fast, secure and
            Free Open Source software downloads
Table of Contents

FreeFOAM is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. See the file COPYING in this directory, for a description of the GNU General Public License terms under which you can copy the files.

2. System requirements

FreeFOAM is developed and tested on Linux, but should work with other Unix style systems, notably Mac OS X ©. The support for Microsoft Windows is a goal, which, however, is still far off.

2.1. Required software to build FreeFOAM

CMake

In order to build FreeFOAM you need to have CMake with version 2.8.2 or newer installed. In order to follow the INSTALL instructions, make sure that you also install the package contain the curses GUI ccmake if using a package manager (e.g. on Linux systems. For Debian and Ubuntu the package is called cmake-curses-gui). http://cmake.org

Build system

CMake requires a native build system. On Unix-like platforms GNU Make is recommended. http://www.gnu.org/software/make

C++ compiler

In order to build FreeFOAM you need a C++ compiler with good support for template expressions. The g++ compiler from GCC-4.3 and above will do fine. http://gcc.gnu.org

flex

The flex lexer generator. Version 2.5.33 is known to work. For more recent versions there have been reports of problems. http://flex.sourceforge.net

zlib

zlib compression library. http://www.zlib.net

SCOTCH

The SCOTCH graph partitioning library. Version 5.1.7 is know to work. http://www.labri.fr/perso/pelegrin/scotch

Python

The Python interpreter. Version 2.6 is known to work, but care has been taken to make FreeFOAM work with versions from 2.4 on, including 3.x.

Note
In order to build the man pages or the user guide, AsciiDoc is required which has not yet been ported to Python 3. This is why Python version 2 is also required (only at build-time for the documentation) if a Python 3 interpreter is used.

2.2. Optional software

AsciiDoc

In order to create the man-pages or the XHTML and PDF documentation you need to have a fully working AsciiDoc toolchain installed. Versions newer than 8.5 are known to work. AsciiDoc itself needs Python 2.4 or newer (but not 3.x), xsltproc, xmllint from libxml2, the DocBook XML DTD’s and the DocBook XSL stylesheets. Refer to the AsciiDoc installation instructions for the details. Also note, that AsciiDoc versions 8.6.5 and 8.6.6 contain a bug which makes it depend on Python 2.5 and newer. http://www.methods.co.nz/asciidoc

Asymptote

Asymptote, the powerful descriptive vector-graphics language, is used to generate many of the graphics in the User Guide. Note that Asymptote

Bison

If you choose to build SCOTCH locally by enabling FOAM_BUILD_PRIVATE_SCOTCH, the Bison parser generator is required. http://gnu.org/s/bison

dblatex

If you want to build the PDF version of the user guide, it is recommended that you have dblatex installed, as the generated output is superior to that generated with the alternative, Apache FOP. Since dblatex uses LaTeX as its rendering backend, it depends on a LaTeX installation. http://dblatex.sourceforge.net

Doxygen

Automatic API-documentation generator. Required to build the source documentation. http://www.doxygen.org

Apache FOP

If you want to build the PDF version of the user guide but can’t or don’t want to install dblatex, Apache FOP can be used instead. It’s output, however, is inferior to that of dblatex, especially that of the formulas. http://xmlgraphics.apache.org/fop

git

To check out a current development version of FreeFOAM, git is required. http://git.or.cz

Graphviz

The graphs in the User Guide and the API documentation are require the Graphviz package for their generation. http://graphviz.org

LaTeX

Both, dblatex and Asymptote require a decent LaTeX installation. If you install LaTeX via a package manager, make sure that you also install the packages providing the units.sty LaTeX package and the extra fonts. On Debian and Ubuntu systems, they are called texlive-latex-extra and texlive-fonts-recommended, respectively. http://latex-project.org

libccmio

pro-STAR © input/output library. FreeFOAM can build this automatically for you. Please refer to the INSTALL file for license restrictions. https://wci.llnl.gov/codes/visit/3rd_party/libccmio-2.6.1.tar.gz

M4

Some of the provided tutorial cases require the M4 macro processor. http://www.gnu.org/software/m4/

MathJax

If you enable MathJax for math-rendering in the XHTML version of the user guide, but don’t want to use the shared installation over the network, you can install MathJax locally. http://www.mathjax.org

METIS

The METIS graph partitioning library, version 5.0.1. If your package manager doesn’t contain it, you can also have FreeFOAM build it automatically for you (see the installation section). http://glaros.dtc.umn.edu/gkhome/metis/metis/overview

MGRIDGEN

MGRIDGEN is a grid coarsening library for multi-grid solvers. FreeFOAM can build this automatically for you. Please refer to the INSTALL file for license restrictions. http://glaros.dtc.umn.edu/gkhome/mgridgen/overview

ParaView

The FreeFOAM utility para requires this visualization application, version 3.8 or later. http://www.paraview.org

Parallel Communications Library

In order to run FreeFOAM in parallel, a communications library is required. Currently the only available options is MPI (Message Passing Interface). There are many implementations of the MPI standard. The one that has been tested and is known to work with FreeFOAM is OpenMPI.

ParMetis

If you use an MPI library, the ParMetis library is required. If your package manager doesn’t contain this library, FreeFOAM can build it automatically for you (refer to the installation notes below). http://glaros.dtc.umn.edu/gkhome/metis/parmetis/overview

GNU Readline

The setSet utility can be used in an interactive mode which is greatly improved if using the GNU Readline library for history and command line editing support. http://gnu.org/s/readline

3. Installation

For exhaustive installation and basic usage instructions, refer to the INSTALL file.

4. Documentation

All the applications and the frequently used script utilities come with a brief man-page. Unfortunately, most of them are little more than stubs and need more work. The man-page freefoam(1) gives a short overview over all applications and utilities and documents the FreeFOAM configuration options.

API-documentation is available from http://freefoam.sourceforge.net/doc/v0.1.2/API.

Further, most FreeFOAM applications and utilities support the -doc and -srcDoc options, which will automatically display the API-documentation and the source code of the application, respectively.

5. Help

6. Reporting Bugs in FreeFOAM