Download OpenFOAM and Third-Party source pack at: http://www.openfoam.com/download/source.php
Pre-setup requirements
% . $HOME/OpenFOAM/OpenFOAM-1.7.1/etc/bashrc
Make sure that you use GNU compilers 4.4 version and not the version that comes with RHEL or CentOS by default.
Building OPENFOAM
Many of the steps below are outlined in the Download page: http://www.openfoam.com/download/source.php
Create a directory
% mkdir $HOME/OpenFOAM
% cd ~/OpenFOAM
% tar xvfz tar xvfz OpenFOAM-1.7.1.gtgz
% tar xvfz ThirdParty-1.7.1.gtgz
Package Dependencies
Depending how you install your OS, you may need this package:
libXt-devel
Otherwise you might run into this at compile time:
/usr/bin/ld: cannot find –liberty
Makefile changes for GNU compilers
Make sure you have GCC 4.4 installed. For RHEL, you can install gcc44-4.4.0-6.el5 and gcc44-c++-4.4.0-6.el5 using yum. Then make changes to these files.
% cd $HOME/OpenFOAM/OpenFOAM-1.7.1/wmake/rules/linux64Gcc
% vim c
cc = gcc44 -m64
% vim c++
CC = g++44 -m64
Makefile changes for Intel compilers
% vim $HOME/OpenFOAM/OpenFOAM-1.7.1/etc/settings.sh
: ${WM_COMPILER:=Icc}; export WM_COMPILER
Makefile changes for Platform MPI
% vim $HOME/OpenFOAM/OpenFOAM-1.7.1/etc/bashrc
: ${WM_MPLIB:=MPI-MVAPICH2}; export WM_MPLIB
% vim mplibHPMPI
Makefile changes for compilers and Open MPI
% vim $HOME/OpenFOAM/OpenFOAM-1.7.1/etc/bashrc
: ${WM_MPLIB:=MPI-MVAPICH2}; export WM_MPLIB
% vim mplibOPENMPI
Makefile changes for compilers and Intel MPI
% vim $HOME/OpenFOAM/OpenFOAM-1.7.1/etc/bashrc
: ${WM_MPLIB:=IMPI}; export WM_MPLIB
% vim $HOME/OpenFOAM/OpenFOAM-1.7.1/etc/settings.sh
IMPI)
export MPI_HOME=/application/intel/impi/intel64
export MPI_ARCH_PATH=$MPI_HOME
_foamAddPath $MPI_ARCH_PATH/bin
_foamAddLib $MPI_ARCH_PATH/lib
export FOAM_MPI_LIBBIN=$FOAM_LIBBIN/impi
;;
Makefile changes for MVAPICH2
Make sure that MVAPICH2 has the name MPI included otherwise OpenFOAM will not be able to detect it.
% vim $HOME/OpenFOAM/OpenFOAM-1.7.1/etc/bashrc
: ${WM_MPLIB:=MPI-MVAPICH2}; export WM_MPLIB
% vim $HOME/OpenFOAM/OpenFOAM-1.7.1/etc/settings.sh
MPI-MVAPICH2)
export MPI_HOME=/application/mvapich2-1.5-gnu
export MPI_ARCH_PATH=$MPI_HOME
_foamAddPath $MPI_ARCH_PATH/bin
_foamAddLib $MPI_ARCH_PATH/lib
export FOAM_MPI_LIBBIN=$FOAM_LIBBIN/mvapich2
;;
Build the sources
% Allwmake
Verifying the installation
$ cd /home/pak/OpenFOAM/OpenFOAM-1.7.1/bin
$ ./foamInstallationTest
Running OpenFOAM
Copy over the tutorial and run the first example
Create a project directory within the $HOME/OpenFOAM directory named <USER>-1.7.1 (e.g. chris-1.7.1 for user chris and OpenFOAM version 1.7.1) and create a directory named run within it, e.g. by typing:
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:
% mkdir -p $FOAM_RUN
% cp -r $FOAM_TUTORIALS $FOAM_RUN
Run the first example case of incompressible laminar flow in a cavity:
% cd $FOAM_RUN/tutorials/incompressible/icoFoam/cavity
% blockMesh
% icoFoam
% paraFoam
Running OpenFOAM in Parallel
Create a new case called “damBreakFine”
% cd $FOAM_RUN/tutorials/multiphase/interFoam/laminar
% mkdir damBreakFine
% cp -r damBreak/0 damBreakFine
% cp -r damBreak/system damBreakFine
% cp -r damBreak/constant damBreakFine
Increase the mesh density and mesh grading in file:
constant/polyMesh/blockMeshDict /blockMeshDict
blocks
(
hex (0 1 2 3 4 5 6 7) (1000 1000 1) simpleGrading (1 1 1)
);
Change the deltaT for the steps
In system/controlDict, adjust deltaT to 0.0005 to give 1000 steps.
Also change the writeInterval to control the rate data get written.
endTime 0.5;
deltaT 0.0005;
writeInterval 20000;
Specify the number of Subdomains for a parallel run
Add “system/decomposeParDict” file for case of interest, then modify the “numberOfSubdomains” and the method of Coeffs to the to the number of processes you plan to run:
numberOfSubdomains=168
simpleCoeffs
{
n ( 4 6 7 );
delta 0.001;
}
% decomposePar -force
8.6 use Open MPI to launch the parallel job
% mpirun -np 168 –hostfile ~/hostfile.14 interFoam -parallel