From OpenFOAMWiki
Revision as of 11:14, 14 December 2010 by Boroli (Talk | contribs)

OpenFOAM is available for download as source code and binary files for linux and linux-like operating systems. An official Windows binary is not provided. OpenFOAM can be tested without installation by using the SLAX Live CD.

1 General Instructions

1.1 OpenCFD git repository

OpenCFD provide a repository using the git distributed version control system. A script that automates all the following steps can be found in the cfd-online forums.

Valid versions: OF version 16.png

1.1.1 Unpacking

To get the sources you will need to do the following

cd ~/OpenFOAM/
git clone
cd OpenFOAM-1.6.x
git pull

You will also need to install the ThirdParty source, from, make sure you get the right version (ie 32 or 64 bit)

To install this you need to unpack this file in the OpenFOAM directory (the code below assumes that the tar file is in ~/OpenFOAM/

cd ~/OpenFOAM/
tar -zxf ThirdParty-1.6.General.gtgz

1.1.2 Set-up

Before compiling you will need to set up the openfoam environment. Firstly - set wmake to use the system compiler. (Check the compiler version before changing it to System, make the change if it's compatible with OpenFOAM specification)

in ~/OpenFOAM/OpenFOAM-1.6.x/etc/ change the line (line no 98)




Next source the OF settings

. ~/OpenFOAM/OpenFOAM-1.6.x/etc/bashrc

Your session should now be set up to run OF-1.6 (but there won't be anything to run yet)

1.1.3 Compiling

Next step is to compile OF.

Set the number of processors to use, in this case 4


Compile the ThirdParty stuff

cd ~/OpenFOAM/
ln -s ThirdParty-1.6 ThirdParty-1.6.x
cd ThirdParty-1.6.x

Assuming you have no errors, we can now compile OpenFOAM re-source the settings (to pick up newly created directories)

cd ~/OpenFOAM/OpenFOAM-1.6.x
. etc/bashrc

Then compile away


When it finishes (hopefully) you should have a completely working installation.

1.2 Compile OpenCFD release

Valid versions: OF version 14.png

This is a step-by-step installation guide to OpenFOAM on 32 bit machines. It is highly focused on Linux-newbies, thus many steps might look superfluous on more experienced users. The character ">" is used to signal that what follows on that specific line is to be typed in a command line.

- Make a directory for your OpenFOAM installation by typing:

 > mkdir $HOME/OpenFOAM
 > cd $HOME/OpenFOAM
 > mkdir linux

- Download the following six archives from the opencfd-homepage to the $HOME/OpenFOAM directory:

 > OpenFOAM-1.4.1.General.gtgz
 > OpenFOAM-1.4.1.linuxGccDOpt.gtgz
 > OpenFOAM-1.4.1.linuxGccSOpt.gtgz
 > gcc-4.2.1.linux.tgz
 > j2sdk1.4.2_05.linux.tgz
 > paraview-2.4.4.linux.tgz

- Open a terminal and type:

 > ls /usr/include/features.h
 a) EITHER "/usr/include/features.h" is written to screen. Do not do any further.
 b) OR "cannot access /usr/include/features.h: No such file or directory" 
    is written to screen. You need the build essentials to compile your own 
    boundary conditions, thus type the following in a terminal:
    > aptitude install build-essential gcc

- Unpack the archives by typing the following command:

 > cd $HOME/OpenFOAM
 > tar -xzf OpenFOAM-1.4.1.General.gtgz
 > tar -xzf OpenFOAM-1.4.1.linuxGCCDPOpt.gtgz
 > tar -xzf OpenFOAM-1.4.1.linuxGCCSPOpt.gtgz
 > tar -xzf gcc-4.2.1.linux.tgz linux/
 > mv *.tgz linux/.
 > cd linux
 > tar -xzf gcc-4.2.1.linux.tgz
 > tar -xzf j2sdk1.4.2_05.linux.tgz
 > tar -xzf paraview-2.4.4.linux.tgz

- You need to set some environmental variables to be able to run OpenFOAM. This is done in the following way:

 a) EITHER, if running bash or ksh (if in doubt type 'echo $SHELL'), do the 
    > nano $HOME/.bashrc (this open a text-editor in your command window)
    In the end of the file you type:
    . $HOME/OpenFOAM/OpenFOAM-1.4.1/.OpenFOAM-1.4.1/bashrc
    Press 'CTRL-X' to quit nano and agree to save changes.
 a) OR, if running tcsh or csh (if in doubt type 'echo $SHELL'), do the 
    > nano $HOME/.cshrc (this open a text-editor in your command window)
    In the end of the file you type:
    source $HOME/OpenFOAM/OpenFOAM-1.4.1/.OpenFOAM-1.4.1/cshrc
    Press 'CTRL-X' to quit nano and agree to save changes.

