Skip to content

Commit

Permalink
Merge pull request #11022 from furstj/20200724111632_new_pr_OpenFOAM8
Browse files Browse the repository at this point in the history
{cae}[foss/2020a] OpenFOAM v8
  • Loading branch information
boegel authored Jul 27, 2020
2 parents 484cbbd + 812aa1e commit 02f5e9f
Show file tree
Hide file tree
Showing 2 changed files with 336 additions and 0 deletions.
297 changes: 297 additions & 0 deletions easybuild/easyconfigs/o/OpenFOAM/OpenFOAM-8-cleanup.patch
Original file line number Diff line number Diff line change
@@ -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 <jiri.furst@gmail.com>, based on patch for OpenFOAM 5.0 and 4.1 by
# Kennet Hoste (HPC-UGent) and Ward Poelmans <wpoely86@gmail.com>
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 <readline/readline.h> -- enabling readline support."
export COMP_FLAGS="-DHAS_READLINE"

- # readline may require ncurses
- if [ -f /usr/include/ncurses/ncurses.h ]
- then
- echo " found <ncurses/ncurses.h> -- 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 <mpi.h>
+
extern "C"
{
#include <stdio.h>
- #include <mpi.h>
#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 = \
39 changes: 39 additions & 0 deletions easybuild/easyconfigs/o/OpenFOAM/OpenFOAM-8-foss-2020a.eb
Original file line number Diff line number Diff line change
@@ -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'

0 comments on commit 02f5e9f

Please sign in to comment.