diff --git a/applications/solvers/additiveFoam/Make/options b/applications/solvers/additiveFoam/Make/options index 8eb6b6aa..bf604671 100644 --- a/applications/solvers/additiveFoam/Make/options +++ b/applications/solvers/additiveFoam/Make/options @@ -2,26 +2,14 @@ EXE_INC = \ -I. \ -ImovingHeatSource/lnInclude \ -Iutilities/lnInclude \ - -I$(LIB_SRC)/MomentumTransportModels/momentumTransportModels/lnInclude \ - -I$(LIB_SRC)/MomentumTransportModels/incompressible/lnInclude \ - -I$(LIB_SRC)/physicalProperties/lnInclude \ - -I$(LIB_SRC)/sampling/lnInclude \ - -I$(LIB_SRC)/meshTools/lnInclude \ -I$(LIB_SRC)/finiteVolume/lnInclude \ -I$(LIB_SRC)/dynamicMesh/lnInclude \ - -I$(LIB_SRC)/randomProcesses/lnInclude + -I$(LIB_SRC)/meshTools/lnInclude EXE_LIBS = \ -L$(FOAM_USER_LIBBIN) \ -lmovingBeamModels \ -ladditiveFoamUtilities \ - -lmomentumTransportModels \ - -lincompressibleMomentumTransportModels \ - -lphysicalProperties \ -lfiniteVolume \ -ldynamicMesh \ - -lfvModels \ - -lfvConstraints \ - -lsampling \ - -lmeshTools \ - -lrandomProcesses + -lmeshTools diff --git a/build/MinimalAllwmake b/build/MinimalAllwmake new file mode 100755 index 00000000..5e6ec0d2 --- /dev/null +++ b/build/MinimalAllwmake @@ -0,0 +1,98 @@ +#!/bin/sh +cd ${0%/*} || exit 1 # Run from this directory + +# Perform various checks +wmakeCheckPwd "$WM_PROJECT_DIR" || { + echo "Allwmake error: Current directory is not \$WM_PROJECT_DIR" + echo " The environment variables are inconsistent with the installation." + echo " Check the OpenFOAM entries in your dot-files and source them." + exit 1 +} + +[ -n "$FOAM_EXT_LIBBIN" ] || { + echo "Allwmake error: FOAM_EXT_LIBBIN not set" + echo " Check the OpenFOAM entries in your dot-files and source them." + exit 1 +} + +# Compile wmake support applications +(cd wmake/src && make) + +# Compile ThirdParty libraries and applications +if [ -d "$WM_THIRD_PARTY_DIR" ] +then + echo "Performing minimal ThirdParty Allwmake..." + $WM_THIRD_PARTY_DIR/MinimalThirdPartyAllwmake +else + echo "Allwmake: no ThirdParty directory found - skipping" +fi + +############################################################## +# This section taken from src/Allwmake # +############################################################## + +# Compile OpenFOAM libraries and applications +cd src + +# Only required libraries for AdditiveFOAM are: +# 1. finiteVolume +# 2. dynamicMesh +# 3. meshTools +# We will build only these libraries and their dependencies, +# as well as libraries for tools such as blockMesh, AMR, +# and dynamic load balancing + +# Users not wishing to use AMR can comment out the following +# wmake commands below: +# 1. fvMeshStitchers +# 2. fvMeshTopoChangers +# 3. fvMeshDistributors + +# Update OpenFOAM version strings if required +wmakePrintBuild -check || wrmo OpenFOAM/global/global.o 2>/dev/null + +Pstream/Allwmake -j $targetType $* + +OSspecific/${WM_OSTYPE:-POSIX}/Allwmake -j $targetType $* +wmake -j $targetType OpenFOAM + +wmake -j $targetType fileFormats +wmake -j $targetType surfMesh +wmake -j $targetType triSurface +wmake -j $targetType genericPatches +wmake -j $targetType meshTools + +dummyThirdParty/Allwmake -j $targetType $* + +wmake -j $targetType finiteVolume +wmake -j $targetType lagrangian/basic +wmake -j $targetType genericPatchFields + +wmake -j $targetType mesh/extrudeModel +wmake -j $targetType dynamicMesh + +parallel/Allwmake -j $targetType $* + +wmake -j $targetType fvMeshStitchers +fvMeshTopoChangers/Allwmake -j $targetType $* +wmake -j $targetType fvMeshDistributors + +wmake -j $targetType mesh/blockMesh + +############################################################## +# This section taken from applications/Allwmake # +############################################################## + +# Compile OpenFOAM libraries and applications +#applications/Allwmake $targetType $* +cd ../applications + +# Build blockMesh, parallel processing utilities + +wmake -j $targetType utilities/mesh/generation/blockMesh + +wmake -j $targetType utilities/parallelProcessing/decomposePar +wmake -j $targetType utilities/parallelProcessing/reconstructPar + +wmake -j $targetType utilities/miscellaneous/foamDictionary +#------------------------------------------------------------------------------ diff --git a/build/MinimalThirdPartyAllwmake b/build/MinimalThirdPartyAllwmake new file mode 100755 index 00000000..c630cc68 --- /dev/null +++ b/build/MinimalThirdPartyAllwmake @@ -0,0 +1,244 @@ +#!/bin/sh +#------------------------------------------------------------------------------ +# ========= | +# \\ / F ield | OpenFOAM: The Open Source CFD Toolbox +# \\ / O peration | +# \\ / A nd | Copyright (C) 2011-2021 OpenFOAM Foundation +# \\/ M anipulation | +#------------------------------------------------------------------------------ +# License +# This file is part of OpenFOAM. +# +# OpenFOAM is free software: you can redistribute it and/or modify it +# under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# OpenFOAM is distributed in the hope that it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License +# along with OpenFOAM. If not, see . +# +# Script +# Allwmake +# +# Description +# Build script for ThirdParty +# +#------------------------------------------------------------------------------ +# run from third-party directory only +cd ${0%/*} || exit 1 +wmakeCheckPwd "$WM_THIRD_PARTY_DIR" || { + echo "Error: Current directory is not \$WM_THIRD_PARTY_DIR" + echo " The environment variables are inconsistent with the installation." + echo " Check the OpenFOAM entries in your dot-files and source them." + exit 1 +} +[ -n "$FOAM_EXT_LIBBIN" ] || { + echo "Error: FOAM_EXT_LIBBIN not set" + echo " Check the OpenFOAM entries in your dot-files and source them." + exit 1 +} +. etc/tools/ThirdPartyFunctions +#------------------------------------------------------------------------------ + +# export WM settings in a form that GNU configure recognizes +[ -n "$WM_CC" ] && export CC="$WM_CC" +[ -n "$WM_CXX" ] && export CXX="$WM_CXX" +[ -n "$WM_CFLAGS" ] && export CFLAGS="$WM_CFLAGS" +[ -n "$WM_CXXFLAGS" ] && export CXXFLAGS="$WM_CXXFLAGS" +[ -n "$WM_LDFLAGS" ] && export LDFLAGS="$WM_LDFLAGS" + +echo +echo ======================================== +echo Start ThirdParty Allwmake +echo ======================================== +echo + +# Assume MPI is present on the system + +# get SCOTCH_VERSION, SCOTCH_ARCH_PATH +if settings=`$WM_PROJECT_DIR/bin/foamEtcFile config.sh/scotch` +then + . $settings +else + echo + echo "Error: no config.sh/scotch settings" + echo +fi + +# building scotch is still a bit of a pain +echo ======================================== +echo "Build Scotch decomposition library $SCOTCH_VERSION" +echo " $SCOTCH_ARCH_PATH" + +# this needs generalizing for any compiler, since it's hard-coded to GCC +scotchMakefile=../../etc/wmakeFiles/scotch/Makefile.inc.i686_pc_linux2.shlib-OpenFOAM + +if [ -f $SCOTCH_ARCH_PATH/include/scotch.h \ + -a -r $FOAM_EXT_LIBBIN/libscotch.so \ + -a -r $FOAM_EXT_LIBBIN/libscotcherrexit.so ] +then + echo " scotch header in $SCOTCH_ARCH_PATH/include" + echo " scotch libs in $FOAM_EXT_LIBBIN" + echo +else +( + set -x + cd $SCOTCH_VERSION/src || exit 1 + + prefixDIR=$SCOTCH_ARCH_PATH + libDIR=$FOAM_EXT_LIBBIN + + mkdir -p $prefixDIR 2>/dev/null + mkdir -p $libDIR 2>/dev/null + + configOpt="prefix=$prefixDIR libdir=$libDIR" + + if [ -f $scotchMakefile ] + then + rm -f Makefile.inc + ln -s $scotchMakefile Makefile.inc + fi + + [ -f Makefile.inc ] || { + echo " Error: scotch needs an appropriate Makefile.inc" + exit 1 + } + + # handle non-gcc compilers + unset configEnv + [ "${WM_CC:-gcc}" != gcc ] && configEnv="CC=$WM_CC CCS=$WM_CC" + + make realclean 2>/dev/null # for safety + + make -j $WM_NCOMPPROCS $configEnv scotch \ + && make $configOpt install + + # cleanup, could also remove Makefile.inc + make realclean 2>/dev/null +) +fi + +# verify existence of scotch include +[ -f $SCOTCH_ARCH_PATH/include/scotch.h ] || { + echo + echo " WARNING: required include file 'scotch.h' not found!" + echo +} + + +# build ptscotch if MPI (ThirdParty or system) is available +if [ "${FOAM_MPI:-dummy}" != dummy ] +then + echo ======================================== + echo "Build PTScotch decomposition library $SCOTCH_VERSION (uses MPI)" + echo " $SCOTCH_ARCH_PATH" + echo + + if [ -f $SCOTCH_ARCH_PATH/include/$FOAM_MPI/ptscotch.h \ + -a -r $FOAM_EXT_LIBBIN/$FOAM_MPI/libptscotch.so \ + -a -r $FOAM_EXT_LIBBIN/$FOAM_MPI/libptscotcherrexit.so ] + then + echo " ptscotch header in $SCOTCH_ARCH_PATH/include/$FOAM_MPI" + echo " ptscotch libs in $FOAM_EXT_LIBBIN/$FOAM_MPI" + echo + else + ( + set -x + cd $SCOTCH_VERSION/src || exit 1 + + prefixDIR=$SCOTCH_ARCH_PATH + libDIR=$FOAM_EXT_LIBBIN/$FOAM_MPI + incDIR=$SCOTCH_ARCH_PATH/include/$FOAM_MPI + + mkdir -p $prefixDIR 2>/dev/null + mkdir -p $libDIR 2>/dev/null + + configOpt="prefix=$prefixDIR libdir=$libDIR includedir=$incDIR" + + if [ -f $scotchMakefile ] + then + rm -f Makefile.inc + ln -s $scotchMakefile Makefile.inc + fi + + [ -f Makefile.inc ] || { + echo " Error: scotch needs an appropriate Makefile.inc" + exit 1 + } + + # handle non-gcc compilers + unset configEnv + [ "${WM_CC:-gcc}" != gcc ] && configEnv="CC=$WM_CC CCS=$WM_CC" + + make realclean 2>/dev/null # for safety + + make -j $WM_NCOMPPROCS $configEnv ptscotch \ + && make $configOpt install + + # cleanup, could also remove Makefile.inc + make realclean 2>/dev/null + ) + fi + + # verify existence of scotch include + [ -f $SCOTCH_ARCH_PATH/include/$FOAM_MPI/ptscotch.h ] || { + echo + echo " WARNING: required include file 'ptscotch.h' not found!" + echo + } +fi + +# Zoltan is optional +echo ======================================== +echo Build Zoltan decomposition + +# Get ZOLTAN_VERSION, ZOLTAN_ARCH_PATH +if settings=`$WM_PROJECT_DIR/bin/foamEtcFile config.sh/zoltan` +then + . $settings +fi +if [ -d "$ZOLTAN_VERSION" ] +then + + if [ -f $ZOLTAN_ARCH_PATH/include/zoltan.h \ + -a -r $FOAM_EXT_LIBBIN/$FOAM_MPI/libzoltan.a ] + then + echo " Zoltan header in $ZOLTAN_ARCH_PATH/include" + echo " Zoltan libs in $FOAM_EXT_LIBBIN/$FOAM_MPI" + echo + else + ( + set -x + cd $ZOLTAN_VERSION || exit 1 + mkdir -p build + cd build + ../configure \ + --prefix=$ZOLTAN_ARCH_PATH \ + --libdir=$FOAM_EXT_LIBBIN/$FOAM_MPI \ + --with-mpi=/usr/local/mpi \ + --with-mpi-compilers=no \ + --with-mpi-libdir=/usr/local/mpi/lib \ + --disable-zoltan-cppdriver \ + --with-ccflags=-fPIC --with-cxxflags=-fPIC + make everything + make install + ) + fi +else + echo " optional component Zoltan was not found" +fi + + +echo +echo ======================================== +echo Done ThirdParty Allwmake +echo ======================================== +echo + + +#------------------------------------------------------------------------------ diff --git a/tutorials/AMB2018-02-B/constant/heatSourceDict b/tutorials/AMB2018-02-B/constant/heatSourceDict index f08c677d..3aeaa348 100644 --- a/tutorials/AMB2018-02-B/constant/heatSourceDict +++ b/tutorials/AMB2018-02-B/constant/heatSourceDict @@ -54,4 +54,4 @@ refinementControl } } -// ************************************************************************* // \ No newline at end of file +// ************************************************************************* // diff --git a/tutorials/AMB2018-02-B/system/decomposeParDict b/tutorials/AMB2018-02-B/system/decomposeParDict index f40c1cfc..7d188e66 100644 --- a/tutorials/AMB2018-02-B/system/decomposeParDict +++ b/tutorials/AMB2018-02-B/system/decomposeParDict @@ -17,13 +17,13 @@ FoamFile numberOfSubdomains 4; // Use Scotch for non-AMR cases -//decomposer scotch; +decomposer scotch; // Use hierarchical decomposition with Zoltan load balancing for AMR cases // Note: must have OF compiled with Zoltan -decomposer hierarchical; -distributor zoltan; -libs ("libzoltanDecomp.so"); +//decomposer hierarchical; +//distributor zoltan; +//libs ("libzoltanDecomp.so"); hierarchicalCoeffs {