diff --git a/easybuild/easyconfigs/o/OpenFOAM/OpenFOAM-8-cleanup.patch b/easybuild/easyconfigs/o/OpenFOAM/OpenFOAM-8-cleanup.patch new file mode 100644 index 00000000000..2b4a0880730 --- /dev/null +++ b/easybuild/easyconfigs/o/OpenFOAM/OpenFOAM-8-cleanup.patch @@ -0,0 +1,297 @@ +# This patch removes all need for the ThirdParty files of OpenFOAM: +# we use EB dependencies for everything. It adjusts the paths, variables, etc +# We also let the install dir, compiler, etc be set by EB. +# Lastly, we also fix a small compile issue in 'ptscotchDecomp.C' +# by Jiri Furst , based on patch for OpenFOAM 5.0 and 4.1 by +# Kennet Hoste (HPC-UGent) and Ward Poelmans +diff -ru OpenFOAM-7-version-7.orig/applications/utilities/mesh/manipulation/setSet/Allwmake OpenFOAM-7-version-7/applications/utilities/mesh/manipulation/setSet/Allwmake +--- OpenFOAM-7-version-7.orig/applications/utilities/mesh/manipulation/setSet/Allwmake 2018-07-09 18:01:02.000000000 +0200 ++++ OpenFOAM-7-version-7/applications/utilities/mesh/manipulation/setSet/Allwmake 2018-08-14 11:18:48.188975085 +0200 +@@ -7,19 +7,12 @@ + unset COMP_FLAGS LINK_FLAGS + + # Use readline if available +-if [ -f /usr/include/readline/readline.h ] ++if [ -f $EBROOTLIBREADLINE/include/readline/readline.h ] + then + echo " found -- enabling readline support." + export COMP_FLAGS="-DHAS_READLINE" + +- # readline may require ncurses +- if [ -f /usr/include/ncurses/ncurses.h ] +- then +- echo " found -- maybe required by readline." +- export LINK_FLAGS="-lreadline -lncurses" +- else +- export LINK_FLAGS="-lreadline" +- fi ++ export LINK_FLAGS="-L$EBROOTLIBREADLINE/lib -lreadline -L$EBROOTNCURSES -lncurses" + fi + + wmake $targetType +diff -ru OpenFOAM-7-version-7.orig/applications/utilities/postProcessing/graphics/PVReaders/Allwmake OpenFOAM-7-version-7/applications/utilities/postProcessing/graphics/PVReaders/Allwmake +--- OpenFOAM-7-version-7.orig/applications/utilities/postProcessing/graphics/PVReaders/Allwmake 2018-07-09 18:01:02.000000000 +0200 ++++ OpenFOAM-7-version-7/applications/utilities/postProcessing/graphics/PVReaders/Allwmake 2018-08-14 11:21:25.280419729 +0200 +@@ -17,8 +17,8 @@ + fi + + # Ensure CMake gets the correct C/C++ compilers +-[ -n "$WM_CC" ] && export CC="$WM_CC" +-[ -n "$WM_CXX" ] && export CXX="$WM_CXX" ++#[ -n "$WM_CC" ] && export CC="$WM_CC" ++#[ -n "$WM_CXX" ] && export CXX="$WM_CXX" + + wmake $targetType vtkPVblockMesh + wmake $targetType vtkPVFoam +diff -ru OpenFOAM-8.orig/applications/utilities/postProcessing/graphics/PVReaders/CMakeLists.txt OpenFOAM-8/applications/utilities/postProcessing/graphics/PVReaders/CMakeLists.txt +--- OpenFOAM-8.orig/applications/utilities/postProcessing/graphics/PVReaders/CMakeLists.txt 2020-07-24 09:22:59.409594780 +0200 ++++ OpenFOAM-8/applications/utilities/postProcessing/graphics/PVReaders/CMakeLists.txt 2020-07-24 09:46:24.856457402 +0200 +@@ -2,6 +2,8 @@ + + PROJECT(PVReaders) + ++FIND_PACKAGE(MPI REQUIRED) ++ + FIND_PACKAGE(ParaView REQUIRED) + + INCLUDE(GNUInstallDirs) +diff -ru OpenFOAM-7-version-7.orig/etc/bashrc OpenFOAM-7-version-7/etc/bashrc +--- OpenFOAM-7-version-7.orig/etc/bashrc 2018-07-09 18:01:02.000000000 +0200 ++++ OpenFOAM-7-version-7/etc/bashrc 2018-08-14 11:29:14.168761602 +0200 +@@ -43,8 +43,9 @@ + # Please set to the appropriate path if the default is not correct. + # + [ "$BASH" -o "$ZSH_NAME" ] && \ +-export FOAM_INST_DIR=$(cd $(dirname ${BASH_SOURCE:-$0})/../.. && pwd -P) || \ +-export FOAM_INST_DIR=$HOME/$WM_PROJECT ++#export FOAM_INST_DIR=$(cd $(dirname ${BASH_SOURCE:-$0})/../.. && pwd -P) || \ ++#export FOAM_INST_DIR=$HOME/$WM_PROJECT ++# For Easybuild: set by the module + # export FOAM_INST_DIR=~$WM_PROJECT + # export FOAM_INST_DIR=/opt/$WM_PROJECT + # export FOAM_INST_DIR=/usr/local/$WM_PROJECT +diff -ru OpenFOAM-7-version-7.orig/etc/config.sh/CGAL OpenFOAM-7-version-7/etc/config.sh/CGAL +--- OpenFOAM-7-version-7.orig/etc/config.sh/CGAL 2020-07-01 08:32:09.046842000 +0200V ++++ OpenFOAM-7-version-7/etc/config.sh/CGAL 2020-07-01 08:40:13.226755000 +0200 +@@ -39,22 +39,7 @@ + # + #------------------------------------------------------------------------------ + +-boost_version=boost-system +-#boost_version=boost-1.55.0 +-#boost_version=boost-1.72.0 +- +-cgal_version=cgal-system +-#cgal_version=CGAL-4.10 +-#cgal_version=CGAL-5.0.2 +- +-if [ "$boost_version" != "boost-system" ] +-then +- export BOOST_ARCH_PATH=$WM_THIRD_PARTY_DIR/$boost_version +-fi +- +-if [ "$cgal_version" != "cgal-system" ] +-then +- export CGAL_ARCH_PATH=$WM_THIRD_PARTY_DIR/$cgal_version +-fi ++export CGAL_ARCH_PATH=$EBROOTCGAL ++export BOOST_ARCH_PATH=$EBROOTBOOST + + #------------------------------------------------------------------------------ +diff -ru OpenFOAM-7-version-7.orig/etc/config.sh/gperftools OpenFOAM-7-version-7/etc/config.sh/gperftools +--- OpenFOAM-7-version-7.orig/etc/config.sh/gperftools 2018-07-09 18:01:02.000000000 +0200 ++++ OpenFOAM-7-version-7/etc/config.sh/gperftools 2018-08-14 11:37:07.582078984 +0200 +@@ -29,13 +29,7 @@ + # + #------------------------------------------------------------------------------ + +-version=svn +-gperftools_install=$WM_THIRD_PARTY_DIR/platforms/$WM_ARCH$WM_COMPILER +- +-GPERFTOOLS_VERSION=gperftools-$version +-GPERFTOOLS_ARCH_PATH=$gperftools_install/$GPERFTOOLS_VERSION +- +-export PATH=$GPERFTOOLS_ARCH_PATH/bin:$PATH +-export LD_LIBRARY_PATH=$GPERFTOOLS_ARCH_PATH/lib:$LD_LIBRARY_PATH ++GPERFTOOLS_VERSION=gperftools-$EBVERSIONGPERFTOOLS ++GPERFTOOLS_ARCH_PATH=$EBROOTGPERFTOOLS + + #------------------------------------------------------------------------------ +diff -ru OpenFOAM-7-version-7.orig/etc/config.sh/metis OpenFOAM-7-version-7/etc/config.sh/metis +--- OpenFOAM-7-version-7.orig/etc/config.sh/metis 2018-07-09 18:01:02.000000000 +0200 ++++ OpenFOAM-7-version-7/etc/config.sh/metis 2018-08-14 11:39:06.204657280 +0200 +@@ -34,7 +34,7 @@ + # + #------------------------------------------------------------------------------ + +-export METIS_VERSION=metis-5.1.0 +-export METIS_ARCH_PATH=$WM_THIRD_PARTY_DIR/platforms/$WM_ARCH$WM_COMPILER$WM_PRECISION_OPTION$WM_LABEL_OPTION/$METIS_VERSION ++export METIS_VERSION=metis-$EBVERSIONMETIS ++export METIS_ARCH_PATH=$EBROOTMETIS + + #------------------------------------------------------------------------------ +diff -ru OpenFOAM-7-version-7.orig/etc/config.sh/mpi OpenFOAM-7-version-7/etc/config.sh/mpi +--- OpenFOAM-7-version-7.orig/etc/config.sh/mpi 2018-07-09 18:01:02.000000000 +0200 ++++ OpenFOAM-7-version-7/etc/config.sh/mpi 2018-08-14 11:45:15.876343167 +0200 +@@ -257,6 +257,9 @@ + _foamAddPath $MPI_ARCH_PATH/bin64 + _foamAddLib $MPI_ARCH_PATH/lib64 + ;; ++EASYBUILDMPI) ++ export FOAM_MPI=mpi ++ ;; + *) + export FOAM_MPI=dummy + ;; +diff -ru OpenFOAM-7-version-7.orig/etc/config.sh/paraview OpenFOAM-7-version-7/etc/config.sh/paraview +--- OpenFOAM-7-version-7.orig/etc/config.sh/paraview 2018-07-09 18:01:02.000000000 +0200 ++++ OpenFOAM-7-version-7/etc/config.sh/paraview 2018-08-14 11:48:56.859557664 +0200 +@@ -41,21 +41,6 @@ + ) \ + && PATH="$cleaned" + +-# Determine the cmake to be used +-unset CMAKE_HOME +-for cmake in cmake-3.2.1 cmake-2.8.12.1 cmake-2.8.8 cmake-2.8.4 cmake-2.8.3 \ +- cmake-2.8.1 cmake-3.9.0 +-do +- cmake=$WM_THIRD_PARTY_DIR/platforms/$WM_ARCH$WM_COMPILER/$cmake +- if [ -r $cmake ] +- then +- export CMAKE_HOME=$cmake +- export CMAKE_ROOT=$cmake +- export PATH=$CMAKE_HOME/bin:$PATH +- break +- fi +-done +- + #- ParaView version, automatically determine major version + #export ParaView_VERSION=4.0.1 + #export ParaView_VERSION=4.1.0 +@@ -65,7 +50,8 @@ + #export ParaView_VERSION=5.0.1 + #export ParaView_VERSION=5.4.0 + #export ParaView_VERSION=5.5.0 +-export ParaView_VERSION=5.6.3 ++#export ParaView_VERSION=5.6.3 ++export ParaView_VERSION=$EBVERSIONPARAVIEW + export ParaView_MAJOR=detect + + #export ParaView_GL=system +@@ -105,7 +91,8 @@ + export ParaView_VERSION ParaView_MAJOR + + # Set the binary and source directories +-export ParaView_DIR=$WM_THIRD_PARTY_DIR/platforms/$WM_ARCH$WM_COMPILER/ParaView-$ParaView_VERSION ++#export ParaView_DIR=$WM_THIRD_PARTY_DIR/platforms/$WM_ARCH$WM_COMPILER/ParaView-$ParaView_VERSION ++export ParaView_DIR=$EBROOTPARAVIEW + paraviewSrcDir=$WM_THIRD_PARTY_DIR/ParaView-$ParaView_VERSION + + # Set paths if binaries or source are present +@@ -125,8 +111,6 @@ + fi + export ParaView_LIB_DIR=$ParaView_DIR/lib$paraviewArch$paraviewLibSubDir + +- export PATH=$ParaView_DIR/bin:$PATH +- export LD_LIBRARY_PATH=$ParaView_LIB_DIR:$LD_LIBRARY_PATH + export PV_PLUGIN_PATH=$FOAM_LIBBIN/paraview-$ParaView_MAJOR + + if [ "$FOAM_VERBOSE" -a "$PS1" ] +@@ -138,18 +122,6 @@ + echo " PV_PLUGIN_PATH : $PV_PLUGIN_PATH" + fi + +- # Add in python libraries if required +- paraviewPython=$ParaView_DIR/Utilities/VTKPythonWrapping +- if [ -r $paraviewPython ] +- then +- if [ "$PYTHONPATH" ] +- then +- export PYTHONPATH=$PYTHONPATH:$paraviewPython:$ParaView_LIB_DIR +- else +- export PYTHONPATH=$paraviewPython:$ParaView_LIB_DIR +- fi +- fi +- + # Alias paraview to launch with mesa if necessary + if [ "$ParaView_GL" = mesa ] + then +diff -ru OpenFOAM-7-version-7.orig/etc/config.sh/scotch OpenFOAM-7-version-7/etc/config.sh/scotch +--- OpenFOAM-7-version-7.orig/etc/config.sh/scotch 2018-07-09 18:01:02.000000000 +0200 ++++ OpenFOAM-7-version-7/etc/config.sh/scotch 2018-08-14 11:50:33.739213308 +0200 +@@ -37,7 +37,7 @@ + # + #------------------------------------------------------------------------------ + +-export SCOTCH_VERSION=scotch_6.0.9 +-export SCOTCH_ARCH_PATH=$WM_THIRD_PARTY_DIR/platforms/$WM_ARCH$WM_COMPILER$WM_PRECISION_OPTION$WM_LABEL_OPTION/$SCOTCH_VERSION ++export SCOTCH_VERSION=scotch_$EBVERSIONSCOTCH ++export SCOTCH_ARCH_PATH=$EBROOTSCOTCH + + #------------------------------------------------------------------------------ +diff -ru OpenFOAM-7-version-7.orig/etc/config.sh/settings OpenFOAM-7-version-7/etc/config.sh/settings +--- OpenFOAM-7-version-7.orig/etc/config.sh/settings 2018-07-09 18:01:02.000000000 +0200 ++++ OpenFOAM-7-version-7/etc/config.sh/settings 2018-08-14 11:53:15.092639797 +0200 +@@ -61,11 +61,11 @@ + 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 -std=c++0x' +- export WM_LDFLAGS='-m64' ++ export WM_CC=$CC ++ export WM_CXX=$CXX ++ export WM_CFLAGS=$CFLAGS ++ export WM_CXXFLAGS=$CXXFLAGS ++ export WM_LDFLAGS=$LDFLAGS + ;; + *) + echo "Unknown WM_ARCH_OPTION '$WM_ARCH_OPTION', should be 32 or 64"\ +diff -ru OpenFOAM-7-version-7.orig/src/parallel/decompose/ptscotchDecomp/Make/options OpenFOAM-7-version-7/src/parallel/decompose/ptscotchDecomp/Make/options +--- OpenFOAM-7-version-7.orig/src/parallel/decompose/ptscotchDecomp/Make/options 2018-07-09 18:01:02.000000000 +0200 ++++ OpenFOAM-7-version-7/src/parallel/decompose/ptscotchDecomp/Make/options 2018-08-14 11:55:27.323169812 +0200 +@@ -5,14 +5,7 @@ + $(PFLAGS) $(PINC) \ + -I$(FOAM_SRC)/Pstream/mpi/lnInclude \ + -I$(SCOTCH_ARCH_PATH)/include/$(FOAM_MPI) \ +- -I$(SCOTCH_ARCH_PATH)/include \ +- -I/usr/include/scotch \ + -I../decompositionMethods/lnInclude + + LIB_LIBS = \ +- -L$(SCOTCH_ARCH_PATH)/lib \ +- -L$(FOAM_EXT_LIBBIN)/$(FOAM_MPI) \ +- -lptscotch \ +- -lptscotcherrexit \ +- -lscotch \ +- -lrt ++ -L$(SCOTCH_ARCH_PATH)/lib -L$(FOAM_EXT_LIBBIN)/$(FOAM_MPI) -lptscotch -lptscotcherrexit -lscotch ${LINK_FLAGS} -lrt +diff -ru OpenFOAM-7-version-7.orig/src/parallel/decompose/ptscotchDecomp/ptscotchDecomp.C OpenFOAM-7-version-7/src/parallel/decompose/ptscotchDecomp/ptscotchDecomp.C +--- OpenFOAM-7-version-7.orig/src/parallel/decompose/ptscotchDecomp/ptscotchDecomp.C 2018-07-09 18:01:02.000000000 +0200 ++++ OpenFOAM-7-version-7/src/parallel/decompose/ptscotchDecomp/ptscotchDecomp.C 2018-08-14 11:57:24.057754914 +0200 +@@ -31,10 +31,11 @@ + #include "SubField.H" + #include "PstreamGlobals.H" + ++#include ++ + extern "C" + { + #include +- #include + #include "ptscotch.h" + } + +diff -ru OpenFOAM-7-version-7.orig/src/parallel/decompose/scotchDecomp/Make/options OpenFOAM-7-version-7/src/parallel/decompose/scotchDecomp/Make/options +--- OpenFOAM-7-version-7.orig/src/parallel/decompose/scotchDecomp/Make/options 2018-07-09 18:01:02.000000000 +0200 ++++ OpenFOAM-7-version-7/src/parallel/decompose/scotchDecomp/Make/options 2018-08-14 11:58:42.345476668 +0200 +@@ -8,7 +8,6 @@ + EXE_INC = \ + $(PFLAGS) $(PINC) \ + -I$(SCOTCH_ARCH_PATH)/include \ +- -I/usr/include/scotch \ + -I../decompositionMethods/lnInclude + + LIB_LIBS = \ diff --git a/easybuild/easyconfigs/o/OpenFOAM/OpenFOAM-8-foss-2020a.eb b/easybuild/easyconfigs/o/OpenFOAM/OpenFOAM-8-foss-2020a.eb new file mode 100644 index 00000000000..167fa3fb430 --- /dev/null +++ b/easybuild/easyconfigs/o/OpenFOAM/OpenFOAM-8-foss-2020a.eb @@ -0,0 +1,39 @@ +name = 'OpenFOAM' +version = '8' + +homepage = 'https://www.openfoam.org/' +description = """OpenFOAM is a free, open source CFD software package. + OpenFOAM has an extensive range of features to solve anything from complex fluid flows + involving chemical reactions, turbulence and heat transfer, + to solid dynamics and electromagnetics.""" + +toolchain = {'name': 'foss', 'version': '2020a'} +toolchainopts = {'cstd': 'c++11'} + +source_urls = ['https://github.com/OpenFOAM/OpenFOAM-%(version_major)s/archive'] +sources = ['version-%(version)s.tar.gz'] +patches = [ + 'OpenFOAM-%(version)s-cleanup.patch', +] +checksums = [ + '94ba11cbaaa12fbb5b356e01758df403ac8832d69da309a5d79f76f42eb008fc', # version-8.tar.gz + 'e3fac8049611ee109f07eb5b0ed4b1526782a21b3f12435e03529d56c8483b9f', # OpenFOAM-8-cleanup.patch +] + +dependencies = [ + ('libreadline', '8.0'), + ('ncurses', '6.2'), + # OpenFOAM requires 64 bit METIS using 32 bit indexes (array indexes) + ('METIS', '5.1.0'), + ('SCOTCH', '6.0.9'), + ('CGAL', '4.14.3', '-Python-3.8.2'), + ('ParaView', '5.8.0', '-Python-3.8.2-mpi'), +] + +builddependencies = [ + ('Bison', '3.5.3'), + ('CMake', '3.16.4'), + ('flex', '2.6.4'), +] + +moduleclass = 'cae'