2 Commits

Author SHA1 Message Date
dc217245ff WIP: makeUMPIRE 2025-04-28 15:24:00 +02:00
cf83f194a8 CONFIG: update some versions 2025-03-27 10:05:19 +01:00
3 changed files with 253 additions and 16 deletions

View File

@ -40,11 +40,11 @@ Usage: makeFFTW [OPTION] [fftw-VERSION]
0. Review the [system requirements][link openfoam-require]
and decide on the following:
* compiler type/version - if the system compiler is not relatively recent,
- compiler type/version - if the system compiler is not relatively recent,
you will need a [third-party compiler](#makeGcc) installation.
* MPI type/version.
* ParaView type/version.
* CMake type/version, ...
- MPI type/version.
- ParaView type/version.
- CMake type/version, ...
1. If you are using a system MPI (eg, openmpi), ensure that this environment
has also been properly activated for your user.
Often (but not always) a `mpi-selector` command is available for this purpose.
@ -135,7 +135,7 @@ CC=clang CXX=clang++ ./makeGcc gmp-6.1.2 mpfr-4.0.0 gcc-system
gmp_version=gmp-6.1.2
mpfr_version=mpfr-4.0.0
export GMP_ARCH_PATH=$WM_THIRD_PARTY_DIR/platforms/$WM_ARCH$WM_COMPILER_ARCH/$gmp_version
export GMP_ARCH_PATH=$WM_THIRD_PARTY_DIR/platforms/$WM_ARCH$WM_COMPILER_ARCH/$mpfr_version
export MPFR_ARCH_PATH=$WM_THIRD_PARTY_DIR/platforms/$WM_ARCH$WM_COMPILER_ARCH/$mpfr_version
```
* Update update the OpenFOAM environment (eg, `wmRefresh`) again.
@ -527,7 +527,7 @@ easier to use `grep` and find the relevant pages and links.
<!-- parallel -->
[page adios]: https://csmd.ornl.gov/software/adios2
[repo adios]: https://github.com/ornladios/ADIOS2
[link adios]: https://github.com/ornladios/ADIOS2/archive/v2.10.1.tar.gz
[link adios]: https://github.com/ornladios/ADIOS2/archive/v2.10.2.tar.gz
[page hdf5]: https://www.hdfgroup.org
[repo hdf5]: https://github.com/HDFGroup/hdf5
@ -544,10 +544,11 @@ easier to use `grep` and find the relevant pages and links.
[link scotch61_3]: https://gitlab.inria.fr/scotch/scotch/-/archive/v6.1.3/scotch-v6.1.3.tar.gz
[older scotch]: https://gforge.inria.fr/frs/download.php/file/38352/scotch_6.1.0.tar.gz
[newer scotch]: https://gitlab.inria.fr/scotch/scotch/-/archive/v7.0.1/scotch-v7.0.1.tar.gz
[newest scotch]: https://gitlab.inria.fr/scotch/scotch/-/archive/v7.0.6/scotch-v7.0.6.tar.gz
[page kahip]: http://algo2.iti.kit.edu/documents/kahip/
[older kahip]: https://github.com/KaHIP/KaHIP/archive/v3.14.tar.gz
[link kahip]: https://github.com/KaHIP/KaHIP/archive/v3.15.tar.gz
[older kahip]: https://github.com/KaHIP/KaHIP/archive/v3.15.tar.gz
[link kahip]: https://github.com/KaHIP/KaHIP/archive/v3.18.tar.gz
[page metis]: http://glaros.dtc.umn.edu/gkhome/metis/metis/overview
[link metis]: http://glaros.dtc.umn.edu/gkhome/fetch/sw/metis/metis-5.1.0.tar.gz
@ -557,7 +558,8 @@ easier to use `grep` and find the relevant pages and links.
[link openmpi]: https://download.open-mpi.org/release/open-mpi/v4.1/openmpi-4.1.2.tar.bz2
[page mpich]: http://www.mpich.org/
[link mpich]: http://www.mpich.org/static/downloads/3.4.2/mpich-3.4.2.tar.gz
[older mpich]: http://www.mpich.org/static/downloads/3.4.2/mpich-3.4.2.tar.gz
[link mpich]: https://www.mpich.org/static/downloads/4.2.3/mpich-4.2.3.tar.gz
[page mvpapich]: http://mvapich.cse.ohio-state.edu/
[link mvpapich]: https://mvapich.cse.ohio-state.edu/download/mvapich/mv2/mvapich2-2.3.7-1.tar.gz
@ -567,16 +569,17 @@ easier to use `grep` and find the relevant pages and links.
[link cmake]: https://cmake.org/files/v3.8/cmake-3.8.2.tar.gz
[page boost]: http://boost.org
[link boost]: https://sourceforge.net/projects/boost/files/boost/1.74.0/boost_1_74_0.tar.bz2
[link boost]: https://sourceforge.net/projects/boost/files/boost/1.87.0/boost_1_87_0.tar.bz2
[page CGAL]: http://cgal.org
[link CGAL]: https://github.com/CGAL/cgal/releases/download/releases/CGAL-4.14.3/CGAL-4.14.3.tar.xz
[old CGAL]: https://github.com/CGAL/cgal/releases/download/releases/CGAL-4.14.3/CGAL-4.14.3.tar.xz
[link CGAL]: https://github.com/CGAL/cgal/releases/download/v6.0.1/CGAL-6.0.1-library.tar.xz
[page FFTW]: http://www.fftw.org/
[link FFTW]: http://www.fftw.org/fftw-3.3.10.tar.gz
[page petsc]: https://petsc.org/
[link petsc]: https://web.cels.anl.gov/projects/petsc/download/release-snapshots/petsc-lite-3.21.2.tar.gz
[link petsc]: https://web.cels.anl.gov/projects/petsc/download/release-snapshots/petsc-lite-3.22.4.tar.gz
[page hypre]: https://computing.llnl.gov/projects/hypre-scalable-linear-solvers-multigrid-methods/
[repo hypre]: https://github.com/hypre-space/hypre/
@ -593,7 +596,7 @@ easier to use `grep` and find the relevant pages and links.
[link zlib]: https://sourceforge.net/projects/libpng/files/zlib/1.2.11/zlib-1.2.11.tar.xz
<!-- profilint -->
<!-- profiling -->
[link extrae]: https://github.com/bsc-performance-tools/extrae/archive/refs/tags/4.1.7.tar.gz
[link libunwind]: https://github.com/libunwind/libunwind/releases/download/v1.8.1/libunwind-1.8.1.tar.gz
@ -610,7 +613,8 @@ easier to use `grep` and find the relevant pages and links.
[link ParaView510]: http://www.paraview.org/files/v5.10/ParaView-v5.10.1.tar.xz
[link ParaView511]: http://www.paraview.org/files/v5.11/ParaView-v5.11.2.tar.xz
[link ParaView512]: http://www.paraview.org/files/v5.12/ParaView-v5.12.1.tar.xz
[link ParaView]: http://www.paraview.org/files/v5.12/ParaView-v5.12.1.tar.xz
[link ParaView513]: http://www.paraview.org/files/v5.13/ParaView-v5.13.2.tar.xz
[link ParaView]: http://www.paraview.org/files/v5.13/ParaView-v5.13.2.tar.xz
[page mesa]: http://mesa3d.org/
[link mesa]: ftp://ftp.freedesktop.org/pub/mesa/mesa-17.1.1.tar.xz
@ -624,4 +628,4 @@ easier to use `grep` and find the relevant pages and links.
---
Copyright 2016-2024 OpenCFD Ltd
Copyright 2016-2025 OpenCFD Ltd

View File

@ -1,6 +1,6 @@
Third-party software (shipped) versions according to OpenFOAM version
# OpenFOAM-2406
# OpenFOAM-2406, OpenFOAM-2412
- ADIOS2-2.10.1 *update*
- CGAL-4.14.3

233
makeUMPIRE Executable file
View File

@ -0,0 +1,233 @@
#!/bin/sh
#------------------------------------------------------------------------------
# \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
# \\ / O peration |
# \\ / A nd | www.openfoam.com
# \\/ M anipulation |
#------------------------------------------------------------------------------
# Copyright (C) 2025 OpenCFD Ltd.
#------------------------------------------------------------------------------
# License
# This file is part of OpenFOAM, distributed under GPL-3.0-or-later.
#
# Script
# makeUMPIRE
#
# Description
# Build script for UMPIRE
#
# ----------------------------------------------
# NO USER-CONFIGURABLE SETTINGS WITHIN THIS FILE
#------------------------------------------------------------------------------
# Dynamic library ending (default is .so)
[ "$(uname -s)" = Darwin ] && EXT_SO=.dylib || EXT_SO=.so
# Short-circuit test for an installation
if [ "$1" = "-test" ]
then
[ "$#" -eq 2 ] || { echo "${0##*/} -test : needs 1 argument"; exit 1; }
dir="${2%/}" # <- *_ARCH_PATH
[ -d "$dir/include/umpire" ] || exit 2
package="umpire"
libStatic="libumpire.a"
for lib in \
"$dir/lib/$libStatic" \
"$dir/lib$WM_COMPILER_LIB_ARCH/$libStatic" \
;
do
if [ -r "$lib" ]
then
echo " $package include: $dir/include"
echo " $package library: ${lib%/*}"
exit 0
fi
done
exit 2
fi
#------------------------------------------------------------------------------
if : # Run from third-party directory
then
cd "${0%/*}" || exit
wmakeCheckPwd "$WM_THIRD_PARTY_DIR" 2>/dev/null || {
echo "Error (${0##*/}) : not located in \$WM_THIRD_PARTY_DIR"
echo " Check your OpenFOAM environment and installation"
exit 1
}
fi
. "${WM_THIRD_PARTY_DIR:?}"/etc/tools/ThirdPartyFunctions
. "${WM_THIRD_PARTY_DIR:?}"/etc/tools/CMakeFunctions
#------------------------------------------------------------------------------
# Obtain version from OpenFOAM etc/config.sh file:
_foamConfig umpire
PACKAGE="${umpire_version:-none}"
# Hint for cmake findMPI
if [ -d "$MPI_ARCH_PATH" ]
then
export MPI_HOME="$MPI_ARCH_PATH"
fi
#------------------------------------------------------------------------------
printVersions() { listPackageVersions umpire; exit 0; }
printHelp() {
cat<<USAGE
Usage: ${0##*/} [OPTION] [umpire-VERSION]
options:
-force Force compilation, even if include/library already exists
-gcc Force use of gcc/g++
-cmake PATH With cmake from the given path
-mpi-home PATH With hint for MPI_HOME
-DNAME=VALUE add cmake variable
-list List available unpacked source versions
-help Display usage help
* Build UMPIRE
${PACKAGE:-[unspecified]}
USAGE
showDownloadHint umpire
exit 0 # Clean exit
}
#------------------------------------------------------------------------------
exportCompiler minimal # Minimal compiler info for CMake/configure
unset optForce
# Parse options
while [ "$#" -gt 0 ]
do
case "$1" in
'') ;; # Ignore empty
-h | -help*) printHelp;;
-list) printVersions;;
-gcc) useGcc ;;
-force) optForce=true ;;
-cmake)
[ "$#" -ge 2 ] || die "'$1' option requires an argument"
CMAKE_PATH="${2%%/}"
shift
;;
-mpi-home) # mpi with hint
[ "$#" -ge 2 ] || die "'$1' option requires an argument"
export MPI_HOME="${2%%/}"
case "${MPI_HOME:-none}" in (false|none) unset MPI_HOME;; esac
shift
;;
umpire/* | sources/umpire* | umpire-[0-9]* | umpire-git*)
PACKAGE="${1%%/}"
;;
-D[A-Z]*=* | [A-Z]*=*) # cmake variables
addCMakeVariable "$1"
;;
*)
die "unknown option/argument: '$1'"
;;
esac
shift
done
if [ -z "$PACKAGE" ]
then
die "The UMPIRE package/version not specified"
elif _foamIsNone "$PACKAGE" || _foamIsSystem "$PACKAGE"
then
echo "Using none/system (skip ThirdParty build of UMPIRE)"
exit 0
fi
# Known build issues for mingw (various things)
case "$WM_COMPILER" in
(Mingw*)
if [ "$optForce" = true ]
then
echo "Warning: umpire - not tested with $WM_COMPILER"
else
echo "Skipping umpire - not tested with $WM_COMPILER"
exit 0
fi
;;
esac
#------------------------------------------------------------------------------
#
# Build UMPIRE
# *PACKAGE : name-version of the package
# *SOURCE : location of original sources
# *PREFIX : installation directory
PKG_SOURCE="$(findSourceDir "$PACKAGE")"
PACKAGE="$(basename "$PACKAGE")"
PKG_PREFIX="$installBASE/$PACKAGE"
export GIT_DIR="$PKG_SOURCE/.git"
echo
echo ========================================
echo "Build umpire library $PACKAGE"
echo
if [ -z "$optForce" ] \
&& [ -f "$PKG_PREFIX/include/umpire/Umpire.hpp" ] \
&& {
[ -r "$PKG_PREFIX/lib/libumpire.a" ] \
|| [ -r "$PKG_PREFIX/lib$WM_COMPILER_LIB_ARCH/libumpire.a" ]
}
then
echo " UMPIRE already built : $PKG_PREFIX"
else
# CMake options often lag the configure ones
echo "Starting build: $PACKAGE (using cmake)"
echo
(
PKG_BUILD="$buildBASE/$PACKAGE"
cd "$PKG_SOURCE" || exit
applyPatch "$PACKAGE" "$PKG_SOURCE"
# Remove any existing build folder and recreate
rm -rf "$PKG_PREFIX"
rm -rf "$PKG_BUILD"
mkdir -p "$PKG_BUILD"
# With MPI?
# -DENABLE_FIND_MPI=ON
cmake=$(findCMake)
# By default installs into lib64/,
# but libcamp installs into lib/ so use that here as well !
#
# Also note that the umpire currently (2025-04-03) doesn't properly
# handle a relative directory for CMAKE_INSTALL_LIBDIR
# (https://github.com/LLNL/Umpire/issues/952)
libdir="$PKG_PREFIX/lib"
cd "$PKG_BUILD" && set -x && \
${cmake:?} \
-DCMAKE_INSTALL_PREFIX="$PKG_PREFIX" \
-DCMAKE_INSTALL_LIBDIR="$libdir" \
-DCMAKE_BUILD_TYPE=Release \
-DCAMP_ENABLE_TESTS=OFF \
-DENABLE_ASTYLE=OFF \
-DENABLE_DOCS=OFF \
-DENABLE_DOXYGEN=OFF \
-DENABLE_EXAMPLES=OFF \
-DENABLE_FORTRAN=OFF \
-DENABLE_TESTS=OFF \
${WM_QUIET:+-DCMAKE_RULE_MESSAGES=OFF} \
"$PKG_SOURCE" \
&& make -j $WM_NCOMPPROCS all \
&& make install \
&& echo "Built: $PACKAGE"
) || {
echo "Error building: $PACKAGE"
exit 1
}
fi
# -----------------------------------------------------------------------------