diff --git a/applications/solvers/multiphase/interIsoFoam/alphaEqn.H b/applications/solvers/multiphase/interIsoFoam/alphaEqn.H index fda7a30c9b..8de0ac0161 100644 --- a/applications/solvers/multiphase/interIsoFoam/alphaEqn.H +++ b/applications/solvers/multiphase/interIsoFoam/alphaEqn.H @@ -1,6 +1,19 @@ { + // Temporarily making U relative to mesh motion + if (mesh.moving()) + { + U -= fvc::reconstruct(mesh.phi()); + } + // Updating alpha1 advector.advect(); + + // Making U absolute again after advection step + if (mesh.moving()) + { + U += fvc::reconstruct(mesh.phi()); + } + #include "rhofs.H" rhoPhi = advector.getRhoPhi(rho1f, rho2f); diff --git a/applications/solvers/multiphase/reactingEulerFoam/Allwmake b/applications/solvers/multiphase/reactingEulerFoam/Allwmake index a334548fd7..7aa883fed9 100755 --- a/applications/solvers/multiphase/reactingEulerFoam/Allwmake +++ b/applications/solvers/multiphase/reactingEulerFoam/Allwmake @@ -4,6 +4,16 @@ cd ${0%/*} || exit 1 # Run from this directory #------------------------------------------------------------------------------ +case "$WM_COMPILER" in +Mingw*) + echo "Skipping $WM_COMPILER compilation of $PWD" + echo "... needs further resolution of cyclic dependencies" + exit 0 + ;; +esac + +#------------------------------------------------------------------------------ + reactingTwoPhaseEulerFoam/Allwmake $targetType $* reactingMultiphaseEulerFoam/Allwmake $targetType $* wmake $targetType functionObjects diff --git a/applications/solvers/multiphase/reactingEulerFoam/functionObjects/Make/options b/applications/solvers/multiphase/reactingEulerFoam/functionObjects/Make/options index 8ff34452ca..cd3a9bf287 100644 --- a/applications/solvers/multiphase/reactingEulerFoam/functionObjects/Make/options +++ b/applications/solvers/multiphase/reactingEulerFoam/functionObjects/Make/options @@ -7,5 +7,5 @@ EXE_INC = \ -I$(LIB_SRC)/phaseSystemModels/reactingEulerFoam/phaseSystems/lnInclude LIB_LIBS = \ - -lfieldFunctionObjects \ - -lfiniteVolume + -lfiniteVolume \ + -lfieldFunctionObjects diff --git a/applications/solvers/multiphase/reactingEulerFoam/reactingMultiphaseEulerFoam/Allwmake b/applications/solvers/multiphase/reactingEulerFoam/reactingMultiphaseEulerFoam/Allwmake index 2471b6d55a..ecb7039b93 100755 --- a/applications/solvers/multiphase/reactingEulerFoam/reactingMultiphaseEulerFoam/Allwmake +++ b/applications/solvers/multiphase/reactingEulerFoam/reactingMultiphaseEulerFoam/Allwmake @@ -1,9 +1,9 @@ #!/bin/sh -cd ${0%/*} || exit 1 # Run from this directory - -# Parse arguments for library compilation +cd ${0%/*} || exit 1 # Run from this directory . $WM_PROJECT_DIR/wmake/scripts/AllwmakeParseArguments +#------------------------------------------------------------------------------ + wmake $targetType #------------------------------------------------------------------------------ diff --git a/etc/bashrc b/etc/bashrc index f4268e1ff7..528385a02e 100644 --- a/etc/bashrc +++ b/etc/bashrc @@ -74,12 +74,6 @@ export WM_COMPILER_TYPE=system # Clang | Clang3[7-9] | Clang[4-6]0 | Icc | Cray | Arm | Pgi export WM_COMPILER=Gcc -# [WM_ARCH_OPTION] - Memory addressing: -# = 32 | 64 -# * on a 64-bit OS this can be 32 or 64 -# * on a 32-bit OS, it is always 32-bit and this option is ignored -export WM_ARCH_OPTION=64 - # [WM_PRECISION_OPTION] - Floating-point precision: # = DP | SP | SPDP export WM_PRECISION_OPTION=DP @@ -103,7 +97,7 @@ export WM_MPLIB=SYSTEMOPENMPI #------------------------------------------------------------------------------ # (advanced / legacy) -# + # [FOAM_SIGFPE] - Trap floating-point exceptions. # - overrides the 'trapFpe' controlDict entry # = true | false @@ -126,6 +120,12 @@ export WM_MPLIB=SYSTEMOPENMPI # = POSIX #export WM_OSTYPE=POSIX +# [WM_ARCH_OPTION] - compiling with -m32 option on 64-bit system +# = 32 | 64 +# * on a 64-bit OS this can be 32 or 64 +# * on a 32-bit OS this option is ignored (always 32-bit) +export WM_ARCH_OPTION=64 + ################################################################################ # Capture values of old directories to be cleaned from PATH, LD_LIBRARY_PATH diff --git a/etc/config.csh/settings b/etc/config.csh/settings index 00dd09f08f..7b5e5bd401 100644 --- a/etc/config.csh/settings +++ b/etc/config.csh/settings @@ -22,6 +22,12 @@ setenv WM_ARCH `uname -s` # System name ## if (! $?WM_OSTYPE ) setenv WM_OSTYPE POSIX # System type (POSIX is default) +set archOption=64 +if ($?WM_ARCH_OPTION) then + set archOption="$WM_ARCH_OPTION" +endif + +unsetenv WM_ARCH_OPTION # Compiling 32-bit on 64-bit system setenv WM_COMPILER_ARCH # Host compiler type (when different than target) setenv WM_COMPILER_LIB_ARCH # Additional ending for lib directories @@ -32,23 +38,22 @@ case Linux: switch (`uname -m`) case i686: - setenv WM_ARCH_OPTION 32 breaksw case x86_64: - if (! $?WM_ARCH_OPTION ) setenv WM_ARCH_OPTION 64 # Default to 64-bit - switch ($WM_ARCH_OPTION) + switch ("$archOption") case 32: - setenv WM_COMPILER_ARCH 64 # 64-bit compiler, 32-bit target + setenv WM_ARCH_OPTION 32 # Need to propagate the value + setenv WM_COMPILER_ARCH 64 # 64-bit compiler, 32-bit target breaksw case 64: setenv WM_ARCH linux64 - setenv WM_COMPILER_LIB_ARCH 64 # target with lib64 + setenv WM_COMPILER_LIB_ARCH 64 # Target with lib64 breaksw default: - echo "Unknown WM_ARCH_OPTION '$WM_ARCH_OPTION', should be 32|64" + echo "Unknown WM_ARCH_OPTION '$archOption', should be 32|64" breaksw endsw @@ -60,13 +65,11 @@ case Linux: case armv7l: setenv WM_ARCH linuxARM7 - setenv WM_ARCH_OPTION 32 setenv WM_COMPILER_LIB_ARCH 32 breaksw case aarch64: setenv WM_ARCH linuxARM64 - setenv WM_ARCH_OPTION 64 setenv WM_COMPILER_LIB_ARCH 64 breaksw @@ -88,14 +91,8 @@ case Linux: breaksw case Darwin: # Presumably x86_64 - if (! $?WM_ARCH_OPTION ) setenv WM_ARCH_OPTION 64 # Default to 64-bit setenv WM_ARCH darwin64 - /bin/cat << INCOMPLETE -=============================================================================== -Darwin support (clang only) is incomplete or untested in this OpenFOAM release. -For further assistance, please contact www.OpenFOAM.com -=============================================================================== -INCOMPLETE + echo "Darwin support is clang/llvm only" breaksw case SunOS*: @@ -320,7 +317,7 @@ endsw # Cleanup # ~~~~~~~ -unset archDir siteDir foundDir +unset archDir siteDir foundDir archOption unset gcc_version gccDir unset gmp_version gmpDir mpfr_version mpfrDir mpc_version mpcDir unset clang_version clangDir diff --git a/etc/config.sh/completion_cache b/etc/config.sh/completion_cache index eac52e0c96..6f7b05859d 100644 --- a/etc/config.sh/completion_cache +++ b/etc/config.sh/completion_cache @@ -38,6 +38,7 @@ _of_complete_cache_[chemFoam]="-case -fileHandler | -listFunctionObjects -listRe _of_complete_cache_[chemkinToFoam]="-case -fileHandler | -newFormat -doc -doc-source -help" _of_complete_cache_[chtMultiRegionFoam]="-case -decomposeParDict -fileHandler | -listFunctionObjects -listFvOptions -listRegisteredSwitches -listScalarBCs -listSwitches -listTurbulenceModels -listUnsetSwitches -listVectorBCs -noFunctionObjects -parallel -postProcess -doc -doc-source -help" _of_complete_cache_[chtMultiRegionSimpleFoam]="-case -decomposeParDict -fileHandler | -listFunctionObjects -listFvOptions -listRegisteredSwitches -listScalarBCs -listSwitches -listTurbulenceModels -listUnsetSwitches -listVectorBCs -noFunctionObjects -parallel -postProcess -doc -doc-source -help" +_of_complete_cache_[chtMultiRegionTwoPhaseEulerFoam]="-case -decomposeParDict -fileHandler | -noFunctionObjects -parallel -postProcess -doc -doc-source -help" _of_complete_cache_[coalChemistryFoam]="-case -decomposeParDict -fileHandler | -dry-run -dry-run-write -listFunctionObjects -listFvOptions -listRegisteredSwitches -listScalarBCs -listSwitches -listTurbulenceModels -listUnsetSwitches -listVectorBCs -noFunctionObjects -parallel -postProcess -doc -doc-source -help" _of_complete_cache_[coldEngineFoam]="-case -decomposeParDict -fileHandler | -listFunctionObjects -listFvOptions -listRegisteredSwitches -listScalarBCs -listSwitches -listTurbulenceModels -listUnsetSwitches -listVectorBCs -noFunctionObjects -parallel -postProcess -doc -doc-source -help" _of_complete_cache_[collapseEdges]="-case -collapseFaceSet -decomposeParDict -dict -fileHandler -time | -collapseFaces -constant -latestTime -noZero -overwrite -parallel -doc -doc-source -help" @@ -69,7 +70,7 @@ _of_complete_cache_[equilibriumCO]="-case -fileHandler | -doc -doc-source -help" _of_complete_cache_[equilibriumFlameT]="-case -fileHandler | -doc -doc-source -help" _of_complete_cache_[extrude2DMesh]="-case -decomposeParDict -fileHandler | -overwrite -parallel -doc -doc-source -help" _of_complete_cache_[extrudeEdgesInto2DSurface]="-case -fileHandler | -noFunctionObjects -doc -doc-source -help" -_of_complete_cache_[extrudeMesh]="-case -decomposeParDict -fileHandler -region | -noFunctionObjects -parallel -doc -doc-source -help" +_of_complete_cache_[extrudeMesh]="-case -decomposeParDict -dict -fileHandler -region | -noFunctionObjects -parallel -doc -doc-source -help" _of_complete_cache_[extrudeToRegionMesh]="-case -decomposeParDict -dict -fileHandler -region | -noFunctionObjects -overwrite -parallel -doc -doc-source -help" _of_complete_cache_[faceAgglomerate]="-case -decomposeParDict -dict -fileHandler -region | -noFunctionObjects -parallel -doc -doc-source -help" _of_complete_cache_[faSavageHutterFoam]="-case -decomposeParDict -fileHandler | -noFunctionObjects -parallel -doc -doc-source -help" @@ -154,6 +155,7 @@ _of_complete_cache_[noise]="-case -decomposeParDict -dict -fileHandler | -noFunc _of_complete_cache_[nonNewtonianIcoFoam]="-case -decomposeParDict -fileHandler | -dry-run -dry-run-write -listFunctionObjects -listRegisteredSwitches -listScalarBCs -listSwitches -listUnsetSwitches -listVectorBCs -noFunctionObjects -parallel -postProcess -doc -doc-source -help" _of_complete_cache_[objToVTK]="-case -fileHandler | -noFunctionObjects -doc -doc-source -help" _of_complete_cache_[orientFaceZone]="-case -decomposeParDict -fileHandler -region | -noFunctionObjects -parallel -doc -doc-source -help" +_of_complete_cache_[overBuoyantPimpleDyMFoam]="-case -decomposeParDict -fileHandler | -dry-run -dry-run-write -listFunctionObjects -listFvOptions -listRegisteredSwitches -listScalarBCs -listSwitches -listTurbulenceModels -listUnsetSwitches -listVectorBCs -noFunctionObjects -parallel -postProcess -doc -doc-source -help" _of_complete_cache_[overInterDyMFoam]="-case -decomposeParDict -fileHandler | -listFunctionObjects -listFvOptions -listRegisteredSwitches -listScalarBCs -listSwitches -listTurbulenceModels -listUnsetSwitches -listVectorBCs -noFunctionObjects -parallel -postProcess -doc -doc-source -help" _of_complete_cache_[overLaplacianDyMFoam]="-case -decomposeParDict -fileHandler | -listFunctionObjects -listFvOptions -listRegisteredSwitches -listScalarBCs -listSwitches -listUnsetSwitches -listVectorBCs -noFunctionObjects -parallel -doc -doc-source -help" _of_complete_cache_[overPimpleDyMFoam]="-case -decomposeParDict -fileHandler | -listFunctionObjects -listFvOptions -listRegisteredSwitches -listScalarBCs -listSwitches -listTurbulenceModels -listUnsetSwitches -listVectorBCs -noFunctionObjects -parallel -postProcess -doc -doc-source -help" @@ -168,6 +170,7 @@ _of_complete_cache_[pdfPlot]="-case -decomposeParDict -fileHandler | -noFunction _of_complete_cache_[PDRblockMesh]="-case -dict -fileHandler -time | -noClean -doc -doc-source -help" _of_complete_cache_[PDRFoam]="-case -decomposeParDict -fileHandler | -dry-run -dry-run-write -listFunctionObjects -listFvOptions -listRegisteredSwitches -listScalarBCs -listSwitches -listTurbulenceModels -listUnsetSwitches -listVectorBCs -noFunctionObjects -parallel -postProcess -doc -doc-source -help" _of_complete_cache_[PDRMesh]="-case -decomposeParDict -fileHandler | -overwrite -parallel -doc -doc-source -help" +_of_complete_cache_[PDRsetFields]="-case -dict -fileHandler -time | -dry-run -legacy -doc -doc-source -help" _of_complete_cache_[pimpleFoam]="-case -decomposeParDict -fileHandler | -dry-run -dry-run-write -listFunctionObjects -listFvOptions -listRegisteredSwitches -listScalarBCs -listSwitches -listTurbulenceModels -listUnsetSwitches -listVectorBCs -noFunctionObjects -parallel -postProcess -doc -doc-source -help" _of_complete_cache_[pisoFoam]="-case -decomposeParDict -fileHandler | -dry-run -dry-run-write -listFunctionObjects -listFvOptions -listRegisteredSwitches -listScalarBCs -listSwitches -listTurbulenceModels -listUnsetSwitches -listVectorBCs -noFunctionObjects -parallel -postProcess -doc -doc-source -help" _of_complete_cache_[plot3dToFoam]="-2D -case -fileHandler -scale | -noBlank -noFunctionObjects -singleBlock -doc -doc-source -help" @@ -182,7 +185,8 @@ _of_complete_cache_[potentialFreeSurfaceFoam]="-case -decomposeParDict -fileHand _of_complete_cache_[preparePar]="-case -decomposeParDict -fileHandler | -noFunctionObjects -doc -doc-source -help" _of_complete_cache_[profilingSummary]="-case -fileHandler -time | -constant -latestTime -noZero -withZero -doc -doc-source -help" _of_complete_cache_[reactingFoam]="-case -decomposeParDict -fileHandler | -dry-run -dry-run-write -listFunctionObjects -listFvOptions -listRegisteredSwitches -listScalarBCs -listSwitches -listTurbulenceModels -listUnsetSwitches -listVectorBCs -noFunctionObjects -parallel -postProcess -doc -doc-source -help" -_of_complete_cache_[reactingMultiphaseEulerFoam]="-case -decomposeParDict -fileHandler | -dry-run -dry-run-write -listFunctionObjects -listFvOptions -listRegisteredSwitches -listScalarBCs -listSwitches -listUnsetSwitches -listVectorBCs -noFunctionObjects -parallel -postProcess -doc -doc-source -help" +_of_complete_cache_[reactingHeterogenousParcelFoam]="-case -decomposeParDict -fileHandler | -dry-run -dry-run-write -listFunctionObjects -listFvOptions -listRegisteredSwitches -listScalarBCs -listSwitches -listTurbulenceModels -listUnsetSwitches -listVectorBCs -noFunctionObjects -parallel -postProcess -doc -doc-source -help" +_of_complete_cache_[reactingMultiphaseEulerFoam]="-case -decomposeParDict -fileHandler | -dry-run -dry-run-write -noFunctionObjects -parallel -postProcess -doc -doc-source -help" _of_complete_cache_[reactingParcelFoam]="-case -decomposeParDict -fileHandler | -dry-run -dry-run-write -listFunctionObjects -listFvOptions -listRegisteredSwitches -listScalarBCs -listSwitches -listTurbulenceModels -listUnsetSwitches -listVectorBCs -noFunctionObjects -parallel -postProcess -doc -doc-source -help" _of_complete_cache_[reactingTwoPhaseEulerFoam]="-case -decomposeParDict -fileHandler | -dry-run -dry-run-write -listFunctionObjects -listFvOptions -listRegisteredSwitches -listScalarBCs -listSwitches -listUnsetSwitches -listVectorBCs -noFunctionObjects -parallel -postProcess -doc -doc-source -help" _of_complete_cache_[reconstructPar]="-case -fields -fileHandler -lagrangianFields -region -time | -allRegions -constant -latestTime -newTimes -noFields -noFunctionObjects -noLagrangian -noSets -noZero -withZero -doc -doc-source -help" @@ -258,7 +262,7 @@ _of_complete_cache_[surfaceInflate]="-case -featureAngle -fileHandler -nSmooth | _of_complete_cache_[surfaceLambdaMuSmooth]="-featureFile | -doc -doc-source -help" _of_complete_cache_[surfaceMeshConvert]="-case -dict -fileHandler -from -scaleIn -scaleOut -to | -clean -noFunctionObjects -tri -doc -doc-source -help" _of_complete_cache_[surfaceMeshExport]="-case -dict -fileHandler -from -name -scaleIn -scaleOut -to | -clean -noFunctionObjects -doc -doc-source -help" -_of_complete_cache_[surfaceMeshExtract]="-case -decomposeParDict -faceZones -fileHandler -patches -region -time | -constant -excludeProcPatches -latestTime -noFunctionObjects -noZero -parallel -doc -doc-source -help" +_of_complete_cache_[surfaceMeshExtract]="-case -decomposeParDict -excludePatches -faceZones -fileHandler -patches -region -time | -constant -excludeProcPatches -latestTime -noFunctionObjects -noZero -parallel -doc -doc-source -help" _of_complete_cache_[surfaceMeshImport]="-case -dict -fileHandler -from -name -scaleIn -scaleOut -to | -clean -noFunctionObjects -doc -doc-source -help" _of_complete_cache_[surfaceMeshInfo]="-case -fileHandler -scale | -areas -noFunctionObjects -xml -doc -doc-source -help" _of_complete_cache_[surfaceOrient]="-case -fileHandler -scale | -inside -noFunctionObjects -usePierceTest -doc -doc-source -help" diff --git a/etc/config.sh/settings b/etc/config.sh/settings index 57386f4012..e9d4feb060 100644 --- a/etc/config.sh/settings +++ b/etc/config.sh/settings @@ -22,6 +22,8 @@ export WM_ARCH="$(uname -s)" # System name ## : ${WM_OSTYPE:=POSIX}; export WM_OSTYPE # System type (POSIX is default) +archOption="${WM_ARCH_OPTION:-64}" +unset WM_ARCH_OPTION # Compiling 32-bit on 64-bit system unset WM_COMPILER_ARCH # Host compiler type (when different than target) unset WM_COMPILER_LIB_ARCH # Additional ending for lib directories @@ -33,21 +35,20 @@ Linux) case "$(uname -m)" in i686) - export WM_ARCH_OPTION=32 ;; x86_64) - : "${WM_ARCH_OPTION:=64}"; export WM_ARCH_OPTION # Default to 64-bit - case "$WM_ARCH_OPTION" in + case "$archOption" in 32) - export WM_COMPILER_ARCH=64 # 64-bit compiler, 32-bit target + export WM_ARCH_OPTION=32 # Need to propagate the value + export WM_COMPILER_ARCH=64 # 64-bit compiler, 32-bit target ;; 64) WM_ARCH=linux64 - export WM_COMPILER_LIB_ARCH=64 + export WM_COMPILER_LIB_ARCH=64 # Target with lib64 ;; *) - echo "Unknown WM_ARCH_OPTION '$WM_ARCH_OPTION', should be 32|64" 1>&2 + echo "Unknown WM_ARCH_OPTION '$archOption', should be 32|64" 1>&2 ;; esac ;; @@ -58,13 +59,11 @@ Linux) armv7l) WM_ARCH=linuxARM7 - export WM_ARCH_OPTION=32 export WM_COMPILER_LIB_ARCH=32 ;; aarch64) WM_ARCH=linuxARM64 - export WM_ARCH_OPTION=64 export WM_COMPILER_LIB_ARCH=64 ;; @@ -85,14 +84,8 @@ Linux) ;; Darwin) # Presumably x86_64 - : ${WM_ARCH_OPTION:=64}; export WM_ARCH_OPTION # Default to 64-bit WM_ARCH=darwin64 - /bin/cat << INCOMPLETE 1>&2 -=============================================================================== -Darwin support (clang only) is incomplete or untested in this OpenFOAM release. -For further assistance, please contact www.OpenFOAM.com -=============================================================================== -INCOMPLETE + echo "Darwin support is clang/llvm only" 1>&2 ;; SunOS*) @@ -314,7 +307,7 @@ esac # Cleanup # ~~~~~~~ -unset archDir siteDir foundDir +unset archDir siteDir foundDir archOption unset gcc_version gccDir unset gmp_version gmpDir mpfr_version mpfrDir mpc_version mpcDir unset clang_version clangDir diff --git a/etc/cshrc b/etc/cshrc index 895513345d..83fc4d58f3 100644 --- a/etc/cshrc +++ b/etc/cshrc @@ -76,12 +76,6 @@ setenv WM_COMPILER_TYPE system # Clang | Clang3[7-9] | Clang[4-6]0 | Icc | Cray | Arm | Pgi setenv WM_COMPILER Gcc -# [WM_ARCH_OPTION] - Memory addressing: -# = 32 | 64 -# * on a 64-bit OS this can be 32 or 64 -# * on a 32-bit OS, it is always 32-bit and this option is ignored -setenv WM_ARCH_OPTION 64 - # [WM_PRECISION_OPTION] - Floating-point precision: # = DP | SP | SPDP setenv WM_PRECISION_OPTION DP @@ -105,7 +99,7 @@ setenv WM_MPLIB SYSTEMOPENMPI #------------------------------------------------------------------------------ # (advanced / legacy) -# + # [FOAM_SIGFPE] - Trap floating-point exceptions. # - overrides the 'trapFpe' controlDict entry # = true | false @@ -128,6 +122,12 @@ setenv WM_MPLIB SYSTEMOPENMPI # = POSIX #setenv WM_OSTYPE POSIX +# [WM_ARCH_OPTION] - compiling with -m32 option on 64-bit system +# = 32 | 64 +# * on a 64-bit OS this can be 32 or 64 +# * on a 32-bit OS this option is ignored (always 32-bit) +setenv WM_ARCH_OPTION 64 + ################################################################################ # Old directories to be cleaned from PATH, LD_LIBRARY_PATH diff --git a/src/OpenFOAM/db/dictionary/dictionary.H b/src/OpenFOAM/db/dictionary/dictionary.H index 7200a507ed..bc91b731a8 100644 --- a/src/OpenFOAM/db/dictionary/dictionary.H +++ b/src/OpenFOAM/db/dictionary/dictionary.H @@ -1281,7 +1281,7 @@ public: //- Deprecated(2018-10) // \deprecated(2018-10) - use keyType::option version entry* - FOAM_DEPRECATED_FOR(2018-10, "lookupEntryPtr(keyType::option)") + FOAM_DEPRECATED_FOR(2018-10, "findEntry(keyType::option)") lookupEntryPtr ( const word& keyword, @@ -1295,7 +1295,7 @@ public: //- Deprecated(2018-10) // \deprecated(2018-10) - use keyType::option version const entry* - FOAM_DEPRECATED_FOR(2018-10, "lookupEntryPtr(keyType::option)") + FOAM_DEPRECATED_FOR(2018-10, "findEntry(keyType::option)") lookupEntryPtr ( const word& keyword, @@ -1309,7 +1309,7 @@ public: //- Deprecated(2018-10) // \deprecated(2018-10) - use keyType::option version const entry* - FOAM_DEPRECATED_FOR(2018-10, "lookupScopedEntryPtr(keyType::option)") + FOAM_DEPRECATED_FOR(2018-10, "findScoped(keyType::option)") lookupScopedEntryPtr ( const word& keyword, diff --git a/src/OpenFOAM/db/dictionary/functionEntries/ifeqEntry/ifeqEntry.C b/src/OpenFOAM/db/dictionary/functionEntries/ifeqEntry/ifeqEntry.C index 4d8f1c189f..79a11deab3 100644 --- a/src/OpenFOAM/db/dictionary/functionEntries/ifeqEntry/ifeqEntry.C +++ b/src/OpenFOAM/db/dictionary/functionEntries/ifeqEntry/ifeqEntry.C @@ -83,13 +83,8 @@ Foam::token Foam::functionEntries::ifeqEntry::expand { const word varName(keyword.substr(1, keyword.size()-1)); - // lookup the variable name in the given dictionary - const entry* ePtr = dict.lookupScopedEntryPtr - ( - varName, - true, - true - ); + // Lookup the variable name in the given dictionary + const entry* ePtr = dict.findScoped(varName, keyType::REGEX_RECURSIVE); if (ePtr) { return token(ePtr->stream()); diff --git a/src/OpenFOAM/matrices/lduMatrix/solvers/GAMG/GAMGSolver.C b/src/OpenFOAM/matrices/lduMatrix/solvers/GAMG/GAMGSolver.C index 08414687e0..5a1edb952f 100644 --- a/src/OpenFOAM/matrices/lduMatrix/solvers/GAMG/GAMGSolver.C +++ b/src/OpenFOAM/matrices/lduMatrix/solvers/GAMG/GAMGSolver.C @@ -27,6 +27,8 @@ License #include "GAMGSolver.H" #include "GAMGInterface.H" +#include "PCG.H" +#include "PBiCGStab.H" // * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * // @@ -249,11 +251,11 @@ Foam::GAMGSolver::GAMGSolver if (matrixLevels_.size()) { - if (directSolveCoarsest_) - { - const label coarsestLevel = matrixLevels_.size() - 1; + const label coarsestLevel = matrixLevels_.size() - 1; - if (matrixLevels_.set(coarsestLevel)) + if (matrixLevels_.set(coarsestLevel)) + { + if (directSolveCoarsest_) { coarsestLUMatrixPtr_.reset ( @@ -265,6 +267,56 @@ Foam::GAMGSolver::GAMGSolver ) ); } + else + { + entry* coarseEntry = controlDict_.findEntry + ( + "coarsestLevelCorr", + keyType::LITERAL_RECURSIVE + ); + if (coarseEntry && coarseEntry->isDict()) + { + coarsestSolverPtr_ = lduMatrix::solver::New + ( + "coarsestLevelCorr", + matrixLevels_[coarsestLevel], + interfaceLevelsBouCoeffs_[coarsestLevel], + interfaceLevelsIntCoeffs_[coarsestLevel], + interfaceLevels_[coarsestLevel], + coarseEntry->dict() + ); + } + else if (matrixLevels_[coarsestLevel].asymmetric()) + { + coarsestSolverPtr_.set + ( + new PBiCGStab + ( + "coarsestLevelCorr", + matrixLevels_[coarsestLevel], + interfaceLevelsBouCoeffs_[coarsestLevel], + interfaceLevelsIntCoeffs_[coarsestLevel], + interfaceLevels_[coarsestLevel], + PBiCGStabSolverDict(tolerance_, relTol_) + ) + ); + } + else + { + coarsestSolverPtr_.set + ( + new PCG + ( + "coarsestLevelCorr", + matrixLevels_[coarsestLevel], + interfaceLevelsBouCoeffs_[coarsestLevel], + interfaceLevelsIntCoeffs_[coarsestLevel], + interfaceLevels_[coarsestLevel], + PCGsolverDict(tolerance_, relTol_) + ) + ); + } + } } } else diff --git a/src/OpenFOAM/matrices/lduMatrix/solvers/GAMG/GAMGSolver.H b/src/OpenFOAM/matrices/lduMatrix/solvers/GAMG/GAMGSolver.H index 3736926650..19ca1d0f4d 100644 --- a/src/OpenFOAM/matrices/lduMatrix/solvers/GAMG/GAMGSolver.H +++ b/src/OpenFOAM/matrices/lduMatrix/solvers/GAMG/GAMGSolver.H @@ -135,6 +135,9 @@ class GAMGSolver //- LU decomposed coarsest matrix autoPtr coarsestLUMatrixPtr_; + //- Sparse coarsest matrix solver + autoPtr coarsestSolverPtr_; + // Private Member Functions diff --git a/src/OpenFOAM/matrices/lduMatrix/solvers/GAMG/GAMGSolverSolve.C b/src/OpenFOAM/matrices/lduMatrix/solvers/GAMG/GAMGSolverSolve.C index 25fc7a8481..644de4eef9 100644 --- a/src/OpenFOAM/matrices/lduMatrix/solvers/GAMG/GAMGSolverSolve.C +++ b/src/OpenFOAM/matrices/lduMatrix/solvers/GAMG/GAMGSolverSolve.C @@ -26,8 +26,6 @@ License \*---------------------------------------------------------------------------*/ #include "GAMGSolver.H" -#include "PCG.H" -#include "PBiCGStab.H" #include "SubField.H" #include "PrecisionAdaptor.H" @@ -695,42 +693,16 @@ void Foam::GAMGSolver::solveCoarsestLevel else { coarsestCorrField = 0; - solverPerformance coarseSolverPerf; - - if (matrixLevels_[coarsestLevel].asymmetric()) - { - coarseSolverPerf = PBiCGStab - ( - "coarsestLevelCorr", - matrixLevels_[coarsestLevel], - interfaceLevelsBouCoeffs_[coarsestLevel], - interfaceLevelsIntCoeffs_[coarsestLevel], - interfaceLevels_[coarsestLevel], - PBiCGStabSolverDict(tolerance_, relTol_) - ).scalarSolve + const solverPerformance coarseSolverPerf + ( + coarsestSolverPtr_->solve ( coarsestCorrField, coarsestSource - ); - } - else - { - coarseSolverPerf = PCG - ( - "coarsestLevelCorr", - matrixLevels_[coarsestLevel], - interfaceLevelsBouCoeffs_[coarsestLevel], - interfaceLevelsIntCoeffs_[coarsestLevel], - interfaceLevels_[coarsestLevel], - PCGsolverDict(tolerance_, relTol_) - ).scalarSolve - ( - coarsestCorrField, - coarsestSource - ); - } + ) + ); - if (debug >= 2) + if (debug) { coarseSolverPerf.print(Info.masterStream(coarseComm)); } diff --git a/src/OpenFOAM/primitives/ints/int32/int32.H b/src/OpenFOAM/primitives/ints/int32/int32.H index a681ded96d..311168a99a 100644 --- a/src/OpenFOAM/primitives/ints/int32/int32.H +++ b/src/OpenFOAM/primitives/ints/int32/int32.H @@ -2,7 +2,7 @@ ========= | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | - \\ / A nd | Copyright (C) 2016-2017 OpenCFD Ltd. + \\ / A nd | Copyright (C) 2016-2019 OpenCFD Ltd. \\/ M anipulation | ------------------------------------------------------------------------------- | Copyright (C) 2014-2016 OpenFOAM Foundation @@ -46,6 +46,7 @@ SourceFiles #include "pTraits.H" #include "direction.H" + // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // namespace Foam @@ -119,9 +120,11 @@ inline bool read(const std::string& str, int32_t& val) Istream& operator>>(Istream& is, int32_t& val); Ostream& operator<<(Ostream& os, const int32_t val); -// 32bit OS: long is not unambiguously (int32_t | int64_t) +// 32bit compilation with long as int32_t // - resolve explicitly for input and output -#if WM_ARCH_OPTION == 32 +// +// Test works for gcc, icc, llvm. +#if (__SIZEOF_LONG__ == 4) Istream& operator>>(Istream& is, long& val); Ostream& operator<<(Ostream& os, const long val); #endif diff --git a/src/OpenFOAM/primitives/ints/int32/int32IO.C b/src/OpenFOAM/primitives/ints/int32/int32IO.C index 634712d0ad..bbeb644726 100644 --- a/src/OpenFOAM/primitives/ints/int32/int32IO.C +++ b/src/OpenFOAM/primitives/ints/int32/int32IO.C @@ -2,7 +2,7 @@ ========= | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | - \\ / A nd | Copyright (C) 2016-2018 OpenCFD Ltd. + \\ / A nd | Copyright (C) 2016-2019 OpenCFD Ltd. \\/ M anipulation | ------------------------------------------------------------------------------- | Copyright (C) 2014-2016 OpenFOAM Foundation @@ -125,7 +125,7 @@ Foam::Ostream& Foam::operator<<(Ostream& os, const int32_t val) } -#if WM_ARCH_OPTION == 32 +#if (__SIZEOF_LONG__ == 4) Foam::Istream& Foam::operator>>(Istream& is, long& val) { return operator>>(is, reinterpret_cast(val)); @@ -133,8 +133,7 @@ Foam::Istream& Foam::operator>>(Istream& is, long& val) Foam::Ostream& Foam::operator<<(Ostream& os, const long val) { - os << int32_t(val); - return os; + return (os << int32_t(val)); } #endif diff --git a/src/OpenFOAM/primitives/quaternion/quaternion.H b/src/OpenFOAM/primitives/quaternion/quaternion.H index 4e3ecc5fcc..b7b69bbc83 100644 --- a/src/OpenFOAM/primitives/quaternion/quaternion.H +++ b/src/OpenFOAM/primitives/quaternion/quaternion.H @@ -182,7 +182,7 @@ public: //- Vector part of the quaternion ( = axis of rotation) inline const vector& v() const; - //- The rotation tensor corresponding the quaternion + //- The rotation tensor corresponding to the quaternion inline tensor R() const; //- Return the Euler rotation angles corresponding to the diff --git a/src/finiteVolume/fvMatrices/solvers/isoAdvection/isoAdvection/isoAdvection.C b/src/finiteVolume/fvMatrices/solvers/isoAdvection/isoAdvection/isoAdvection.C index ac7667e663..edb2d75f1c 100644 --- a/src/finiteVolume/fvMatrices/solvers/isoAdvection/isoAdvection/isoAdvection.C +++ b/src/finiteVolume/fvMatrices/solvers/isoAdvection/isoAdvection/isoAdvection.C @@ -6,7 +6,7 @@ \\/ M anipulation | ------------------------------------------------------------------------------- isoAdvector | Copyright (C) 2016-2017 DHI - Modified work | Copyright (C) 2018 Johan Roenby + Modified work | Copyright (C) 2019 Johan Roenby ------------------------------------------------------------------------------- License @@ -852,6 +852,12 @@ void Foam::isoAdvection::advect() // Do the isoAdvection on surface cells timeIntegratedFlux(); + // Adjust alpha for mesh motion + if (mesh_.moving()) + { + alpha1In_ *= (mesh_.Vsc0()/mesh_.Vsc()); + } + // Adjust dVf for unbounded cells limitFluxes(); diff --git a/src/functionObjects/forces/forces/forces.C b/src/functionObjects/forces/forces/forces.C index 06a6e3ba5d..8f10257667 100644 --- a/src/functionObjects/forces/forces/forces.C +++ b/src/functionObjects/forces/forces/forces.C @@ -107,6 +107,7 @@ void Foam::functionObjects::forces::writeBinHeader writeHeader(os, header + " bins"); writeHeaderValue(os, "bins", nBin_); writeHeaderValue(os, "start", binMin_); + writeHeaderValue(os, "end", binMax_); writeHeaderValue(os, "delta", binDx_); writeHeaderValue(os, "direction", binDir_); @@ -249,14 +250,14 @@ void Foam::functionObjects::forces::initialiseBins() const polyBoundaryMesh& pbm = mesh_.boundaryMesh(); // Determine extents of patches - binMin_ = GREAT; - scalar binMax = -GREAT; + scalar geomMin = GREAT; + scalar geomMax = -GREAT; for (const label patchi : patchSet_) { const polyPatch& pp = pbm[patchi]; scalarField d(pp.faceCentres() & binDir_); - binMin_ = min(min(d), binMin_); - binMax = max(max(d), binMax); + geomMin = min(min(d), geomMin); + geomMax = max(max(d), geomMax); } // Include porosity @@ -276,22 +277,31 @@ void Foam::functionObjects::forces::initialiseBins() { const cellZone& cZone = mesh_.cellZones()[zonei]; const scalarField d(dd, cZone); - binMin_ = min(min(d), binMin_); - binMax = max(max(d), binMax); + geomMin = min(min(d), geomMin); + geomMax = max(max(d), geomMax); } } } - reduce(binMin_, minOp()); - reduce(binMax, maxOp()); + reduce(geomMin, minOp()); + reduce(geomMax, maxOp()); - // Slightly boost binMax so that region of interest is fully - // within bounds - binMax = 1.0001*(binMax - binMin_) + binMin_; + // Slightly boost max so that region of interest is fully within bounds + geomMax = 1.0001*(geomMax - geomMin) + geomMin; - binDx_ = (binMax - binMin_)/scalar(nBin_); + // Use geometry limits if not specified by the user + if (binMin_ == GREAT) + { + binMin_ = geomMin; + } + if (binMax_ == GREAT) + { + binMax_ = geomMax; + } - // Create the bin points used for writing + binDx_ = (binMax_ - binMin_)/scalar(nBin_); + + // Create the bin mid-points used for writing binPoints_.setSize(nBin_); forAll(binPoints_, i) { @@ -712,19 +722,20 @@ Foam::functionObjects::forces::forces forceBinFilePtr_(), momentBinFilePtr_(), patchSet_(), - pName_(word::null), - UName_(word::null), - rhoName_(word::null), + pName_("p"), + UName_("U"), + rhoName_("rho"), directForceDensity_(false), - fDName_(""), + fDName_("fD"), rhoRef_(VGREAT), pRef_(0), coordSys_(), porosity_(false), nBin_(1), binDir_(Zero), - binDx_(0.0), + binDx_(0), binMin_(GREAT), + binMax_(GREAT), binPoints_(), binCumulative_(true), writeFields_(false), @@ -756,19 +767,20 @@ Foam::functionObjects::forces::forces forceBinFilePtr_(), momentBinFilePtr_(), patchSet_(), - pName_(word::null), - UName_(word::null), - rhoName_(word::null), + pName_("p"), + UName_("U"), + rhoName_("rho"), directForceDensity_(false), - fDName_(""), + fDName_("fD"), rhoRef_(VGREAT), pRef_(0), coordSys_(), porosity_(false), nBin_(1), binDir_(Zero), - binDx_(0.0), + binDx_(0), binMin_(GREAT), + binMax_(GREAT), binPoints_(), binCumulative_(true), writeFields_(false), @@ -814,14 +826,26 @@ bool Foam::functionObjects::forces::read(const dictionary& dict) if (directForceDensity_) { // Optional entry for fDName - fDName_ = dict.lookupOrDefault("fD", "fD"); + if (dict.readIfPresent("fD", fDName_)) + { + Info<< " fD: " << fDName_ << endl; + } } else { - // Optional entries U and p - pName_ = dict.lookupOrDefault("p", "p"); - UName_ = dict.lookupOrDefault("U", "U"); - rhoName_ = dict.lookupOrDefault("rho", "rho"); + // Optional field name entries + if (dict.readIfPresent("p", pName_)) + { + Info<< " p: " << pName_ << endl; + } + if (dict.readIfPresent("U", UName_)) + { + Info<< " U: " << UName_ << endl; + } + if (dict.readIfPresent("rho", rhoName_)) + { + Info<< " rho: " << rhoName_ << endl; + } // Reference density needed for incompressible calculations if (rhoName_ == "rhoInf") @@ -831,11 +855,12 @@ bool Foam::functionObjects::forces::read(const dictionary& dict) } // Reference pressure, 0 by default - pRef_ = dict.lookupOrDefault("pRef", 0); - Info<< " Reference pressure (pRef) set to " << pRef_ << endl; + if (dict.readIfPresent("pRef", pRef_)) + { + Info<< " Reference pressure (pRef) set to " << pRef_ << endl; + } } - dict.readIfPresent("porosity", porosity_); if (porosity_) { @@ -848,8 +873,9 @@ bool Foam::functionObjects::forces::read(const dictionary& dict) if (dict.found("binData")) { + Info<< " Activated data bins" << endl; const dictionary& binDict(dict.subDict("binData")); - binDict.readEntry("nBin", nBin_); + nBin_ = binDict.get