diff --git a/applications/test/QRMatrix/Test-QRMatrix.C b/applications/test/QRMatrix/Test-QRMatrix.C index fb22d78bde3f9c8316a2a51485fdd9d61a5daaf7..281c62dd5b40dcd3d8983541fab42af31fc9608d 100644 --- a/applications/test/QRMatrix/Test-QRMatrix.C +++ b/applications/test/QRMatrix/Test-QRMatrix.C @@ -324,7 +324,7 @@ void verification_QRMatrix // QRMatrix Constructors #if (0 | RUNALL) { - QRMatrix<MatrixType> QRNull(); + QRMatrix<MatrixType> QRNull; } #endif @@ -967,14 +967,14 @@ void verification_tsqr typedef RectangularMatrix<Type> RMatrix; // Size of the full matrix and its partitions - const label nColsSum = rndGen.position(1, 100); - const label qParts = rndGen.position(10, 30); + const label nColsSum = rndGen.position<label>(1, 100); + const label qParts = rndGen.position<label>(10, 30); List<label> mRowsList(qParts, Zero); label mRowsSum = 0; for (label i = 0; i < qParts; ++i) { - const label mRows = rndGen.position(nColsSum, 10*nColsSum); + const label mRows = rndGen.position<label>(nColsSum, 10*nColsSum); mRowsList[i] = mRows; mRowsSum += mRows; } @@ -1084,7 +1084,7 @@ void verification_backSubstitution { Info<< nl << "# A*X = b:" << nl; const RMatrix AX(A*X); - equal(AX, b, verbose, 1e-3, 1e-3); + equal(AX, b, verbose, 10, 1e-3, 1e-3); } #endif } @@ -1170,7 +1170,7 @@ int main(int argc, char *argv[]) for (label i = 0; i < numberOfTests; ++i) { - const label mRows = rndGen.position(1, 50); + const label mRows = rndGen.position<label>(1, 50); Info<< nl << nl << "# Random A with random mRows = " << mRows << nl; SMatrix A(makeRandomMatrix<SMatrix>({mRows, mRows}, rndGen)); @@ -1199,8 +1199,8 @@ int main(int argc, char *argv[]) for (label i = 0; i < numberOfTests; ++i) { - const label mRows = rndGen.position(1, 50); - const label nCols = rndGen.position(1, 50); + const label mRows = rndGen.position<label>(1, 50); + const label nCols = rndGen.position<label>(1, 50); Info<< nl << nl << "# Random matrix A with" << " random mRows = " << mRows << " random nCols = " << nCols << nl; @@ -1231,7 +1231,7 @@ int main(int argc, char *argv[]) for (label i = 0; i < numberOfTests; ++i) { - const label mRows = rndGen.position(1, 50); + const label mRows = rndGen.position<label>(1, 50); Info<< nl << nl << "# Random A with random mRows = " << mRows << nl; SCMatrix A({mRows, mRows}, complex(0, 0)); @@ -1258,7 +1258,7 @@ int main(int argc, char *argv[]) for (label i = 0; i < numberOfTests; ++i) { - const label mRows = rndGen.position(1, 50); + const label mRows = rndGen.position<label>(1, 50); Info<< nl << nl << "# Random A with random mRows = " << mRows << nl; SCMatrix A(makeRandomMatrix<SCMatrix>({mRows, mRows}, rndGen)); @@ -1287,8 +1287,8 @@ int main(int argc, char *argv[]) for (label i = 0; i < numberOfTests; ++i) { - const label mRows = rndGen.position(1, 50); - const label nCols = rndGen.position(1, 50); + const label mRows = rndGen.position<label>(1, 50); + const label nCols = rndGen.position<label>(1, 50); Info<< nl << nl << "# Random matrix A with" << " random mRows = " << mRows << " random nCols = " << nCols << nl; @@ -1363,8 +1363,8 @@ int main(int argc, char *argv[]) for (label i = 0; i < numberOfTests; ++i) { - const label mRows = rndGen.position(20, 50); - const label pCols = rndGen.position(20, 50); + const label mRows = rndGen.position<label>(20, 50); + const label pCols = rndGen.position<label>(20, 50); Info<< nl << nl << "# Random square matrix A with" << " random mRows = " << mRows << " random nCols = " << mRows << nl; @@ -1422,8 +1422,8 @@ int main(int argc, char *argv[]) for (label i = 0; i < numberOfTests; ++i) { - const label mRows = rndGen.position(20, 50); - const label pCols = rndGen.position(20, 50); + const label mRows = rndGen.position<label>(20, 50); + const label pCols = rndGen.position<label>(20, 50); Info<< nl << nl << "# Random square matrix A with" << " random mRows = " << mRows << " random nCols = " << mRows << nl; diff --git a/etc/bashrc b/etc/bashrc index ff61f4f84e67fb62f98646a018bf47feebc0f50c..1c63377b8e01f2e94f53fba4e04836e086c0a60a 100644 --- a/etc/bashrc +++ b/etc/bashrc @@ -39,11 +39,12 @@ # - local site-specific directory, uses WM_PROJECT_DIR/site if unset # # Note -# Changes made to this bashrc file may be lost with the next upgrade. +# Changes made to this file will be lost with the next upgrade. # #------------------------------------------------------------------------------ -export WM_PROJECT=OpenFOAM +# [WM_PROJECT_VERSION] - A human-readable version name +# A development version is often named 'com' - as in www.openfoam.com export WM_PROJECT_VERSION=com #------------------------------------------------------------------------------ @@ -67,7 +68,7 @@ export WM_PRECISION_OPTION=DP # = 32 | 64 export WM_LABEL_SIZE=32 -# [WM_COMPILE_OPTION] - Optimised, debug, profiling, other: +# [WM_COMPILE_OPTION] - Optimised(default), debug, profiling, other: # = Opt | Debug | Prof # Other is processor or packaging specific (eg, OptKNL) export WM_COMPILE_OPTION=Opt @@ -82,6 +83,9 @@ export WM_MPLIB=SYSTEMOPENMPI #------------------------------------------------------------------------------ # (advanced / legacy) +# [WM_PROJECT] - This project is "OpenFOAM" - do not change +export WM_PROJECT=OpenFOAM + # [projectDir] - directory containing this OpenFOAM version. # \- When this file is located as $WM_PROJECT_DIR/etc/bashrc, the next lines # should work when sourced by BASH or ZSH shells. If this however fails, diff --git a/etc/cshrc b/etc/cshrc index a4a1c39ed880127e32d64e7c13d8b347dbcc158f..9d458a301d385e23f51fd5cc865565dc13a3ac77 100644 --- a/etc/cshrc +++ b/etc/cshrc @@ -39,11 +39,12 @@ # - local site-specific directory, uses WM_PROJECT_DIR/site if unset # # Note -# Changes made to this cshrc file may be lost with the next upgrade. +# Changes made to this file will be lost with the next upgrade. # #------------------------------------------------------------------------------ -setenv WM_PROJECT OpenFOAM +# [WM_PROJECT_VERSION] - A human-readable version name +# A development version is often named 'com' - as in www.openfoam.com setenv WM_PROJECT_VERSION com #------------------------------------------------------------------------------ @@ -67,7 +68,7 @@ setenv WM_PRECISION_OPTION DP # = 32 | 64 setenv WM_LABEL_SIZE 32 -# [WM_COMPILE_OPTION] - Optimised, debug, profiling, other: +# [WM_COMPILE_OPTION] - Optimised(default), debug, profiling, other: # = Opt | Debug | Prof # Other is processor or packaging specific (eg, OptKNL) setenv WM_COMPILE_OPTION Opt @@ -82,6 +83,9 @@ setenv WM_MPLIB SYSTEMOPENMPI #------------------------------------------------------------------------------ # (advanced / legacy) +# [WM_PROJECT] - This project is "OpenFOAM" - do not change +setenv WM_PROJECT OpenFOAM + # [projectDir] - directory containing this OpenFOAM version. # \- When this file is located as $WM_PROJECT_DIR/etc/cshrc, the next lines # should work when sourced by CSH or TCSH shells. If this however fails, diff --git a/src/OpenFOAM/matrices/Matrix/MatrixTools.C b/src/OpenFOAM/matrices/Matrix/MatrixTools.C index 30dbce057147b3a16bb106bf0c25f44162e35e78..2000628aee14c77e94a8a2c80df3312055275628 100644 --- a/src/OpenFOAM/matrices/Matrix/MatrixTools.C +++ b/src/OpenFOAM/matrices/Matrix/MatrixTools.C @@ -35,7 +35,7 @@ bool Foam::MatrixTools::equal const Matrix<Form1, Type>& A, const Matrix<Form2, Type>& B, const bool verbose, - const label lenDiffs, + const label maxDiffs, const scalar relTol, const scalar absTol ) @@ -55,24 +55,24 @@ bool Foam::MatrixTools::equal auto iter1 = A.cbegin(); auto iter2 = B.cbegin(); - label j = 0; + label nDiffs = 0; for (label i = 0; i < len; ++i) { if ((absTol + relTol*mag(*iter2)) < Foam::mag(*iter1 - *iter2)) { + ++nDiffs; + if (verbose) { Info<< "Matrix element " << i << " differs beyond tolerance: " << *iter1 << " vs " << *iter2 << nl; - ++j; } - if (lenDiffs < j) + if (maxDiffs && maxDiffs < nDiffs) { - Info<< "Number of different elements exceeds = " << lenDiffs - << " Ceasing comparisons for the remaining of elements." - << nl; + Info<< "More than " << maxDiffs << " elements differ." + << " Skipping further comparisons." << nl; return false; } } @@ -83,10 +83,17 @@ bool Foam::MatrixTools::equal if (verbose) { - Info<< "All elements equal within the tolerances" << nl; + if (nDiffs) + { + Info<< "Some elements differed" << nl; + } + else + { + Info<< "All elements equal within the tolerances" << nl; + } } - return true; + return !nDiffs; } diff --git a/src/OpenFOAM/matrices/Matrix/MatrixTools.H b/src/OpenFOAM/matrices/Matrix/MatrixTools.H index 58bdac3ef482662637ae340201dfd1568d9cab50..95fa5bcd59a9bfd127376ab1b084831c14b8407d 100644 --- a/src/OpenFOAM/matrices/Matrix/MatrixTools.H +++ b/src/OpenFOAM/matrices/Matrix/MatrixTools.H @@ -27,7 +27,7 @@ Namespace Foam::MatrixTools Description - Collection of static functions for matrix-related verifications. + Collection of functions for matrix-related verifications. SourceFiles MatrixTools.C @@ -47,7 +47,6 @@ namespace Foam // Forward declarations class Ostream; - /*---------------------------------------------------------------------------*\ Namespace MatrixTools Declaration \*---------------------------------------------------------------------------*/ @@ -56,13 +55,14 @@ namespace MatrixTools { //- Compare matrix elements for absolute or relative equality +// template<class Form1, class Form2, class Type> bool equal ( const Matrix<Form1, Type>& A, const Matrix<Form2, Type>& B, const bool verbose = false, - const label lenDiffs = 10, + const label maxDiffs = 10, //!< Stop reporting after maxDiffs (0 to disable) const scalar relTol = 1e-5, const scalar absTol = 1e-8 ); diff --git a/src/finiteVolume/expressions/volume/volumeExprDriver.C b/src/finiteVolume/expressions/volume/volumeExprDriver.C index 8cb2c5002ec94ddaf83bddbe29ba91274501fd2d..6a417e5eddc3be76b725448dc9ed0e949a2377c1 100644 --- a/src/finiteVolume/expressions/volume/volumeExprDriver.C +++ b/src/finiteVolume/expressions/volume/volumeExprDriver.C @@ -81,39 +81,6 @@ addNamedToRunTimeSelectionTable } // End namespace Foam -// * * * * * * * * * * * * * * * Local Functions * * * * * * * * * * * * * * // - -namespace Foam -{ - static label getPatchID(const fvMesh& mesh, const word& patchName) - { - const auto& bMesh = mesh.boundaryMesh(); - - const label patchId = bMesh.findPatchID(patchName); - - if (patchId < 0) - { - FatalErrorInFunction - << "No patch " << patchName << " found in " - << flatOutput(bMesh.names()) << nl - << exit(FatalError); - } - return patchId; - } - - - static inline const polyPatch& findPolyPatch - ( - const fvMesh& mesh, - const word& patchName - ) - { - return mesh.boundaryMesh()[getPatchID(mesh, patchName)]; - } - -} // End namespace Foam - - // * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * // Foam::expressions::volumeExpr::parseDriver::parseDriver diff --git a/src/functionObjects/utilities/parProfiling/parProfiling.H b/src/functionObjects/utilities/parProfiling/parProfiling.H index d29629bbe92ccfb4b9008f3a0446d941f1938880..7cc6fc3dd4e65ed614efd2eb28e75827960c78cf 100644 --- a/src/functionObjects/utilities/parProfiling/parProfiling.H +++ b/src/functionObjects/utilities/parProfiling/parProfiling.H @@ -77,10 +77,10 @@ class parProfiling { // Private Member Functions - //- Disallow default bitwise copy construct + //- No copy construct parProfiling(const parProfiling&) = delete; - //- Disallow default bitwise assignment + //- No copy assignment void operator=(const parProfiling&) = delete; diff --git a/src/parallel/distributed/patchDistMethods/exact/exactPatchDistMethod.H b/src/parallel/distributed/patchDistMethods/exact/exactPatchDistMethod.H index 0804d62fd995884ab38b448101a57dcf4fed3ee1..4fd1f82fb1ac3a1fc3f18a3f56a4565b411a3cfb 100644 --- a/src/parallel/distributed/patchDistMethods/exact/exactPatchDistMethod.H +++ b/src/parallel/distributed/patchDistMethods/exact/exactPatchDistMethod.H @@ -5,7 +5,7 @@ \\ / A nd | www.openfoam.com \\/ M anipulation | ------------------------------------------------------------------------------- - Copyright (C) 2018 OpenCFD Ltd. + Copyright (C) 2018-2019 OpenCFD Ltd. ------------------------------------------------------------------------------- License This file is part of OpenFOAM. @@ -72,11 +72,11 @@ class exact const distributedTriSurfaceMesh& patchSurface() const; - //- Disallow default bitwise copy construct - exact(const exact&); + //- No copy construct + exact(const exact&) = delete; - //- Disallow default bitwise assignment - void operator=(const exact&); + //- No copy assignment + void operator=(const exact&) = delete; public: diff --git a/wmake/rules/General/general b/wmake/rules/General/general index fdd53275d6a427e33e1dea98974a61860d6739c1..8c433e46fabb4f58255dc65b4b178e93c96e79aa 100644 --- a/wmake/rules/General/general +++ b/wmake/rules/General/general @@ -14,11 +14,16 @@ GLIBS = -lm GLIB_LIBS = -COMPILER_TYPE = $(shell echo "$(WM_COMPILER)" | sed -e 's/[0-9].*//') -DEFAULT_RULES = $(WM_DIR)/rules/$(WM_ARCH)$(COMPILER_TYPE) +COMPILER_FAMILY = $(shell echo "$(WM_COMPILER)" | sed -e 's/[0-9].*//') +DEFAULT_RULES = $(WM_DIR)/rules/$(WM_ARCH)$(COMPILER_FAMILY) RULES = $(WM_DIR)/rules/$(WM_ARCH)$(WM_COMPILER) WMAKE_BIN = $(WM_DIR)/platforms/$(WM_ARCH)$(WM_COMPILER) +# Default compilation is 'Opt' - never permit an empty value +ifeq ($(WM_COMPILE_OPTION),) + WM_COMPILE_OPTION = Opt +endif + ifeq ($(WM_SCHEDULER),) AND = && else @@ -26,7 +31,6 @@ else endif include $(DEFAULT_RULES)/general -include $(DEFAULT_RULES)/c++ sinclude $(RULES)/general sinclude $(RULES)/c++ include $(GENERAL_RULES)/transform diff --git a/wmake/src/Makefile b/wmake/src/Makefile index 20c4907d08e0f20f6691a310b4ce88e7ad65221c..2b602f11c13857d51beee7087b078b23fb2b52b6 100644 --- a/wmake/src/Makefile +++ b/wmake/src/Makefile @@ -63,10 +63,13 @@ archTarget := $(shell basename $(WMAKE_BIN)) # Targets #------------------------------------------------------------------------------ -.PHONY: all clean message +.PHONY: all clean message old all: $(WMAKE_BIN)/lemon$(EXT_EXE) $(WMAKE_BIN)/wmkdepend$(EXT_EXE) message +# Flex-based processing +old: $(WMAKE_BIN)/wmkdep$(EXT_EXE) + message: ifneq ($(archHost),$(archTarget)) @echo "built wmake-bin ($(archTarget)) for $(archHost) host" @@ -76,7 +79,7 @@ endif clean: @echo "clean wmake-bin ($(archTarget))" - @rm -rf $(WMAKE_BIN) 2>/dev/null + @rm -rf $(WMAKE_BIN) @rmdir $(shell dirname $(WMAKE_BIN)) 2>/dev/null || true $(WMAKE_BIN)/lemon$(EXT_EXE): lemon.c @@ -88,17 +91,17 @@ $(WMAKE_BIN)/wmkdep$(EXT_EXE): wmkdep.l @mkdir -p $(WMAKE_BIN) $(call QUIET_MESSAGE,flex,$(<F)) $E flex -o $@.c $(<F) && $(cc) $(cFLAGS) $@.c -o $@ - @rm -f $@.c 2>/dev/null + @rm -f $@.c $(WMAKE_BIN)/wmkdepend$(EXT_EXE): wmkdepend.cc @mkdir -p $(WMAKE_BIN) $(call QUIET_MESSAGE,wmkdepend,$(<F)) - $E $(CC) $(c++FLAGS) $(c++LESSWARN) $(<F) -o $@ + $E $(CC) $(c++FLAGS) $(<F) -o $@ -# $(WMAKE_BIN)/wmkdepend$(EXT_EXE): wmkdepend.rl -# @mkdir -p $(WMAKE_BIN) -# $(call QUIET_MESSAGE,ragel,$(<F)) -# $E ragel -G2 -o $@.cc $(<F) && $(CC) $(c++FLAGS) $(c++LESSWARN) $@.cc -o $@ -# @rm -f $@.cc 2>/dev/null +#$(WMAKE_BIN)/wmkdepend$(EXT_EXE): wmkdepend.rl +# @mkdir -p $(WMAKE_BIN) +# $(call QUIET_MESSAGE,ragel,$(<F)) +# $E ragel -G2 -o $@.cc $(<F) && $(CC) $(c++FLAGS) $@.cc -o $@ +# @rm -f $@.cc #------------------------------------------------------------------------------ diff --git a/wmake/wclean b/wmake/wclean index cc77be3c5a7ac06a39f4c9bcf4b9e312f7e658a2..c7ebcd7babfc4a34566730309a88ff7e5ecf9462 100755 --- a/wmake/wclean +++ b/wmake/wclean @@ -46,7 +46,6 @@ usage() { Usage: $Script [OPTION] [dir] $Script [OPTION] target [dir [MakeDir]] - options: -a | -all Same as the 'all' target -s | -silent Ignored - for compatibility with wmake diff --git a/wmake/wmake b/wmake/wmake index 7d4b12b74df9e3eaf532748fd31f6d736efe7e8f..8bc070eb4b710f9647951f9da34812f0390d70ea 100755 --- a/wmake/wmake +++ b/wmake/wmake @@ -59,15 +59,12 @@ Script="${0##*/}" # Use 'Script' for error messages in wmakeFunctions . "${0%/*}/scripts/wmakeFunctions" # Source wmake functions -unset optHelpFull -usage() { - exec 1>&2 - while [ "$#" -ge 1 ]; do echo "$1"; shift; done +# Print help to stdout so that it can be captured +printHelp() { cat<<HELP_HEAD Usage: $Script [OPTION] [dir] $Script [OPTION] target [dir [MakeDir]] - options: -s | -silent Quiet mode (does not echo commands) -a | -all wmake all sub-directories, running Allwmake if present @@ -77,7 +74,7 @@ options: -update Update lnInclude dirs, dep files, remove deprecated files/dirs HELP_HEAD -if [ "$optHelpFull" = true ] +if [ -n "$1" ] then cat<<HELP_FULL -debug Define c++DBUG='-DFULLDEBUG -g -O0' as override @@ -123,6 +120,19 @@ HELP_TAIL exit 1 } +# Report error and exit +die() +{ + exec 1>&2 + echo + echo "Error encountered:" + while [ "$#" -ge 1 ]; do echo " $1"; shift; done + echo + echo "See '${0##*/} -help' for usage" + echo + exit 1 +} + # Default make is the "make" in the path make="make" @@ -149,11 +159,10 @@ while [ "$#" -gt 0 ] do case "$1" in -help-f*) # Full help - optHelpFull=true - usage + printHelp -full ;; -h | -help*) # Short help - usage + printHelp ;; -s | -silent) export WM_QUIET=true @@ -224,7 +233,7 @@ do break ;; -*) - usage "unknown option: '$1'" + die "unknown option: '$1'" ;; *) break