- Open a new command-window. This will read $HOME/.bashrc and set all the necessary environmental variables. To check the installation do:

 > cd ~/OpenFOAM/OpenFOAM-1.4.1/bin
 > sh foamInstallationTest

- On single-machine setups, the installation test will probably produce a report which looks like this in the last couple of lines:

 Checking networking...
 Action                   Result                                       Crit
 Pinging_ngj-ubuntu       Successful                                   yes 
 Pinging_localHost        Successful                                   yes 
 Test_rsh:                Unsuccessful_connection_refused*             yes
 Test_ssh:                Unsuccessful_connection_refused*             yes
 FATAL ERROR: No remote shell available.
              Foam1.4.1 enviroment requires either ssh and/or rsh.
              Contact your system administrator.


 The system test has evoked 1 fatal error(s).

 Critical systems ok.

 Review the output for warning messages and consult 
 the installation guide for trouble shooting.
 This fatal error is due the test_rsh and test_ssh critiria, though they are 
 irrelevant on single-machine installations, i.e. only relevant for parallel-
 processing on multiple machine.

- To setup the a working directory, follow step 6 in the ~/OpenFOAM/OpenFOAM-1.4.1/README file.

- You are now ready to begin working with OpenFOAM.

- Have fun:)

1.3 OpenCFD binaries

Valid versions: OF version 16.png

Installing OpenFOAM from binary files is very good if you are a first time user. You can quickly install the software with minimal complications. The process consists of five simple steps:

  1. Download the binary files
  2. Unpack the binary files to your home directory
  3. Add environmental variables
  4. Test the installation
  5. Getting Started

