Skip to content

Commit

Permalink
Merge pull request #18475 from branfosj/20230807143801_new_pr_OpenFOAM11
Browse files Browse the repository at this point in the history
{cae}[foss/2022a] OpenFOAM v11
  • Loading branch information
ocaisa committed Aug 8, 2023
2 parents cf4ac31 + 875c140 commit 6854a59
Show file tree
Hide file tree
Showing 2 changed files with 284 additions and 0 deletions.
248 changes: 248 additions & 0 deletions easybuild/easyconfigs/o/OpenFOAM/OpenFOAM-11-ThirdParty.patch
Original file line number Diff line number Diff line change
@@ -0,0 +1,248 @@
# 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.
# Aligned hunks by Leon Kos and updated by Simon Branford (University of Birmingham).
# Based on patch for OpenFOAM 5.0 and 4.1 by Kenneth Hoste (HPC-UGent) and Ward Poelmans <wpoely86@gmail.com>

diff -ru OpenFOAM-10-version-10/applications/utilities/postProcessing/graphics/PVReaders/Allwmake OpenFOAM-10/applications/utilities/postProcessing/graphics/PVReaders/Allwmake
--- OpenFOAM-10-version-10/applications/utilities/postProcessing/graphics/PVReaders/Allwmake 2022-07-11 13:18:29.000000000 +0200
+++ OpenFOAM-10/applications/utilities/postProcessing/graphics/PVReaders/Allwmake 2022-09-19 11:34:37.930703275 +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-10-version-10/applications/utilities/postProcessing/graphics/PVReaders/CMakeLists.txt OpenFOAM-10/applications/utilities/postProcessing/graphics/PVReaders/CMakeLists.txt
--- OpenFOAM-10-version-10/applications/utilities/postProcessing/graphics/PVReaders/CMakeLists.txt 2022-07-11 13:18:29.000000000 +0200
+++ OpenFOAM-10/applications/utilities/postProcessing/graphics/PVReaders/CMakeLists.txt 2022-09-19 11:34:37.932703249 +0200
@@ -2,6 +2,8 @@

PROJECT(PVReaders)

+FIND_PACKAGE(MPI REQUIRED)
+
FIND_PACKAGE(ParaView REQUIRED)

INCLUDE(GNUInstallDirs)
diff -ru OpenFOAM-10-version-10/etc/bashrc OpenFOAM-10/etc/bashrc
--- OpenFOAM-10-version-10/etc/bashrc 2022-07-11 13:18:29.000000000 +0200
+++ OpenFOAM-10/etc/bashrc 2022-09-19 11:34:37.934703223 +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-10-version-10/etc/config.sh/gperftools OpenFOAM-10/etc/config.sh/gperftools
--- OpenFOAM-10-version-10/etc/config.sh/gperftools 2022-07-11 13:18:29.000000000 +0200
+++ OpenFOAM-10/etc/config.sh/gperftools 2022-09-19 11:34:37.937703185 +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-10-version-10/etc/config.sh/metis OpenFOAM-10/etc/config.sh/metis
--- OpenFOAM-10-version-10/etc/config.sh/metis 2022-07-11 13:18:29.000000000 +0200
+++ OpenFOAM-10/etc/config.sh/metis 2022-09-19 11:34:37.938703172 +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-10-version-10/etc/config.sh/mpi OpenFOAM-10/etc/config.sh/mpi
--- OpenFOAM-10-version-10/etc/config.sh/mpi 2022-07-11 13:18:29.000000000 +0200
+++ OpenFOAM-10/etc/config.sh/mpi 2022-09-19 11:34:37.939703159 +0200
@@ -254,6 +254,9 @@
_foamAddPath $MPI_ARCH_PATH/bin64
_foamAddLib $MPI_ARCH_PATH/lib/release
;;
+EASYBUILDMPI)
+ export FOAM_MPI=mpi
+ ;;
*)
export FOAM_MPI=dummy
;;
diff -ru OpenFOAM-10-version-10/etc/config.sh/paraview OpenFOAM-10/etc/config.sh/paraview
--- OpenFOAM-10-version-10/etc/config.sh/paraview 2022-07-11 13:18:29.000000000 +0200
+++ OpenFOAM-10/etc/config.sh/paraview 2022-09-19 11:34:37.941703134 +0200
@@ -41,25 +41,6 @@
) \
&& PATH="$cleaned"

