There are several instructions for building OpenFOAM on OS X (1, 2). They assume that you are using Macports which was not a case with me. So I've decided to build OpenFOAM with clang as it comes with developer tools. My patches are based upon ones by Bernhard Gschaider, basically I've applied his patches, removed Macports stuff and added clang stuff. Patches and build process was tested on OS X 10.9 with clang --version:
Apple LLVM version 5.0 (clang-500.2.79) (based on LLVM 3.3svn)
Target: x86_64-apple-darwin13.0.0
Thread model: posix
So, to build OpenFOAM you need:- Download OpenFOAM and Third-Party source packs here.
- Create a disk image with Disk Utility. One needs this image to create case sensitive file system (see 1 or 2 for instructions with pictures).
- Download patches for OpenFOAM and Third-Party source packs. They assume you are building 64-bit version of the code as there're no
wmakerules for 32-bit compilation. - Mount created disk image to $HOME/OpenFOAM
- Unpack source packs to $HOME/OpenFOAM
- Copy patch files to source folders (OpenFOAM-2.2.2-1387556919.patch to OpenFOAM-2.2.2, ThirdParty-2.2.2-1387556964.patch to ThirdParty-2.2.2).
- Apply patches with
git apply [patch file name]command. In addition to changing contents of the files git sets modes so you won't need to dochmod 0755 [file]on executable files created by the patches. - Edit $HOME/OpenFOAM/OpenFOAM-2.2.2/ets/bashrc file to correspond to your system. I've tested build with OPENMPI (1.6.3, in ThirdParty source pack), and with SYSTEMOPENMPI (1.7.3, installed with Homebrew, I guess if you're using Macports you'll need to modify
wmakerules). - Source bashrc with
source etc/bashrc - Now you can execute
Allwmakescript to build OpenFOAM.
bashrc file automatically each time you launch Terminal one can add following lines to $HOME/.profile file:# OpenFOAM
if [ -f $HOME/.OpenFOAM ]; then
OF_VER=$(cat $HOME/.OpenFOAM)
if [ ! -f $HOME/OpenFOAM/OpenFOAM-$OF_VER/etc/bashrc ]; then
hdiutil attach -quiet -mountpoint $HOME/OpenFOAM OpenFOAM-$OF_VER.dmg &&
. $HOME/OpenFOAM/OpenFOAM-$OF_VER/etc/bashrc
else
. $HOME/OpenFOAM/OpenFOAM-$OF_VER/etc/bashrc
fi
fi
And create $HOME/.OpenFOAM file with OpenFOAM version in it with:echo '2.2.2' > $HOME/.OpenFOAM
Now you can test installation with standard icoFoam run:$ mkdir -p $FOAM_RUN
$ run
$ cp -r $FOAM_TUTOTALS/incompressible/icoFoam/cavity .
$ cd cavity
$ blockMesh
$ icoFoam
Also maybe it's worth to move $FOAM_RUN folder somewhere outside of disk image and create symlink.That's it.
Aucun commentaire:
Enregistrer un commentaire