diff --git a/src/overset/cellCellStencil/cellCellStencil/cellCellStencil.C b/src/overset/cellCellStencil/cellCellStencil/cellCellStencil.C index 5fc44fa9c7..d8fc062017 100644 --- a/src/overset/cellCellStencil/cellCellStencil/cellCellStencil.C +++ b/src/overset/cellCellStencil/cellCellStencil/cellCellStencil.C @@ -161,6 +161,12 @@ const Foam::wordHashSet& Foam::cellCellStencil::nonInterpolatedFields() const } +Foam::wordHashSet& Foam::cellCellStencil::nonInterpolatedFields() +{ + return nonInterpolatedFields_; +} + + bool Foam::cellCellStencil::localStencil(const labelUList& slots) const { forAll(slots, i) diff --git a/src/overset/cellCellStencil/cellCellStencil/cellCellStencil.H b/src/overset/cellCellStencil/cellCellStencil/cellCellStencil.H index 4b7a162d4a..250afd7ba9 100644 --- a/src/overset/cellCellStencil/cellCellStencil/cellCellStencil.H +++ b/src/overset/cellCellStencil/cellCellStencil/cellCellStencil.H @@ -184,6 +184,9 @@ public: // should not be interpolated virtual const wordHashSet& nonInterpolatedFields() const; + //- Return non-const non-interpolating fields + virtual wordHashSet& nonInterpolatedFields(); + //- Helper: is stencil fully local bool localStencil(const labelUList&) const; diff --git a/src/overset/oversetPolyPatch/oversetFvPatchField.C b/src/overset/oversetPolyPatch/oversetFvPatchField.C index 91d31a4001..c60307d635 100644 --- a/src/overset/oversetPolyPatch/oversetFvPatchField.C +++ b/src/overset/oversetPolyPatch/oversetFvPatchField.C @@ -25,6 +25,7 @@ License #include "volFields.H" #include "cellCellStencil.H" +#include "cellCellStencilObject.H" #include "dynamicOversetFvMesh.H" // * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * // @@ -130,11 +131,20 @@ void Foam::oversetFvPatchField::initEvaluate } else if (fvSchemes.found("oversetInterpolationSuppressed")) { - const dictionary& intDict = fvSchemes.subDict + // Add the stencil suppression list + wordHashSet suppressed(Stencil::New(mesh).nonInterpolatedFields()); + + const dictionary* dictPtr ( - "oversetInterpolationSuppressed" + fvSchemes.subDictPtr("oversetInterpolationSuppressed") ); - if (!intDict.found(fldName)) + + if (dictPtr) + { + suppressed.insert(dictPtr->sortedToc()); + } + + if (!suppressed.found(fldName)) { if (debug) { diff --git a/tutorials/incompressible/overPimpleDyMFoam/twoSimpleRotors/constant/turbulenceProperties b/tutorials/incompressible/overPimpleDyMFoam/twoSimpleRotors/constant/turbulenceProperties index f1f2794666..0b94fd5972 100644 --- a/tutorials/incompressible/overPimpleDyMFoam/twoSimpleRotors/constant/turbulenceProperties +++ b/tutorials/incompressible/overPimpleDyMFoam/twoSimpleRotors/constant/turbulenceProperties @@ -14,7 +14,7 @@ FoamFile } // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // -simulationType RAS; +simulationType laminar; RAS { diff --git a/tutorials/incompressible/overPimpleDyMFoam/twoSimpleRotors/system/blockMeshDict b/tutorials/incompressible/overPimpleDyMFoam/twoSimpleRotors/system/blockMeshDict index 2229b11edf..00281ed648 100644 --- a/tutorials/incompressible/overPimpleDyMFoam/twoSimpleRotors/system/blockMeshDict +++ b/tutorials/incompressible/overPimpleDyMFoam/twoSimpleRotors/system/blockMeshDict @@ -37,7 +37,7 @@ vertices ( 0.85 0.65 1) ( 0.15 0.65 1) - // movingZone2 +// // movingZone2 ( 0.75 0.15 0) ( 1.05 0.15 0) ( 1.05 0.85 0) @@ -46,6 +46,15 @@ vertices ( 1.05 0.15 1) ( 1.05 0.85 1) ( 0.75 0.85 1) + +// ( 0.95 0.15 0) +// ( 1.25 0.15 0) +// ( 1.25 0.85 0) +// ( 0.95 0.85 0) +// ( 0.95 0.15 1) +// ( 1.25 0.15 1) +// ( 1.25 0.85 1) +// ( 0.95 0.85 1) ); blocks diff --git a/tutorials/incompressible/overPimpleDyMFoam/twoSimpleRotors/system/controlDict b/tutorials/incompressible/overPimpleDyMFoam/twoSimpleRotors/system/controlDict index e354785257..13149b3b4c 100644 --- a/tutorials/incompressible/overPimpleDyMFoam/twoSimpleRotors/system/controlDict +++ b/tutorials/incompressible/overPimpleDyMFoam/twoSimpleRotors/system/controlDict @@ -20,23 +20,24 @@ DebugSwitches { overset 0; dynamicOversetFvMesh 0; + cellVolumeWeight 0; } application overPimpleDyMFoam; -startFrom startTime; +startFrom latestTime; startTime 0; stopAt endTime; -endTime 0.08; +endTime 0.8; deltaT 2e-5; -writeControl adjustableRunTime; +writeControl timeStep; -writeInterval 0.005; +writeInterval 30; purgeWrite 0; @@ -52,10 +53,9 @@ timePrecision 6; runTimeModifiable true; -adjustTimeStep no; - -maxCo 1; +adjustTimeStep true; +maxCo 1; functions { @@ -80,7 +80,7 @@ functions probeLocations ( - (0.015 0.005 0.005) // at inlet + (0.015 0.005 0.005) ); } diff --git a/tutorials/incompressible/overPimpleDyMFoam/twoSimpleRotors/system/fvSchemes b/tutorials/incompressible/overPimpleDyMFoam/twoSimpleRotors/system/fvSchemes index 2c2f214bd9..a0c46e9443 100644 --- a/tutorials/incompressible/overPimpleDyMFoam/twoSimpleRotors/system/fvSchemes +++ b/tutorials/incompressible/overPimpleDyMFoam/twoSimpleRotors/system/fvSchemes @@ -29,8 +29,8 @@ divSchemes default none; div(phi,U) Gauss upwind; - div(phi,epsilon) Gauss upwind; - div(phi,k) Gauss upwind; + div(phi,epsilon) Gauss limitedLinear 1; + div(phi,k) Gauss limitedLinear 1; div((nuEff*dev2(T(grad(U))))) Gauss linear; } diff --git a/tutorials/incompressible/overPimpleDyMFoam/twoSimpleRotors/system/fvSolution b/tutorials/incompressible/overPimpleDyMFoam/twoSimpleRotors/system/fvSolution index 7598109ce8..6de0306b1b 100644 --- a/tutorials/incompressible/overPimpleDyMFoam/twoSimpleRotors/system/fvSolution +++ b/tutorials/incompressible/overPimpleDyMFoam/twoSimpleRotors/system/fvSolution @@ -30,7 +30,7 @@ solvers { solver PBiCGStab; preconditioner DILU; - tolerance 1e-9; + tolerance 1e-11; relTol 0.01; } @@ -71,10 +71,10 @@ solvers PIMPLE { - momentumPredictor true; + momentumPredictor false; correctPhi no; nOuterCorrectors 1; - nCorrectors 5; + nCorrectors 3; nNonOrthogonalCorrectors 0; ddtCorr true; diff --git a/tutorials/incompressible/overPimpleDyMFoam/twoSimpleRotors/system/topoSetDict b/tutorials/incompressible/overPimpleDyMFoam/twoSimpleRotors/system/topoSetDict index dc2fc5ef78..50c273074f 100644 --- a/tutorials/incompressible/overPimpleDyMFoam/twoSimpleRotors/system/topoSetDict +++ b/tutorials/incompressible/overPimpleDyMFoam/twoSimpleRotors/system/topoSetDict @@ -100,8 +100,9 @@ actions { boxes ( - (0.0025 0.0045 -100)(0.0075 0.0055 100) - (0.0085 0.0025 -100)(0.0095 0.0075 100) + (0.0025 0.0045 -100)(0.0075 0.0055 100) + (0.0085 0.0025 -100)(0.0095 0.0075 100) + // (0.0104 0.0025 -100)(0.0115 0.0075 100) ); } }