OpenFOAM

From UFRC
Revision as of 19:08, 16 February 2011 by Hpc (talk | contribs) (→‎Using OpenFOAM)
Jump to navigation Jump to search

Using OpenFOAM

Before using OpenFOAM, you will need to set up your environment for it. This can be easily down with the following commands

  1. source /apps/OpenFOAM/OpenFOAM-1.7.1/etc/bashrc
  2. export PATH=/apps/OpenFOAM/tools/bin:$PATH
  3. export LD_LIBRARY_PATH=/apps/OpenFOAM/tools/lib64:$LD_LIBRARY_PATH

To use the ParaView-based visualization tools, you will need to

  1. Run an X server on your local display
  2. Use X11 forwarding with ssh. For example,
    1. mylaptop$ ssh -Y submit.hpc.ufl.edu
    2. submit1$ ssh -Y test04
    3. source /apps/OpenFOAM/OpenFOAM-1.7.1/etc/bashrc
    4. export PATH=/apps/OpenFOAM/tools/bin:$PATH
    5. export LD_LIBRARY_PATH=/apps/OpenFOAM/tools/lib64:$LD_LIBRARY_PATH

You should then be able to run OpenFOAM visualization commands and view the results on your local display.

Building/Installing OpenFoam

Version 1.7.1

Needs to be built with gcc 4.4.4 or newer. Gcc 4.4.4, in turn, requires a bunch of stuff so we have the following (in the order in which they should be built).

gmp-5.0.1

./configure --prefix=/apps/openfoam/tools
make -j 4
make install

ppl-0.10.2

There is an error in the configure script due to a change in GMP fixed as below.

diff -u configure.orig configure
--- configure.orig	2011-02-11 12:29:38.000000000 -0500
+++ configure	2011-02-10 13:34:14.000000000 -0500
@@ -16473,7 +16473,7 @@
       || GMP_LIMB_BITS != mp_bits_per_limb) {
     std::cerr
       << "GMP header (gmp.h) and library (ligmp.*) bits-per-limb mismatch:\n"
-      << "header gives " << __GMP_BITS_PER_MP_LIMB << ";\n"
+      << "header gives " << GMP_LIMB_BITS << ";\n"
       << "library gives " << mp_bits_per_limb << ".\n"
       << "This probably means you are on a bi-arch system and\n"
       << "you are compiling with the wrong header or linking with\n"

./configure --prefix=/apps/openfoam/tools \
            --with-libgmp-prefix=/apps/openfoam/tools \
            --with-libgmpxx-prefix=/apps/openfoam/tools \
            --enable-cxx
make -j4
make install

mpfr-2.4.2

./configure --prefix=/apps/openfoam/tools \
            --with-gmp=/apps/openfoam/tools
make -j 4
make install

cloog-ppl (0.15.9)

./configure --prefix=/apps/openfoam/tools \
            --with-gmp=/apps/openfoam/tools \
            --with-ppl=/apps/openfoam/tools  
make -j 4
make install

gcc (4.4.4)

../configure --prefix=/apps/openfoam/tools 
             --with-gmp=/apps/openfoam/tools \
             --with-mpfr=/apps/openfoam/tools \
             --with-ppl=/apps/openfoam/tools \
             --with-cloog=/apps/openfoam/tools
make -j 8
make install

OpenFOAM: Build Notes

  1. Be wary of changing their default directory structure. Although it appears easy to do in the "etc/bashrc" file, there are places in the wmake build system that seem to be hardwired for the "$WM_PROJECT-$WM_PROJECT_VERSION" structure and parts of the build will fail.
  2. When building the support software (ppl, gmp, etc.), it is probably best to specify "--libdir=<prefix>/lib64" to the configure script. Gcc will build both 32 and 64 bit libraries so you will end up with a mix of 32 and 64-bit libraries in your <prefix>/lib dir if you aren't specific.
  3. The default OpenFOAM installation denies access to most of the files and directories to "other". If others are to use the install, the permissions on many files have to be changed from 750 -> 755, 740 -> 744, and 640 -> 644.

ParaView (3.8.0)

Rather than building ParaView and all its associated dependencies from source, I did the following.

  1. cd /var/tmp
  2. wget http://www.paraview.org/files/v3.8/ParaView-3.8.1-Linux-x86_64.tar.gz
  3. tar xvf ParaView-3.8.1-Linux-x86_64.tar.gz
  4. cd /apps/OpenFOAM/ThirdParty-1.7.1/platforms/linux64Gcc
  5. mkdir paraview-3.8.1
  6. ln -s paraview-3.8.1 paraview-3.8.0
  7. paraview-3.8.1
  8. (cd /var/tmp/ParaView-3.8.1-Linux-x86_64/; tar cf - *) | tar xvf -

This just puts the downloaded version of ParaView (and all the support libraries) in the location expected by OpenFOAM - no need to update PATH and LD_LIBRARY_PATH with new entries for paraview. They are already included in the paths set by the OpenFOAM bashrc file.

Yes, there is a minor version difference but as long as it works, we won't quibble over the details.