-# Determine the cmake to be used. Take the most recent.
-unset CMAKE_HOME CMAKE_ROOT
-for cmake in $WM_THIRD_PARTY_DIR/platforms/$WM_ARCH$WM_COMPILER/cmake-*
-do
- if [ -d $cmake ]
- then
- if [ -z $CMAKE_HOME ] || \
- $WM_PROJECT_DIR/bin/tools/foamVersionCompare $CMAKE_HOME lt $cmake
- then
- export CMAKE_HOME=$cmake
- export CMAKE_ROOT=$cmake
- fi
- fi
-done
-if [ -n $CMAKE_HOME ]
-then
- export PATH=$cmake/bin:$PATH
-fi
-
#- ParaView version, automatically determine major version
#export ParaView_VERSION=5.6.3
export ParaView_VERSION=5.10.1
@@ -62,7 +62,8 @@

#- ParaView version, automatically determine major version
#export ParaView_VERSION=5.6.3
-export ParaView_VERSION=5.10.1
+#export ParaView_VERSION=5.10.1
+export ParaView_VERSION=$EBVERSIONPARAVIEW
export ParaView_MAJOR=detect

#export ParaView_GL=system
@@ -109,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
@@ -129,8 +112,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" ]
@@ -142,18 +123,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-10-version-10/etc/config.sh/scotch OpenFOAM-10/etc/config.sh/scotch
--- OpenFOAM-10-version-10/etc/config.sh/scotch 2022-07-11 13:18:29.000000000 +0200
+++ OpenFOAM-10/etc/config.sh/scotch 2022-09-19 11:34:37.942703121 +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-10-version-10/etc/config.sh/settings OpenFOAM-10/etc/config.sh/settings
--- OpenFOAM-10-version-10/etc/config.sh/settings 2022-07-11 13:18:29.000000000 +0200
+++ OpenFOAM-10/etc/config.sh/settings 2022-09-19 11:34:37.943703108 +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-10-version-10/src/parallel/decompose/ptscotchDecomp/Make/options OpenFOAM-10/src/parallel/decompose/ptscotchDecomp/Make/options
--- OpenFOAM-10-version-10/src/parallel/decompose/ptscotchDecomp/Make/options 2022-07-11 13:18:29.000000000 +0200
+++ OpenFOAM-10/src/parallel/decompose/ptscotchDecomp/Make/options 2022-09-19 11:34:37.945703082 +0200
@@ -4,14 +4,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-10-version-10/src/parallel/decompose/ptscotchDecomp/ptscotchDecomp.C OpenFOAM-10/src/parallel/decompose/ptscotchDecomp/ptscotchDecomp.C
--- OpenFOAM-10-version-10/src/parallel/decompose/ptscotchDecomp/ptscotchDecomp.C 2022-07-11 13:18:29.000000000 +0200
+++ OpenFOAM-10/src/parallel/decompose/ptscotchDecomp/ptscotchDecomp.C 2022-09-19 11:34:37.947703057 +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-10-version-10/src/parallel/decompose/scotchDecomp/Make/options OpenFOAM-10/src/parallel/decompose/scotchDecomp/Make/options
--- OpenFOAM-10-version-10/src/parallel/decompose/scotchDecomp/Make/options 2022-07-11 13:18:29.000000000 +0200
+++ OpenFOAM-10/src/parallel/decompose/scotchDecomp/Make/options 2022-09-19 11:34:37.948703044 +0200
@@ -6,7 +6,6 @@
EXE_INC = \
$(PFLAGS) $(PINC) \
-I$(SCOTCH_ARCH_PATH)/include \
- -I/usr/include/scotch \
-I../decompositionMethods/lnInclude

LIB_LIBS = \
36 changes: 36 additions & 0 deletions easybuild/easyconfigs/o/OpenFOAM/OpenFOAM-11-foss-2022a.eb
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
name = 'OpenFOAM'
version = '11'

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': '2022a'}

source_urls = ['https://github.com/OpenFOAM/OpenFOAM-%(version_major)s/archive']
sources = ['version-%(version)s.tar.gz']
patches = ['OpenFOAM-11-ThirdParty.patch']
checksums = [
{'version-%(version)s.tar.gz': 'ebc0f86ead699abba61290ba8aac5b730aa93256e675d1d93a5d5f116d51e0c0'},
{'OpenFOAM-%(version)s-ThirdParty.patch': '7c526be93a0e241584c849cdcda682c23d1a87f23b1a06eae2fa8372a2cab415'},
]

builddependencies = [
('Bison', '3.8.2'),
('CMake', '3.23.1'),
('flex', '2.6.4'),
]

dependencies = [
('ncurses', '6.3'),
# OpenFOAM requires 64 bit METIS using 32 bit indexes (array indexes)
('METIS', '5.1.0'),
('SCOTCH', '7.0.1'),
('CGAL', '4.14.3'),
('ParaView', '5.10.1', '-mpi'),
('gnuplot', '5.4.4'),
]

moduleclass = 'cae'

0 comments on commit 6854a59

Please sign in to comment.