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.
Contents
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.
1.1.1 Unpacking
To get the sources you will need to do the following
cd ~/OpenFOAM/ git clone http://repo.or.cz/r/OpenFOAM-1.6.x.git/ cd OpenFOAM-1.6.x git pull
You will also need to install the ThirdParty source, from http://www.opencfd.co.uk/openfoam/linux.html, 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/settings.sh change the line (line no 98)
compilerInstall=OpenFOAM
to
compilerInstall=System
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
export WM_NCOMPPROCS=4
Compile the ThirdParty stuff
cd ~/OpenFOAM/ ln -s ThirdParty-1.6 ThirdParty-1.6.x cd ThirdParty-1.6.x ./Allwmake
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
./Allwmake
When it finishes (hopefully) you should have a completely working installation.
1.2 Compile OpenCFD release
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 following: > 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 following: > 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
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:
- Download the binary files
- Unpack the binary files to your home directory
- Add environmental variables
- Test the installation
- 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: http://www.opencfd.co.uk/openfoam/download.html
- At the top of the page is a pull down menu. Select whether you want binaries for Linux 32 bit or Linux 64 bit.
- Create a directory in your home directory. Open up a console window and type the following in at the command line:
mkdir $HOME/OpenFOAM
- 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
- OpenFOAM-1.6.General.gtgz
- OpenFOAM-1.6.linux64GccDPOpt.gtgz
- ThirdParty-1.6.General.gtgz
- 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 2.6.27.7-9-default ------------------------------------------------------------------------------- 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 ------------------------------------------------------------------------------- Summary ------------------------------------------------------------------------------- Base configuration ok. Critical systems ok. done.
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 >blockMesh >icoFoam >paraFoam
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: 1.6.x on 11.1, x86_64 |
2.2 Gentoo
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)
For that distributions an automatic installer is available to download under GPLv3 in http://code.google.com/p/openfoam-ubuntu The script takes into account several fixes needed in Ubuntu, like PV3FoamReader build, Qt build, library linking and bash calls.
2.3.2 Ubuntu Intrepid 8.10
You have to add the following line to /etc/apt/sources.list either with your preferred text editor or package manager.
deb http://ppa.launchpad.net/cae-team/ppa/ubuntu intrepid main
Then you have to update your repository list, for example with
sudo apt-get update
After that you can install openfoam and paraview just by typing
sudo apt-get install openfoam paraview
In order to get OpenFOAM running, add the following line to your ~/.bashrc
alias startOF15="source /usr/lib/OpenFOAM-1.5/etc/bashrc"
And each time you want to use OpenFOAM just type startOF15 in the active terminal.
2.3.3 OpenFOAM-dev-1.5 under Ubuntu Lucid 10.04 LTS
In order to install the OpenFOAM-dev-1.5 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.
2.3.4 Debian
You can check, if you can install the openfoam binaries, like with Ubuntu Intrepid 8.10. 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 http://ppa.launchpad.net/cae-team/ppa/ubuntu 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
and/or
apt-get -b source openfoam-dev-1.5
and/or
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 startOF15="source /usr/lib/OpenFOAM-1.5/etc/bashrc"
And each time you want to use OpenFOAM just type startOF15 in the active terminal.
2.3.5 Debian Etch in Server Mode
Valid versions: 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.
2.3.5.1 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
3 Paraview and paraFoam
3.1 Troubleshooting paraFoam
If you have problems with paraFoam and the dev version you might have to recompile paraFoam (see http://www.opencfd.co.uk/openfoam/doc/README.html#Paraview). 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.