This assumes that you will be installing openFOAM in your home directory. There are many possible variations on this installation procedure (for example, you don't need to install to your home directory.) But you should probably go with the simplest method first time around.

1.3.1 Download the Binary Files

These files are all compiled and ready to go. All you have to do is download them. Go to:

  1. At the top of the page is a pull down menu. Select whether you want binaries for Linux 32 bit or Linux 64 bit.
  2. Create a directory in your home directory. Open up a console window and type the following in at the command line:
mkdir $HOME/OpenFOAM
  1. Download the following files into this directory. These will install the compiled binary files, the source code, documentation, example files, necessary supporting libraries, etc. Everything you would expect in a program. It just comes in four separate packages
    1. OpenFOAM-1.6.General.gtgz
    2. OpenFOAM-1.6.linux64GccDPOpt.gtgz
    3. ThirdParty-1.6.General.gtgz
    4. ThirdParty-1.6.linux64Gcc.gtgz

1.3.2 Unpack the Binary Files

You have downloaded all four files. Now unpack all the files to the same OpenFOAM directory that you created before. That is the $HOME/OpenFOAM directory. Use whatever tool you prefer to unpack the files. I prefer to use a graphical interface that does the work for me. You can also use the command line by typing

tar xzf OpenFOAM-1.6.General.gtgz
tar xzf OpenFOAM-1.6.linux64GccDPOpt.gtgz
tar xzf ThirdParty-1.6.General.gtgz 
tar xzf ThirdParty-1.6.linux64Gcc.gtgz

Congratulations. You now have the binary files unpacked. That was most of the work. Next, you just need to add the environmental variables.

1.3.3 Environmental Variables

The environmental variables will allow the linux system to understand the various OpenFOAM commands. Fortunately, you don't need to add the environmental variables. All you need to do is add one line which will point the system to a file in OpenFOAM that has all the environmental variables.

The environment variable settings for openFOAM are contained in files in an etc/ directory in the OpenFOAM release. e.g. in $HOME/OpenFOAM/OpenFOAM-1.6/etc/

EITHER if running bash or ksh, source the etc/bashrc file by adding the following line to the end of your $HOME/.bashrc file:

. $HOME/OpenFOAM/OpenFOAM-1.6/etc/bashrc 

Then update the environment variables by sourcing the $HOME/.bashrc file by typing in the terminal:

. $HOME/.bashrc 

Notice the periods at the beginning of the line and before the .bashrc filename.

OR if running tcsh or csh, source the etc/cshrc file by adding the following line to the end of your $HOME/.cshrc file:

source $HOME/OpenFOAM/OpenFOAM-1.6/etc/cshrc

Then update the environment variables by sourcing the $HOME/.cshrc file by typing in the terminal:

source $HOME/.cshrc

Note If you are in doubt about which shell you are running, type:

 echo $SHELL 

You will know you have done it correctly if you don't get any return from the command line when you source your .bashrc file. See this example:

> . $HOME/.bashrc

1.3.4 Test the Installation

To check your installation setup, execute the foamInstallationTest script (in the bin/ directory of the OpenFOAM installation). If no problems are reported, proceed to getting started with OpenFOAM; otherwise, go back and check you have installed the software correctly and/or contact your system administrator. Type the following code in the command line to navigate to the location of the foamInstallationTest script and execute it:

 > cd ~/OpenFOAM/OpenFOAM-1.4.1/bin
 > foamInstallationTest

That will execute the script. A successful test will produce output that looks like this:

Checking basic setup...
Shell:              bash                                                       
Host:               linux-hhqc                                                 
OS:                 Linux version                           

Checking main OpenFOAM env variables...
Environment_variable Set_to_file_or_directory                Valid      Crit   
$WM_PROJECT_INST_DIR /home/nicholas/OpenFOAM                  yes       yes    
$WM_PROJECT_USER_DIR /home/nicholas/OpenFOAM/nicholas-1.6     yes       no     
$WM_THIRD_PARTY_DIR  /home/nicholas/OpenFOAM/ThirdParty-1.6   yes       yes    

Checking the OpenFOAM env variables set on the PATH...
Environment_variable Set_to_file_or_directory                Valid Path Crit   
$WM_PROJECT_DIR      /home/nicholas/OpenFOAM/OpenFOAM-1.6     yes  yes  yes    

$FOAM_APPBIN         ...1.6/applications/bin/linux64GccDPOpt  yes  yes  yes
$FOAM_SITE_APPBIN    ...penFOAM/site/1.6/bin/linux64GccDPOpt  no        no
$FOAM_USER_APPBIN    ...1.6/applications/bin/linux64GccDPOpt  no        no
$WM_DIR              ...nicholas/OpenFOAM/OpenFOAM-1.6/wmake  yes  yes  yes

Checking the OpenFOAM env variables set on the LD_LIBRARY_PATH...
Environment_variable Set_to_file_or_directory                Valid Path Crit
$FOAM_LIBBIN         ...OAM/OpenFOAM-1.6/lib/linux64GccDPOpt  yes  yes  yes
$FOAM_SITE_LIBBIN    ...penFOAM/site/1.6/lib/linux64GccDPOpt  no        no
$FOAM_USER_LIBBIN    ...OAM/nicholas-1.6/lib/linux64GccDPOpt  no        no
$MPI_ARCH_PATH       ...nmpi-1.3.3/platforms/linux64GccDPOpt  yes  yes  yes

Third party software
Software Version   Location
gcc      4.3.3     ...OAM/ThirdParty-1.6/gcc-4.3.3/platforms/linux64/bin/gcc
gzip     1.3.12    /usr/bin/gzip
tar      1.20      /bin/tar
icoFoam  1.6       .../OpenFOAM-1.6/applications/bin/linux64GccDPOpt/icoFoam

Base configuration ok.

Critical systems ok.


The important part are the last lines which state the basic configuration and critical systems are both good. If these two lines do not say OK, you need to look through the details of the test results to see what went wrong.

If these two lines do say OK, congratulations! You have successfully installed OpenFOAM. The last step is to setup the files for using OpenFOAM and run a simple test case.

1.3.5 Getting Started

We will setup a project directory that all subsequent projects can be run from. And then we will run a simple test case to ensure everything works. Create a project directory within the $HOME/OpenFOAM directory named $LOGNAME-1.6 (e.g. ‘chris-1.6’ for user chris and OpenFOAM version 1.6)

>cd $HOME/OpenFOAM
>mkdir $LOGNAME-1.6

and create a directory named run within it, e.g. by typing:

mkdir -p $FOAM_RUN/run

Copy the tutorial examples directory in the OpenFOAM distribution to the run directory. If the OpenFOAM environment variables are set correctly, then the following command will be correct:

cp -r $WM_PROJECT_DIR/tutorials $FOAM_RUN

Run the first example case of incompressible laminar flow in a cavity. Type the following into the command line:

>cd $FOAM_RUN/tutorials/incompressible/icoFoam/cavity
Your screen should look like this

When you have executed all four commands, the paraview post-processor should start.

It doesn't look like much, but notice the bottom left corner. The list for Mesh Parts has four items in it. And the list for Volume Fields has two items in it. This tells you that paraview successfully read the data file. You can now happily use OpenFOAM.

1.4 OpenFOAM-dev subversion repository

2 System specific tips and experiences

2.1 OpenSuSE

Valid versions: OF version 16.png 1.6.x on 11.1, x86_64 |

2.2 Gentoo

Valid versions: OF version 16.png

OpenFOAM and Paraview are now both in the main portage tree. For installation just type

emerge openfoam

In order to get OpenFOAM running, add the following line to your ~/.bashrc

 alias startOF16="source /usr/lib/OpenFOAM/OpenFOAM-1.6/etc/bashrc"

And each time you want to use OpenFOAM just type startOF16 in the active terminal.

2.3 Ubuntu/Debian

2.3.1 OpenFOAM-1.6.x on Ubuntu 8.04 or higher (including 10.04 LTS)

Valid versions: OF version 16.png

For that distributions an automatic installer is available to download under GPLv3 in The script takes into account several fixes needed in Ubuntu, like PV3FoamReader build, Qt build, library linking and bash calls.

2.3.2 OpenFOAM-dev-1.5 or OpenFOAM-1.6-ext under Ubuntu Lucid 10.04 LTS

Valid versions: OF version 15.pngValid versions: OF version 16.png

In order to install the OpenFOAM-dev-1.5 or OpenFOAM-1.6-ext version as debian package under Ubuntu Lucid 10.04 LTS you have to add the PPA repository from the CAE-Team:

sudo add-apt-repository ppa:cae-team/ppa

Then you have to update your repository list, for example with

sudo apt-get update

After that you can install the openfoam-dev-1.5 package just by typing

sudo apt-get install openfoam-dev-1.5

In order to get OpenFOAM running, add the following line to your ~/.bashrc

 alias startOF15dev="source /usr/lib/OpenFOAM-1.5-dev/etc/bashrc"

And each time you want to use OpenFOAM just type startOF15dev in the active terminal.

Or install the openfoam-1.6-ext package just by typing

sudo apt-get install openfoam-1.6-ext

In order to get OpenFOAM running, add the following line to your ~/.bashrc

 alias startOF16ext="source /usr/lib/OpenFOAM-1.6-ext/etc/bashrc"

And each time you want to use OpenFOAM just type startOF16ext in the active terminal.

2.3.3 Debian

Valid versions: OF version 16.png

You can check, if you can install the openfoam binaries, like with Ubuntu Lucid 10.04. If this not applies, e.g. due to dependency problems, then you have to add the following line to the /etc/apt/sources.list

 deb-src intrepid main

Update you repository list

sudo apt-get update

After adding this line, you have to compile the debian source package of openfoam and/or paraview at your own by typing

apt-get -b source openfoam-1.6-ext


apt-get -b source parafoam

For further information about debian source packages, follow these guidlines.

In order to get OpenFOAM running, add the following line to your ~/.bashrc

 alias startOF16ext="source /usr/lib/OpenFOAM-1.6-ext/etc/bashrc"

And each time you want to use OpenFOAM just type startOF16ext in the active terminal.

2.3.4 Debian Etch in Server Mode

Valid versions: OF version 16.png The following description is to compile and install OpenFOAM 1.6 on Debian Etch in server mode without parafoam. This is useful for clusters and remote computers. Needed Packages

The following packages need to be installed in order to start compiling.

  • bison
  • flex
  • git (only if installing OpenFOAM 1.6.x)
  • git-core (only if installing OpenFOAM 1.6.x)
  • python-dev
  • libqt4-dev
  • libreadline5-dev
  • build-essential
  • zlib1g-dev
  • texinfo
  • byacc
  • cmake
  • gcc-multilib (only if installing 32bit)

The next thing to download are the general packages for openfoam, meaning OpenFOAM-1.6.General.gtgz and ThirdParty-1.6.General.gtgz from the OF website. Unpack both packages into a OpenFOAM folder in the your home directory.

Following, find out which openmpi version is run on the computer by running

mpirun -version

Get the appropriate version from The old versions are available. Unpack that one as well into your home folder. Building

Edit your .bashrc file in ~/.bashrc to let the last line read

# OpenFOAM environment variables
. $HOME/OpenFOAM/OpenFOAM-1.6/etc/bashrc

Resource the bash file by

. ~/.bashrc

In order to build OF, the in OpenFOAM/OpenFOAM-1.6/etc/ must be edited.

The compiler must read OpenFOAM as in

# Select compiler installation
# compilerInstall = OpenFOAM | System

At the part for the openmpi it should read

mpi_version=openmpi-1.1.4 #put your mpi version here
#    export MPI_HOME=$WM_THIRD_PARTY_DIR/$mpi_version
     export MPI_HOME=/path/to/downloaded/mpi/$mpi_version
     export MPI_ARCH_PATH=$MPI_HOME/platforms/$WM_OPTIONS

The correct path should be included here.

After setting the correct settings, gcc needs to be compiled. This works with the gcc that is provided. But the following must be done to the file makeGCC in the folder OpenFOAM/ThirdPart-1.6/. Replace the content with this tweaked version from the forum (

#---------------------------------*- sh -*-------------------------------------
# =========                 |
# \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
#  \\    /   O peration     |
#   \\  /    A nd           | Copyright (C) 1991-2009 OpenCFD Ltd.
#    \\/     M anipulation  |
# License
#     This file is part of OpenFOAM.
#     OpenFOAM 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 2 of the License, or (at your
#     option) any later version.
#     OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
#     ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
#     FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
#     for more details.
#     You should have received a copy of the GNU General Public License
#     along with OpenFOAM; if not, write to the Free Software Foundation,
#     Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
# Script
#     makeGcc
# Description
#     Build script for gmp, mpfr and gcc-4.3.? and gcc-4.4.?
usage() {
   while [ "$#" -ge 1 ]; do echo "$1"; shift; done

usage: ${0##*/} <gcc-4.?.?> ...

* build gmp, mpfr and gcc-4.3.? and gcc-4.4.?

   exit 1

if [ $# -ne 1 ]
   usage "gcc version not provided"

# Set the number of cores to build on

if [ -r /proc/cpuinfo ]
   WM_NCOMPPROCS=$(egrep "^processor" /proc/cpuinfo | wc -l)

echo "Building on " $WM_NCOMPPROCS " cores"



# Build GMP
if [ ! -d $GMPROOT ]
      if [ ! -d "$GMP_DIR/build" ]; then mkdir $GMP_DIR/build; fi \
   && cd $GMP_DIR/build \
   && if [ -e Makefile ]; then make distclean; fi \
   && ../configure ABI=$ABI --prefix=$GMPROOT \
   && make -j $WM_NCOMPPROCS \
   && make install
   echo "    Finished building gmp."
   echo "    gmp already built."


# Build MPFR
if [ ! -d $MPFRROOT ]
      if [ ! -d "$MPFR_DIR/build" ]; then mkdir $MPFR_DIR/build; fi \
   && cd $MPFR_DIR/build \
   && if [ -e Makefile ]; then make distclean; fi \
   && ../configure ABI=$ABI --prefix=$MPFRROOT --with-gmp=$GMPROOT \
   && make -j $WM_NCOMPPROCS  \
   && make install
   echo "    Finished building mpfr."
   echo "    mprf already built."


# Build GCC
if [ ! -d $GCCROOT ]
      if [ ! -d "$GCC_DIR/build" ]; then mkdir $GCC_DIR/build; fi \
   && cd $GCC_DIR/build \
   && if [ -e Makefile ]; then make distclean; fi \
   && ../configure --enable-languages=c,c++ --with-pkgversion='OpenFOAM' \
     --enable-__cxa_atexit --enable-libstdcxx-allocator=new \
     --with-system-zlib --prefix=$GCCROOT \
     --with-mpfr=$MPFRROOT --with-gmp=$GMPROOT \
   && make -j $WM_NCOMPPROCS \
   && make install
   echo "    Finished building gcc."
   echo "    gcc already built."

# ----------------------------------------------------------------- end-of-file

That done, the patch from this post needs to be applied as described in the post .

After this resource the bash file again as described and then run

./makeGcc gcc-4.3.3

in the thirdparty folder.

When this happens without errors, openfoam can be compiled by resourcing the bash file again and running


in the OpenFOAM/OpenFOAM-1.6 folder

3 Paraview and paraFoam

3.1 Troubleshooting paraFoam

Valid versions: OF version 15.png

If you have problems with paraFoam and the dev version you might have to recompile paraFoam (see If paraFoam loads, but doesn't know which reader to use to display your OpenFoam results, recompiling the PV3FoamReader should suffice.

To do so, first make sure the environment variable $ParaView_INST_DIR contains the correct path (in my version of OF-1.5-dev there was a typo, a wrong "-"). If not, correct it in ~/OpenFOAM/OpenFOAM-1.5-dev/etc/apps/paraview3/bashrc and re-source ~/.bashrc. Then proceed with ./Allwclean and ./Allwmake in ~/OpenFOAM/OpenFOAM-1.5-dev/applications/utilities/postProcessing/graphics/PV3FoamReader.