#!/bin/bash -l echo "RRZE built script for OpenFOAM-1.7.1" echo "Thomas Zeiser, Sept. 2010" echo #*# OpenFOAM-1.7.1.gtgz and ThirdParty-1.7.1.gtgz extract to 453 MB in 36'964 files or directories #*# the amount of data will grow up to 1.6 GB in 44'994 files or directories while compilation #*# the amount of data will grow up to 6.4 GB in 120'635 files or directories after ThirdParty things are built (qt, paraview; no openmpi) # on Ubuntu (8.04) make sure the following packages are installed: # binutils-dev because of /usr/lib/libiberty.a # libxt-dev because of X11/Intrinsic.h #*# aptitude install flex bison binutils-dev libxt-dev # and for building qt #*# aptitude install libxext-dev libglib2.0-dev libSM-dev libxrender-dev libfontconfig1-dev libglu1-mesa-dev libglu-dev #*# aptitude install libfreetype6-dev libx11-dev libxcursor-dev libxfixes-dev libxft-dev libxi-dev libxrandr-dev #*# wget http://get.qt.nokia.com/qt/source/qt-everywhere-opensource-src-4.6.3.tar.gz # svn co https://of-interfaces.svn.sourceforge.net/svnroot/of-interfaces/trunk/vtkPOpenFOAMReader # tar czvf vtkPOpenFOAMReader.tgz vtkPOpenFOAMReader echo "extracting official tar files" if [ -f `dirname $0`/OpenFOAM-1.7.1.gtgz \ -a -f `dirname $0`/ThirdParty-1.7.1.gtgz \ -a -f `dirname $0`/qt-everywhere-opensource-src-4.6.3.tar.gz \ -a -f `dirname $0`/vtkPOpenFOAMReader.tgz ]; then time ( tar xf `dirname $0`/OpenFOAM-1.7.1.gtgz tar xf `dirname $0`/ThirdParty-1.7.1.gtgz tar xf `dirname $0`/qt-everywhere-opensource-src-4.6.3.tar.gz mv qt-everywhere-opensource-src-4.6.3 ThirdParty-1.7.1 tar xf `dirname $0`/vtkPOpenFOAMReader.tgz mv vtkPOpenFOAMReader ThirdParty-1.7.1 ) else echo "Make sure all required source files are in the same directory as $0" echo "To get them, use:" cat << '_EOF_' wget http://downloads.sourceforge.net/foam/OpenFOAM-1.7.1.gtgz wget http://downloads.sourceforge.net/foam/ThirdParty-1.7.1.gtgz wget http://get.qt.nokia.com/qt/source/qt-everywhere-opensource-src-4.6.3.tar.gz svn co https://of-interfaces.svn.sourceforge.net/svnroot/of-interfaces/trunk/vtkPOpenFOAMReader tar czvf vtkPOpenFOAMReader.tgz vtkPOpenFOAMReader _EOF_ exit 1 fi echo "patching sources with RRZE modifications (Intel Compiler, Intel MPI, Optimization flags)" ## ThirdParty-1.7.1/scotch_5.1/src/Makefile.inc has to be removed as it is a link which cannot be patched rm ThirdParty-1.7.1/scotch_5.1/src/Makefile.inc sed -e '1,/^###start-of-patch###$/d' -e "s@xxMYxBUILDxDIRxx@$PWD@" $0 | patch -p 1 chmod u+x ThirdParty-1.7.1/makeQt-4.6.3 echo "loading required RRZE modules" module add intelmpi/4.0.0.028-intel intel64/11.1.072 cmake/2.6.4 echo "setting up environment" cd OpenFOAM-1.7.1 . etc/bashrc echo "building OpenFOAM - please be patient; the fastest compilation I've seen was >1h" time ( export WM_NCOMPPROCS=16 ./Allwmake >& make-icc-impi.log echo "last exit code: $?" ) echo "creating tar file with binary installation (not including *.o, *.dep, etc. from the build process)" # for some reason, the official Ubuntu packages contain */lnInclude/uptodate ... cd .. find OpenFOAM-1.7.1 | grep '/lnInclude' | egrep -v '/lnInclude/uptodate|/lnInclude$' > ExcludeList.$$ tar czf OF-1.7.1-inst-rrze.tgz --exclude=*/Make/linux64IccDPOpt --exclude=*.dep -X ExcludeList.$$ OpenFOAM-1.7.1 rm ExcludeList.$$ echo "continuing with Third Party directory" cd $WM_THIRD_PARTY_DIR echo "building Qt" QT_VERSION=4.6.3 time ./makeQt-${QT_VERSION} >& makeQt-${QT_VERSION}.log export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:${WM_THIRD_PARTY_DIR}/qt-everywhere-opensource-src-${QT_VERSION}/platforms/${WM_OPTIONS}/lib echo "building OpenFOAM's ParaView" time ./makeParaView >& makeParaView.log echo "build vtkPOpenFOAMReader (plugin to OpenFOAM's ParaView)" mkdir -p $WM_THIRD_PARTY_DIR/platforms/build-${WM_ARCH}${WM_COMPILER}/vtkPOpenFOAMReader time ( cd $WM_THIRD_PARTY_DIR/platforms/build-${WM_ARCH}${WM_COMPILER}/vtkPOpenFOAMReader export PATH=${WM_THIRD_PARTY_DIR}/qt-everywhere-opensource-src-${QT_VERSION}/bin:$PATH ( cmake $WM_THIRD_PARTY_DIR/vtkPOpenFOAMReader make make install ) >& makeVtkOFReader.log ) echo "creating tar file with binary installation of Qt and ParaView" cd $WM_THIRD_PARTY_DIR/.. tar czf TP-1.7.1-inst-rrze.tgz --exclude=*.debug \ --exclude=*/qt-everywhere-opensource-src-${QT_VERSION}/doc \ ThirdParty-1.7.1/qt-everywhere-opensource-src-4.6.3/platforms \ ThirdParty-1.7.1/platforms/linux64Icc exit 0 ###################################################################### ###start-of-patch### diff -u -r OF171/OpenFOAM-1.7.1/etc/bashrc OF171.rrze/OpenFOAM-1.7.1/etc/bashrc --- OF171/OpenFOAM-1.7.1/etc/bashrc 2010-08-24 16:47:33.000000000 +0200 +++ OF171.rrze/OpenFOAM-1.7.1/etc/bashrc 2010-09-09 13:15:07.000000000 +0200 @@ -42,7 +42,8 @@ # # Location of the OpenFOAM installation # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -foamInstall=$HOME/$WM_PROJECT +#RRZE/TZ foamInstall=$HOME/$WM_PROJECT +foamInstall=xxMYxBUILDxDIRxx # foamInstall=~$WM_PROJECT # foamInstall=/usr/local/$WM_PROJECT # foamInstall=/opt/$WM_PROJECT @@ -115,7 +116,8 @@ # Compiler: set to Gcc, Gcc43, Gcc44, or Icc (for Intel's icc) # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -: ${WM_COMPILER:=Gcc}; export WM_COMPILER +#RRZE/TZ : ${WM_COMPILER:=Gcc}; export WM_COMPILER +: ${WM_COMPILER:=Icc}; export WM_COMPILER unset WM_COMPILER_ARCH WM_COMPILER_LIB_ARCH @@ -132,7 +134,8 @@ : ${WM_COMPILE_OPTION:=Opt}; export WM_COMPILE_OPTION # WM_MPLIB = SYSTEMOPENMPI | OPENMPI | MPICH | MPICH-GM | HPMPI | MPI | QSMPI -: ${WM_MPLIB:=OPENMPI}; export WM_MPLIB +#RRZE/TZ : ${WM_MPLIB:=OPENMPI}; export WM_MPLIB +: ${WM_MPLIB:=INTELMPI}; export WM_MPLIB # Run options (floating-point signal handling and memory initialisation) @@ -167,11 +170,16 @@ 64) WM_ARCH=linux64 export WM_COMPILER_LIB_ARCH=64 - export WM_CC='gcc' - export WM_CXX='g++' - export WM_CFLAGS='-m64 -fPIC' - export WM_CXXFLAGS='-m64 -fPIC' - export WM_LDFLAGS='-m64' +#RRZE/TZ export WM_CC='gcc' +#RRZE/TZ export WM_CXX='g++' +#RRZE/TZ export WM_CFLAGS='-m64 -fPIC' +#RRZE/TZ export WM_CXXFLAGS='-m64 -fPIC' +#RRZE/TZ export WM_LDFLAGS='-m64' + export WM_CC='icc' + export WM_CXX='icpc' + export WM_CFLAGS='-O3 -axSSE2,SSE3,SSSE3,SSE4.1 -mssse3 -fPIC' + export WM_CXXFLAGS='-O3 -axSSE2,SSE3,SSSE3,SSE4.1 -mssse3 -fPIC' + export WM_LDFLAGS='-O3 -axSSE2,SSE3,SSSE3,SSE4.1 -mssse3' ;; *) echo "Unknown WM_ARCH_OPTION '$WM_ARCH_OPTION', should be 32 or 64" diff -u -r OF171/OpenFOAM-1.7.1/etc/cshrc OF171.rrze/OpenFOAM-1.7.1/etc/cshrc --- OF171/OpenFOAM-1.7.1/etc/cshrc 2010-08-24 16:47:44.000000000 +0200 +++ OF171.rrze/OpenFOAM-1.7.1/etc/cshrc 2010-09-09 13:15:07.000000000 +0200 @@ -41,7 +41,8 @@ # # Location of the OpenFOAM installation # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -set foamInstall = $HOME/$WM_PROJECT +#RRZE/TZ set foamInstall = $HOME/$WM_PROJECT +set foamInstall = xxMYxBUILDxDIRxx # set foamInstall = ~$WM_PROJECT # set foamInstall = /usr/local/$WM_PROJECT # set foamInstall = /opt/$WM_PROJECT @@ -102,7 +103,8 @@ # Compiler: set to Gcc, Gcc43, Gcc44 or Icc (for Intel's icc) # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -if ( ! $?WM_COMPILER ) setenv WM_COMPILER Gcc +#RRZE/TZ if ( ! $?WM_COMPILER ) setenv WM_COMPILER Gcc +if ( ! $?WM_COMPILER ) setenv WM_COMPILER Icc setenv WM_COMPILER_ARCH setenv WM_COMPILER_LIB_ARCH @@ -120,7 +122,8 @@ if ( ! $?WM_COMPILE_OPTION ) setenv WM_COMPILE_OPTION Opt # WM_MPLIB = SYSTEMOPENMPI | OPENMPI | MPICH | MPICH-GM | HPMPI | MPI | QSMPI -if ( ! $?WM_MPLIB ) setenv WM_MPLIB OPENMPI +#RRZE/TZ if ( ! $?WM_MPLIB ) setenv WM_MPLIB OPENMPI +if ( ! $?WM_MPLIB ) setenv WM_MPLIB INTELMPI # Run options (floating-point signal handling and memory initialisation) @@ -155,11 +158,16 @@ case 64: setenv WM_ARCH linux64 setenv WM_COMPILER_LIB_ARCH 64 - setenv WM_CC 'gcc' - setenv WM_CXX 'g++' - setenv WM_CFLAGS '-m64 -fPIC' - setenv WM_CXXFLAGS '-m64 -fPIC' - setenv WM_LDFLAGS '-m64' +#RRZE/TZ setenv WM_CC 'gcc' +#RRZE/TZ setenv WM_CXX 'g++' +#RRZE/TZ setenv WM_CFLAGS '-m64 -fPIC' +#RRZE/TZ setenv WM_CXXFLAGS '-m64 -fPIC' +#RRZE/TZ setenv WM_LDFLAGS '-m64' + setenv WM_CC 'icc' + setenv WM_CXX 'icpc' + setenv WM_CFLAGS '-O3 -axSSE2,SSE3,SSSE3,SSE4.1 -mssse3 -fPIC' + setenv WM_CXXFLAGS '-O3 -axSSE2,SSE3,SSSE3,SSE4.1 -mssse3 -fPIC' + setenv WM_LDFLAGS '-O3 -axSSE2,SSE3,SSSE3,SSE4.1 -mssse3' breaksw default: diff -u -r OF171/OpenFOAM-1.7.1/etc/settings.csh OF171.rrze/OpenFOAM-1.7.1/etc/settings.csh --- OF171/OpenFOAM-1.7.1/etc/settings.csh 2010-08-06 13:52:22.000000000 +0200 +++ OF171.rrze/OpenFOAM-1.7.1/etc/settings.csh 2010-09-09 16:28:44.407060745 +0200 @@ -257,6 +257,16 @@ setenv FOAM_MPI_LIBBIN $FOAM_LIBBIN/mpich-gm breaksw +#RRZE/TZ -start +case INTELMPI: + setenv MPI_ARCH_PATH $I_MPI_ROOT/intel64 +# _foamAddPath $MPI_ARCH_PATH/bin + _foamAddLib $MPI_ARCH_PATH/lib + + setenv FOAM_MPI_LIBBIN $FOAM_LIBBIN/intelmpi + breaksw +#RRZE/TZ -end + case HPMPI: setenv MPI_HOME /opt/hpmpi setenv MPI_ARCH_PATH $MPI_HOME diff -u -r OF171/OpenFOAM-1.7.1/etc/settings.sh OF171.rrze/OpenFOAM-1.7.1/etc/settings.sh --- OF171/OpenFOAM-1.7.1/etc/settings.sh 2010-08-06 13:52:22.000000000 +0200 +++ OF171.rrze/OpenFOAM-1.7.1/etc/settings.sh 2010-09-09 16:28:54.716816418 +0200 @@ -282,6 +282,16 @@ export FOAM_MPI_LIBBIN=$FOAM_LIBBIN/mpich-gm ;; +#RRZE/TZ -start +INTELMPI) + export MPI_ARCH_PATH=$I_MPI_ROOT/intel64 +# _foamAddPath $MPI_ARCH_PATH/bin + _foamAddLib $MPI_ARCH_PATH/lib + + export FOAM_MPI_LIBBIN=$FOAM_LIBBIN/intelmpi + ;; +#RRZE/TZ -end + HPMPI) export MPI_HOME=/opt/hpmpi export MPI_ARCH_PATH=$MPI_HOME diff -u -r OF171/OpenFOAM-1.7.1/src/turbulenceModels/compressible/RAS/derivedFvPatchFields/turbulentHeatFluxTemperature/turbulentHeatFluxTemperatureFvPatchScalarField.C OF171.rrze/OpenFOAM-1.7.1/src/turbulenceModels/compressible/RAS/derivedFvPatchFields/turbulentHeatFluxTemperature/turbulentHeatFluxTemperatureFvPatchScalarField.C --- OF171/OpenFOAM-1.7.1/src/turbulenceModels/compressible/RAS/derivedFvPatchFields/turbulentHeatFluxTemperature/turbulentHeatFluxTemperatureFvPatchScalarField.C 2010-06-15 22:54:00.000000000 +0200 +++ OF171.rrze/OpenFOAM-1.7.1/src/turbulenceModels/compressible/RAS/derivedFvPatchFields/turbulentHeatFluxTemperature/turbulentHeatFluxTemperatureFvPatchScalarField.C 2010-09-09 13:15:07.000000000 +0200 @@ -38,6 +38,7 @@ // * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * // +/* RRZE/TZ: icpc - http://www.cfd-online.com/Forums/openfoam-installation/73040-error-compiling-openfoam-1-6-x-intel-compiler-icc.html#post247360 template<> const char* NamedEnum:: @@ -46,7 +47,7 @@ "power", "flux" }; - +*/ const NamedEnum turbulentHeatFluxTemperatureFvPatchScalarField::heatSourceTypeNames_; @@ -234,4 +235,12 @@ // ************************************************************************* // - +/*RRZE/icpc*/ +template<> +const char* +Foam::NamedEnum:: +names[] = +{ +"power", +"flux" +}; diff -u -r OF171/OpenFOAM-1.7.1/wmake/rules/linux64Icc/c++ OF171.rrze/OpenFOAM-1.7.1/wmake/rules/linux64Icc/c++ --- OF171/OpenFOAM-1.7.1/wmake/rules/linux64Icc/c++ 2010-06-01 13:43:51.000000000 +0200 +++ OF171.rrze/OpenFOAM-1.7.1/wmake/rules/linux64Icc/c++ 2010-09-09 13:15:07.000000000 +0200 @@ -1,6 +1,7 @@ .SUFFIXES: .C .cxx .cc .cpp -c++WARN = -wd327,654,819,1125,1476,1505,1572 +#RRZE/TZ c++WARN = -wd327,654,819,1125,1476,1505,1572 +c++WARN = -diag-disable 327,654,819,1125,1476,1505,1572,597 CC = icpc diff -u -r OF171/OpenFOAM-1.7.1/wmake/rules/linux64Icc/c++Opt OF171.rrze/OpenFOAM-1.7.1/wmake/rules/linux64Icc/c++Opt --- OF171/OpenFOAM-1.7.1/wmake/rules/linux64Icc/c++Opt 2010-06-01 13:43:51.000000000 +0200 +++ OF171.rrze/OpenFOAM-1.7.1/wmake/rules/linux64Icc/c++Opt 2010-09-09 13:15:07.000000000 +0200 @@ -1,2 +1,3 @@ c++DBUG = -c++OPT = -xT -O3 -no-prec-div +#RRZE/TZ c++OPT = -xT -O3 -no-prec-div +c++OPT = -O3 -axSSE2,SSE3,SSSE3,SSE4.1 -mssse3 -no-prec-div diff -u -r OF171/ThirdParty-1.7.1/makeParaView OF171.rrze/ThirdParty-1.7.1/makeParaView --- OF171/ThirdParty-1.7.1/makeParaView 2010-06-24 12:49:40.000000000 +0200 +++ OF171.rrze/ThirdParty-1.7.1/makeParaView 2010-09-09 17:50:42.666872190 +0200 @@ -46,14 +46,14 @@ # ~~~~~~~~~~~~~ # MPI support: -withMPI=false -MPI_MAX_PROCS=32 +withMPI=true +MPI_MAX_PROCS=48 # Python support: # note: script will try to determine the appropriate python library. # If it fails, specify the path using the PYTHON_LIBRARY variable -withPYTHON=false -PYTHON_LIBRARY="" +withPYTHON=true +PYTHON_LIBRARY="/usr/lib64/libpython2.5.so" # PYTHON_LIBRARY="/usr/lib64/libpython2.6.so.1.0" # MESA graphics support: @@ -65,7 +65,7 @@ withQT=true # Set the path to the Qt-4.5 (or later) qmake if the system Qt is older -QMAKE_PATH="" +QMAKE_PATH="$WM_THIRD_PARTY_DIR/qt-everywhere-opensource-src-4.6.3/platforms/${WM_OPTIONS}/bin/qmake" # # NO FURTHER EDITING BELOW THIS LINE diff -u OF171/ThirdParty-1.7.1/scotch_5.1/src/Makefile.inc OF171.rrze/ThirdParty-1.7.1/scotch_5.1/src/Makefile.inc --- /dev/null 2010-08-27 11:01:24.460005000 +0200 +++ OF171.rrze/ThirdParty-1.7.1/scotch_5.1/src/Makefile.inc 2010-09-09 11:50:31.437073685 +0200 @@ -0,0 +1,27 @@ +EXE = +#MJ LIB = .a +LIB = .so +OBJ = .o + +MAKE = make +AR = ar +ARFLAGS = -ruv + +CAT = cat +#RRZE/TZ CCS = gcc +#RRZE/TZ CCP = mpicc +#RRZE/TZ CCD = mpicc +#RRZE/TZ CFLAGS = -O3 -fPIC -DCOMMON_TIMING_OLD -Drestrict=__restrict -DCOMMON_FILE_COMPRESS_GZ -DCOMMON_PTHREAD -DCOMMON_RANDOM_FIXED_SEED -DSCOTCH_PTHREAD -DSCOTCH_RENAME +CCS = icc +CCP = mpiicc +CCD = mpiicc +CFLAGS = -O3 -axSSE2,SSE3,SSSE3,SSE4.1 -mssse3 -fPIC -DCOMMON_TIMING_OLD -Drestrict=__restrict -DCOMMON_FILE_COMPRESS_GZ -DCOMMON_PTHREAD -DCOMMON_RANDOM_FIXED_SEED -DSCOTCH_PTHREAD -DSCOTCH_RENAME +LDFLAGS = -lz -lm -lrt +LIBLDFLAGS = -shared +CP = cp +LEX = flex +LN = ln +MKDIR = mkdir +MV = mv +RANLIB = ranlib +YACC = bison -y diff -u -r OF171/ThirdParty-1.7.1/tools/makeThirdPartyFunctions OF171.rrze/ThirdParty-1.7.1/tools/makeThirdPartyFunctions --- OF171/ThirdParty-1.7.1/tools/makeThirdPartyFunctions 2010-07-13 11:49:25.000000000 +0200 +++ OF171.rrze/ThirdParty-1.7.1/tools/makeThirdPartyFunctions 2010-09-09 17:29:17.468826619 +0200 @@ -46,7 +46,7 @@ if [ -r /proc/cpuinfo ] then WM_NCOMPPROCS=$(egrep "^processor" /proc/cpuinfo | wc -l) - [ $WM_NCOMPPROCS -le 8 ] || WM_NCOMPPROCS=8 + [ $WM_NCOMPPROCS -le 16 ] || WM_NCOMPPROCS=16 else WM_NCOMPPROCS=1 fi diff -u /dev/null OF171.rrze/OpenFOAM-1.7.1/wmake/rules/linux64Icc/mplibINTELMPI --- /dev/null 2010-08-27 11:01:24.460005000 +0200 +++ OF171.rrze/OpenFOAM-1.7.1/wmake/rules/linux64Icc/mplibINTELMPI 2010-09-09 13:15:07.000000000 +0200 @@ -0,0 +1,4 @@ +PFLAGS = -DMPICH_IGNORE_CXX_SEEK +PINC = -I$(I_MPI_ROOT)/include64 +PLIBS = -L$(I_MPI_ROOT)/lib64 -lmpi +#PLIBS = -L$(I_MPI_ROOT)/lib64 -Xlinker --enable-new-dtags -Xlinker -rpath -Xlinker $(I_MPI_ROOT)/lib64 -lmpigc4 -lmpi -lmpigf -lmpigi diff -u /dev/null OF171.rrze/ThirdParty-1.7.1/makeQt-4.6.3 --- /dev/null 2010-08-27 11:01:24.460005000 +0200 +++ OF171.rrze/ThirdParty-1.7.1/makeQt-4.6.3 2010-09-09 16:55:01.617054831 +0200 @@ -0,0 +1,53 @@ +#!/bin/bash + +#------------------------------------------------------------------------------ +# +# motivated by /lrz/sys/applications/OpenFOAM/OpenFOAM-1.7.x86_64/ThirdParty-1.7 +# +#------------------------------------------------------------------------------ +# +# Script +# makeQt +# +# Description +# Build script for Qt-4.6.3 +# +#------------------------------------------------------------------------------ + +QT_VERSION=4.6.3 +QT_HOME=${WM_THIRD_PARTY_DIR}/qt-everywhere-opensource-src-${QT_VERSION} +QT_ARCH_PATH=${QT_HOME}/platforms/${WM_OPTIONS} + +if [ ! -d $QT_ARCH_PATH ] +then + cd ${QT_HOME} + + make distclean + + rm -rf ${QT_ARCH_PATH} + + /bin/echo -e "o\nyes\n" | ./configure \ + --prefix=${QT_ARCH_PATH} \ + -nomake demos \ + -nomake examples + + if [ -r /proc/cpuinfo ] + then + WM_NCOMPPROCS=$(egrep "^processor" /proc/cpuinfo | wc -l) + [ $WM_NCOMPPROCS -le 16 ] || WM_NCOMPPROCS=16 + + echo "Building on " $WM_NCOMPPROCS " cores" + + time make -j $WM_NCOMPPROCS + else + time make + fi + + make install + + echo " Finished building Qt-$QT_VERSION" +else + echo " Qt-$QT_VERSION already built." +fi + +# ----------------------------------------------------------------- end-of-file