diff --git a/tutorials/compressible/rhoPimpleFoam/RAS/annularThermalMixer/0/T b/tutorials/compressible/rhoPimpleFoam/RAS/annularThermalMixer/0/T index 0215e69c3b..26781ef257 100644 --- a/tutorials/compressible/rhoPimpleFoam/RAS/annularThermalMixer/0/T +++ b/tutorials/compressible/rhoPimpleFoam/RAS/annularThermalMixer/0/T @@ -9,6 +9,7 @@ FoamFile { format ascii; class volScalarField; + location "0"; object T; } // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // @@ -21,6 +22,8 @@ internalField uniform $!outerInlet/T; boundaryField { + #includeEtc "caseDicts/setConstraintTypes" + innerInlet { type fixedValue; @@ -48,7 +51,10 @@ boundaryField $staticWalls; } - #includeEtc "caseDicts/setConstraintTypes" + nonCouple + { + type zeroGradient; + } } // ************************************************************************* // diff --git a/tutorials/compressible/rhoPimpleFoam/RAS/annularThermalMixer/0/U b/tutorials/compressible/rhoPimpleFoam/RAS/annularThermalMixer/0/U index daf48a665a..4f3af25eb7 100644 --- a/tutorials/compressible/rhoPimpleFoam/RAS/annularThermalMixer/0/U +++ b/tutorials/compressible/rhoPimpleFoam/RAS/annularThermalMixer/0/U @@ -22,6 +22,8 @@ internalField uniform (0 0 0); boundaryField { + #includeEtc "caseDicts/setConstraintTypes" + innerInlet { type fixedValue; @@ -49,7 +51,10 @@ boundaryField $!movingWall/U; } - #includeEtc "caseDicts/setConstraintTypes" + nonCouple + { + type zeroGradient; + } } // ************************************************************************* // diff --git a/tutorials/compressible/rhoPimpleFoam/RAS/annularThermalMixer/0/alphat b/tutorials/compressible/rhoPimpleFoam/RAS/annularThermalMixer/0/alphat index ed7abc84d4..23f800d57b 100644 --- a/tutorials/compressible/rhoPimpleFoam/RAS/annularThermalMixer/0/alphat +++ b/tutorials/compressible/rhoPimpleFoam/RAS/annularThermalMixer/0/alphat @@ -22,6 +22,8 @@ internalField uniform 0; boundaryField { + #includeEtc "caseDicts/setConstraintTypes" + inlet { $!calculated/alphat; @@ -42,8 +44,15 @@ boundaryField $movingWalls; } - #includeEtc "caseDicts/setConstraintTypes" + nonCouple + { + type zeroGradient; + } + + nonCouple + { + type zeroGradient; + } } - // ************************************************************************* // diff --git a/tutorials/compressible/rhoPimpleFoam/RAS/annularThermalMixer/0/epsilon b/tutorials/compressible/rhoPimpleFoam/RAS/annularThermalMixer/0/epsilon index f62502f5cb..d522d7b251 100644 --- a/tutorials/compressible/rhoPimpleFoam/RAS/annularThermalMixer/0/epsilon +++ b/tutorials/compressible/rhoPimpleFoam/RAS/annularThermalMixer/0/epsilon @@ -22,6 +22,8 @@ internalField uniform $!innerInlet/epsilon; boundaryField { + #includeEtc "caseDicts/setConstraintTypes" + innerInlet { type fixedValue; @@ -49,7 +51,15 @@ boundaryField $staticWalls; } - #includeEtc "caseDicts/setConstraintTypes" + nonCouple + { + type zeroGradient; + } + + nonCouple + { + type zeroGradient; + } } // ************************************************************************* // diff --git a/tutorials/compressible/rhoPimpleFoam/RAS/annularThermalMixer/0/k b/tutorials/compressible/rhoPimpleFoam/RAS/annularThermalMixer/0/k index cbd47dad66..15dd3f1e9a 100644 --- a/tutorials/compressible/rhoPimpleFoam/RAS/annularThermalMixer/0/k +++ b/tutorials/compressible/rhoPimpleFoam/RAS/annularThermalMixer/0/k @@ -22,6 +22,8 @@ internalField uniform $!innerInlet/k; boundaryField { + #includeEtc "caseDicts/setConstraintTypes" + innerInlet { type fixedValue; @@ -49,7 +51,10 @@ boundaryField $staticWalls; } - #includeEtc "caseDicts/setConstraintTypes" + nonCouple + { + type zeroGradient; + } } // ************************************************************************* // diff --git a/tutorials/compressible/rhoPimpleFoam/RAS/annularThermalMixer/0/nut b/tutorials/compressible/rhoPimpleFoam/RAS/annularThermalMixer/0/nut index 755a05d327..e8e504f1c0 100644 --- a/tutorials/compressible/rhoPimpleFoam/RAS/annularThermalMixer/0/nut +++ b/tutorials/compressible/rhoPimpleFoam/RAS/annularThermalMixer/0/nut @@ -22,6 +22,8 @@ internalField uniform 0; boundaryField { + #includeEtc "caseDicts/setConstraintTypes" + inlet { $!calculated/nut; @@ -42,7 +44,10 @@ boundaryField $movingWalls; } - #includeEtc "caseDicts/setConstraintTypes" + nonCouple + { + type zeroGradient; + } } // ************************************************************************* // diff --git a/tutorials/compressible/rhoPimpleFoam/RAS/annularThermalMixer/0/p b/tutorials/compressible/rhoPimpleFoam/RAS/annularThermalMixer/0/p index 159b8f64ee..25c1d3dec8 100644 --- a/tutorials/compressible/rhoPimpleFoam/RAS/annularThermalMixer/0/p +++ b/tutorials/compressible/rhoPimpleFoam/RAS/annularThermalMixer/0/p @@ -22,6 +22,8 @@ internalField uniform 1e5; boundaryField { + #includeEtc "caseDicts/setConstraintTypes" + inlet { $!inlet/p; @@ -42,7 +44,10 @@ boundaryField $staticWalls; } - #includeEtc "caseDicts/setConstraintTypes" + nonCouple + { + type zeroGradient; + } } // ************************************************************************* // diff --git a/tutorials/compressible/rhoPimpleFoam/RAS/annularThermalMixer/Allrun b/tutorials/compressible/rhoPimpleFoam/RAS/annularThermalMixer/Allrun index 30f4d7df62..040468022c 100755 --- a/tutorials/compressible/rhoPimpleFoam/RAS/annularThermalMixer/Allrun +++ b/tutorials/compressible/rhoPimpleFoam/RAS/annularThermalMixer/Allrun @@ -11,6 +11,7 @@ runApplication snappyHexMesh -overwrite runApplication createBaffles -overwrite runApplication splitBaffles -overwrite +runApplication createNonConformalCouples -overwrite nonCouple1 nonCouple2 runApplication $(getApplication) diff --git a/tutorials/compressible/rhoPimpleFoam/RAS/annularThermalMixer/constant/dynamicMeshDict b/tutorials/compressible/rhoPimpleFoam/RAS/annularThermalMixer/constant/dynamicMeshDict index 79791d5595..7e62f382c4 100644 --- a/tutorials/compressible/rhoPimpleFoam/RAS/annularThermalMixer/constant/dynamicMeshDict +++ b/tutorials/compressible/rhoPimpleFoam/RAS/annularThermalMixer/constant/dynamicMeshDict @@ -24,7 +24,7 @@ mover motionSolver solidBody; - cellZone rotatingZone; + cellZone rotating; solidBodyMotionFunction rotatingMotion; diff --git a/tutorials/compressible/rhoPimpleFoam/RAS/annularThermalMixer/constant/geometry/AMI.obj b/tutorials/compressible/rhoPimpleFoam/RAS/annularThermalMixer/constant/geometry/couple.obj similarity index 100% rename from tutorials/compressible/rhoPimpleFoam/RAS/annularThermalMixer/constant/geometry/AMI.obj rename to tutorials/compressible/rhoPimpleFoam/RAS/annularThermalMixer/constant/geometry/couple.obj diff --git a/tutorials/compressible/rhoPimpleFoam/RAS/annularThermalMixer/system/controlDict b/tutorials/compressible/rhoPimpleFoam/RAS/annularThermalMixer/system/controlDict index f177029b14..b9a558a0c5 100644 --- a/tutorials/compressible/rhoPimpleFoam/RAS/annularThermalMixer/system/controlDict +++ b/tutorials/compressible/rhoPimpleFoam/RAS/annularThermalMixer/system/controlDict @@ -32,7 +32,7 @@ writeInterval 0.02; purgeWrite 0; -writeFormat ascii; +writeFormat binary; writePrecision 6; diff --git a/tutorials/compressible/rhoPimpleFoam/RAS/annularThermalMixer/system/createBafflesDict b/tutorials/compressible/rhoPimpleFoam/RAS/annularThermalMixer/system/createBafflesDict index cd29dfdef8..4a498e8f3c 100644 --- a/tutorials/compressible/rhoPimpleFoam/RAS/annularThermalMixer/system/createBafflesDict +++ b/tutorials/compressible/rhoPimpleFoam/RAS/annularThermalMixer/system/createBafflesDict @@ -20,21 +20,21 @@ baffles baffleFaces { type faceZone; - zoneName rotatingZone; + zoneName couple; patches { master { - name AMI1; - type cyclicAMI; - neighbourPatch AMI2; + name nonCouple1; + type patch; + inGroups (nonCouple); } slave { - $master; - name AMI2; - neighbourPatch AMI1; + name nonCouple2; + type patch; + inGroups (nonCouple); } } } diff --git a/tutorials/compressible/rhoPimpleFoam/RAS/annularThermalMixer/system/fvSchemes b/tutorials/compressible/rhoPimpleFoam/RAS/annularThermalMixer/system/fvSchemes index 121507cf69..1bccff2ed1 100644 --- a/tutorials/compressible/rhoPimpleFoam/RAS/annularThermalMixer/system/fvSchemes +++ b/tutorials/compressible/rhoPimpleFoam/RAS/annularThermalMixer/system/fvSchemes @@ -52,4 +52,5 @@ snGradSchemes default corrected; } + // ************************************************************************* // diff --git a/tutorials/compressible/rhoPimpleFoam/RAS/annularThermalMixer/system/fvSolution b/tutorials/compressible/rhoPimpleFoam/RAS/annularThermalMixer/system/fvSolution index 5093580cd2..afdc3068f4 100644 --- a/tutorials/compressible/rhoPimpleFoam/RAS/annularThermalMixer/system/fvSolution +++ b/tutorials/compressible/rhoPimpleFoam/RAS/annularThermalMixer/system/fvSolution @@ -18,10 +18,8 @@ solvers { p { - solver GAMG; - - smoother GaussSeidel; - + solver GAMG; + smoother GaussSeidel; tolerance 1e-6; relTol 0.01; } @@ -39,6 +37,14 @@ solvers relTol 0; } + MeshPhi + { + solver smoothSolver; + smoother symGaussSeidel; + tolerance 1e-2; + relTol 0; + } + "(rho|U|h|k|epsilon|omega)" { solver smoothSolver; @@ -52,13 +58,13 @@ solvers $U; relTol 0; } - } PIMPLE { momentumPredictor yes; transonic no; + correctMeshPhi yes; nOuterCorrectors 3; nCorrectors 1; nNonOrthogonalCorrectors 0; diff --git a/tutorials/compressible/rhoPimpleFoam/RAS/annularThermalMixer/system/snappyHexMeshDict b/tutorials/compressible/rhoPimpleFoam/RAS/annularThermalMixer/system/snappyHexMeshDict index bfd050785c..67f2d3f374 100644 --- a/tutorials/compressible/rhoPimpleFoam/RAS/annularThermalMixer/system/snappyHexMeshDict +++ b/tutorials/compressible/rhoPimpleFoam/RAS/annularThermalMixer/system/snappyHexMeshDict @@ -19,10 +19,10 @@ addLayers false; geometry { - AMI + couple { type triSurfaceMesh; - file "AMI.obj"; + file "couple.obj"; } innerInlet @@ -85,7 +85,7 @@ castellatedMeshControls features ( { - file "AMI.eMesh"; + file "couple.eMesh"; level 2; } { @@ -108,11 +108,11 @@ castellatedMeshControls refinementSurfaces { - AMI + couple { level (2 2); - faceZone rotatingZone; - cellZone rotatingZone; + faceZone couple; + cellZone rotating; mode inside; } diff --git a/tutorials/compressible/rhoPimpleFoam/RAS/annularThermalMixer/system/surfaceFeaturesDict b/tutorials/compressible/rhoPimpleFoam/RAS/annularThermalMixer/system/surfaceFeaturesDict index 54c832b79e..8ffc8fc170 100644 --- a/tutorials/compressible/rhoPimpleFoam/RAS/annularThermalMixer/system/surfaceFeaturesDict +++ b/tutorials/compressible/rhoPimpleFoam/RAS/annularThermalMixer/system/surfaceFeaturesDict @@ -15,7 +15,7 @@ FoamFile surfaces ( - "AMI.obj" + "couple.obj" "shaft.obj" "wall.obj" "statorBlades.obj" diff --git a/tutorials/incompressible/pimpleFoam/RAS/ballValve/0/U b/tutorials/incompressible/pimpleFoam/RAS/ballValve/0/U new file mode 100644 index 0000000000..fe9f947f8e --- /dev/null +++ b/tutorials/incompressible/pimpleFoam/RAS/ballValve/0/U @@ -0,0 +1,46 @@ +/*--------------------------------*- C++ -*----------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | Website: https://openfoam.org + \\ / A nd | Version: dev + \\/ M anipulation | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + format ascii; + class volVectorField; + object U; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [0 1 -1 0 0 0 0]; + +internalField uniform (0 0 0); + +boundaryField +{ + #includeEtc "caseDicts/setConstraintTypes" + + inlet + { + type pressureInletOutletVelocity; + value $internalField; + } + lowerOutlet + { + type pressureInletOutletVelocity; + value $internalField; + } + upperOutlet + { + type pressureInletOutletVelocity; + value $internalField; + } + wall + { + type movingWallVelocity; + value uniform (0 0 0); + } +} + +// ************************************************************************* // diff --git a/tutorials/incompressible/pimpleFoam/RAS/oscillatingInletACMI2D/0/epsilon b/tutorials/incompressible/pimpleFoam/RAS/ballValve/0/epsilon similarity index 63% rename from tutorials/incompressible/pimpleFoam/RAS/oscillatingInletACMI2D/0/epsilon rename to tutorials/incompressible/pimpleFoam/RAS/ballValve/0/epsilon index 56cb3d5955..2c429b5677 100644 --- a/tutorials/incompressible/pimpleFoam/RAS/oscillatingInletACMI2D/0/epsilon +++ b/tutorials/incompressible/pimpleFoam/RAS/ballValve/0/epsilon @@ -20,46 +20,31 @@ internalField uniform 1.8e-3; boundaryField { + #includeEtc "caseDicts/setConstraintTypes" + inlet { - type fixedValue; + type turbulentMixingLengthDissipationRateInlet; + mixingLength 0.1; value $internalField; } - outlet + lowerOutlet { - type inletOutlet; - inletValue $internalField; + type turbulentMixingLengthDissipationRateInlet; + mixingLength 0.1; value $internalField; } - walls + upperOutlet + { + type turbulentMixingLengthDissipationRateInlet; + mixingLength 0.1; + value $internalField; + } + wall { type epsilonWallFunction; value $internalField; } - defaultFaces - { - type empty; - } - ACMI1_blockage - { - type epsilonWallFunction; - value $internalField; - } - ACMI1_couple - { - type cyclicACMI; - value $internalField; - } - ACMI2_blockage - { - type epsilonWallFunction; - value $internalField; - } - ACMI2_couple - { - type cyclicACMI; - value $internalField; - } } diff --git a/tutorials/incompressible/pimpleFoam/RAS/ballValve/0/k b/tutorials/incompressible/pimpleFoam/RAS/ballValve/0/k new file mode 100644 index 0000000000..57e8614d51 --- /dev/null +++ b/tutorials/incompressible/pimpleFoam/RAS/ballValve/0/k @@ -0,0 +1,51 @@ +/*--------------------------------*- C++ -*----------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | Website: https://openfoam.org + \\ / A nd | Version: dev + \\/ M anipulation | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + format ascii; + class volScalarField; + location "0"; + object k; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [0 2 -2 0 0 0 0]; + +internalField uniform 3.75e-3; + +boundaryField +{ + #includeEtc "caseDicts/setConstraintTypes" + + inlet + { + type turbulentIntensityKineticEnergyInlet; + intensity 0.05; + value $internalField; + } + lowerOutlet + { + type turbulentIntensityKineticEnergyInlet; + intensity 0.05; + value $internalField; + } + upperOutlet + { + type turbulentIntensityKineticEnergyInlet; + intensity 0.05; + value $internalField; + } + wall + { + type kqRWallFunction; + value $internalField; + } +} + + +// ************************************************************************* // diff --git a/tutorials/multiphase/multiphaseEulerFoam/laminar/mixerVesselAMI2D/0/p b/tutorials/incompressible/pimpleFoam/RAS/ballValve/0/nut similarity index 68% rename from tutorials/multiphase/multiphaseEulerFoam/laminar/mixerVesselAMI2D/0/p rename to tutorials/incompressible/pimpleFoam/RAS/ballValve/0/nut index a85a80ca47..1a0806e8ef 100644 --- a/tutorials/multiphase/multiphaseEulerFoam/laminar/mixerVesselAMI2D/0/p +++ b/tutorials/incompressible/pimpleFoam/RAS/ballValve/0/nut @@ -9,49 +9,40 @@ FoamFile { format ascii; class volScalarField; - object p; + location "0"; + object nut; } // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // -dimensions [1 -1 -2 0 0 0 0]; +dimensions [0 2 -1 0 0 0 0]; -internalField uniform 1e5; +internalField uniform 0; boundaryField { - rotor + #includeEtc "caseDicts/setConstraintTypes" + + inlet { type calculated; value $internalField; } - - stator + lowerOutlet { type calculated; value $internalField; } - - front + upperOutlet { - type empty; - } - - back - { - type empty; - } - - AMI1 - { - type cyclicAMI; + type calculated; value $internalField; } - - AMI2 + wall { - type cyclicAMI; + type nutkWallFunction; value $internalField; } } -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +// ************************************************************************* // diff --git a/tutorials/incompressible/pimpleFoam/RAS/ballValve/0/omega b/tutorials/incompressible/pimpleFoam/RAS/ballValve/0/omega new file mode 100644 index 0000000000..b021874aa1 --- /dev/null +++ b/tutorials/incompressible/pimpleFoam/RAS/ballValve/0/omega @@ -0,0 +1,51 @@ +/*--------------------------------*- C++ -*----------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | Website: https://openfoam.org + \\ / A nd | Version: dev + \\/ M anipulation | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + format ascii; + class volScalarField; + location "0"; + object omega; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [0 0 -1 0 0 0 0]; + +internalField uniform 5.33333; + +boundaryField +{ + #includeEtc "caseDicts/setConstraintTypes" + + inlet + { + type turbulentMixingLengthFrequencyInlet; + mixingLength 0.1; + value $internalField; + } + lowerOutlet + { + type turbulentMixingLengthFrequencyInlet; + mixingLength 0.1; + value $internalField; + } + upperOutlet + { + type turbulentMixingLengthFrequencyInlet; + mixingLength 0.1; + value $internalField; + } + wall + { + type omegaWallFunction; + value $internalField; + } +} + + +// ************************************************************************* // diff --git a/tutorials/incompressible/pimpleFoam/RAS/ballValve/0/p b/tutorials/incompressible/pimpleFoam/RAS/ballValve/0/p new file mode 100644 index 0000000000..beef039a60 --- /dev/null +++ b/tutorials/incompressible/pimpleFoam/RAS/ballValve/0/p @@ -0,0 +1,46 @@ +/*--------------------------------*- C++ -*----------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | Website: https://openfoam.org + \\ / A nd | Version: dev + \\/ M anipulation | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + format ascii; + class volScalarField; + location "0"; + object p; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [0 2 -2 0 0 0 0]; + +internalField uniform 0; + +boundaryField +{ + #includeEtc "caseDicts/setConstraintTypes" + + inlet + { + type totalPressure; + p0 uniform 10; + } + lowerOutlet + { + type entrainmentPressure; + p0 uniform 0; + } + upperOutlet + { + type entrainmentPressure; + p0 uniform 0; + } + wall + { + type fixedFluxPressure; + } +} + +// ************************************************************************* // diff --git a/tutorials/incompressible/pimpleFoam/RAS/ballValve/0/s b/tutorials/incompressible/pimpleFoam/RAS/ballValve/0/s new file mode 100644 index 0000000000..3a0790a836 --- /dev/null +++ b/tutorials/incompressible/pimpleFoam/RAS/ballValve/0/s @@ -0,0 +1,49 @@ +/*--------------------------------*- C++ -*----------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | Website: https://openfoam.org + \\ / A nd | Version: dev + \\/ M anipulation | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + format ascii; + class volScalarField; + location "0"; + object s; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [0 0 0 0 0 0 0]; + +internalField uniform 0; + +boundaryField +{ + #includeEtc "caseDicts/setConstraintTypes" + + inlet + { + type fixedValue; + value $internalField; + } + lowerOutlet + { + type inletOutlet; + inletValue $internalField; + value $internalField; + } + upperOutlet + { + type inletOutlet; + inletValue $internalField; + value $internalField; + } + wall + { + type zeroGradient; + } +} + + +// ************************************************************************* // diff --git a/tutorials/incompressible/pimpleFoam/RAS/ballValve/Allclean b/tutorials/incompressible/pimpleFoam/RAS/ballValve/Allclean new file mode 100755 index 0000000000..316abcf486 --- /dev/null +++ b/tutorials/incompressible/pimpleFoam/RAS/ballValve/Allclean @@ -0,0 +1,7 @@ +#!/bin/sh + +cd "${0%/*}" || exit 1 + +. $WM_PROJECT_DIR/bin/tools/CleanFunctions + +cleanCase && rm -rf 0/reconstruct\(phi\) constant/geometry flowRate.eps error.eps diff --git a/tutorials/incompressible/pimpleFoam/RAS/ballValve/Allrun b/tutorials/incompressible/pimpleFoam/RAS/ballValve/Allrun new file mode 100755 index 0000000000..5f7adb4126 --- /dev/null +++ b/tutorials/incompressible/pimpleFoam/RAS/ballValve/Allrun @@ -0,0 +1,31 @@ +#!/bin/sh + +cd ${0%/*} || exit 1 + +. $WM_PROJECT_DIR/bin/tools/RunFunctions + +# Copy torus surface from resources directory +mkdir constant/geometry && cp $FOAM_TUTORIALS/resources/geometry/ballValve-torus.obj.gz constant/geometry + +# Mesh +runApplication blockMesh -dict $FOAM_TUTORIALS/resources/blockMesh/ballValve +runApplication topoSet +runApplication transformPoints -pointSet ball "Rz=-45" + +# Create couples +runApplication createNonConformalCouples -overwrite pipeNonCouple ballNonCouple + +# Decompose +runApplication decomposePar -cellDist + +# Set the value of the scalar transport field +runParallel setFields + +# Run +runParallel $(getApplication); + +# Reconstruct +runApplication reconstructPar -newTimes + +# Plot the flow rates +./createGraphs diff --git a/tutorials/multiphase/multiphaseEulerFoam/laminar/mixerVesselAMI2D/constant/dynamicMeshDict b/tutorials/incompressible/pimpleFoam/RAS/ballValve/constant/dynamicMeshDict similarity index 85% rename from tutorials/multiphase/multiphaseEulerFoam/laminar/mixerVesselAMI2D/constant/dynamicMeshDict rename to tutorials/incompressible/pimpleFoam/RAS/ballValve/constant/dynamicMeshDict index 14d80b3ad7..9763737761 100644 --- a/tutorials/multiphase/multiphaseEulerFoam/laminar/mixerVesselAMI2D/constant/dynamicMeshDict +++ b/tutorials/incompressible/pimpleFoam/RAS/ballValve/constant/dynamicMeshDict @@ -22,13 +22,13 @@ mover motionSolver solidBody; - cellZone rotor; + cellZone ball; - solidBodyMotionFunction rotatingMotion; + solidBodyMotionFunction oscillatingRotatingMotion; origin (0 0 0); - axis (0 0 1); - omega 6.2832; // rad/s + amplitude (0 0 45); + omega 6.283185307179586; } diff --git a/tutorials/incompressible/pimpleFoam/RAS/ballValve/constant/momentumTransport b/tutorials/incompressible/pimpleFoam/RAS/ballValve/constant/momentumTransport new file mode 100644 index 0000000000..7e7c11df67 --- /dev/null +++ b/tutorials/incompressible/pimpleFoam/RAS/ballValve/constant/momentumTransport @@ -0,0 +1,29 @@ +/*--------------------------------*- C++ -*----------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | Website: https://openfoam.org + \\ / A nd | Version: dev + \\/ M anipulation | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + format ascii; + class dictionary; + location "constant"; + object momentumTransport; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +simulationType RAS; + +RAS +{ + model kOmegaSST; //kEpsilon; + + turbulence on; + + printCoeffs on; +} + + +// ************************************************************************* // diff --git a/tutorials/incompressible/pimpleFoam/laminar/mixerVesselAMI2D/constant/physicalProperties b/tutorials/incompressible/pimpleFoam/RAS/ballValve/constant/physicalProperties similarity index 100% rename from tutorials/incompressible/pimpleFoam/laminar/mixerVesselAMI2D/constant/physicalProperties rename to tutorials/incompressible/pimpleFoam/RAS/ballValve/constant/physicalProperties diff --git a/tutorials/incompressible/pimpleFoam/RAS/ballValve/createGraphs b/tutorials/incompressible/pimpleFoam/RAS/ballValve/createGraphs new file mode 100755 index 0000000000..57e466f77e --- /dev/null +++ b/tutorials/incompressible/pimpleFoam/RAS/ballValve/createGraphs @@ -0,0 +1,30 @@ +#!/bin/sh + +cd ${0%/*} || exit 1 + +inletFlowRate=postProcessing/inletFlowRate/0/surfaceFieldValue.dat +lowerOutletFlowRate=postProcessing/lowerOutletFlowRate/0/surfaceFieldValue.dat +upperOutletFlowRate=postProcessing/upperOutletFlowRate/0/surfaceFieldValue.dat + +gnuplot << EOF +set terminal postscript eps color enhanced +set output "flowRate.eps" +set xlabel "Time (s)" +set ylabel "Flow Rate (m^3/s)" +plot \ + "$inletFlowRate" us 1:(-\$2) every 10 w p t "Inlet", \ + "$lowerOutletFlowRate" us 1:2 w l t "Lower Outlet", \ + "$upperOutletFlowRate" us 1:2 w l t "Upper Outlet", \ + "< paste $lowerOutletFlowRate $upperOutletFlowRate" \ + us 1:(\$2+\$4) w l t "Total Outlet" +EOF + +gnuplot << EOF +set terminal postscript eps color enhanced +set output "error.eps" +set xlabel "Time (s)" +set ylabel "Inlet-Outlet Conservation Error (%)" +plot \ + "< paste $inletFlowRate $lowerOutletFlowRate $upperOutletFlowRate" \ + us 1:(100*(\$2+\$4+\$6)/\$2) w l t '' +EOF diff --git a/tutorials/incompressible/pimpleFoam/laminar/mixerVesselAMI2D/system/controlDict b/tutorials/incompressible/pimpleFoam/RAS/ballValve/system/controlDict similarity index 58% rename from tutorials/incompressible/pimpleFoam/laminar/mixerVesselAMI2D/system/controlDict rename to tutorials/incompressible/pimpleFoam/RAS/ballValve/system/controlDict index 6f30a4739e..37bce42a23 100644 --- a/tutorials/incompressible/pimpleFoam/laminar/mixerVesselAMI2D/system/controlDict +++ b/tutorials/incompressible/pimpleFoam/RAS/ballValve/system/controlDict @@ -16,19 +16,19 @@ FoamFile application pimpleFoam; -startFrom startTime; +startFrom latestTime; startTime 0; stopAt endTime; -endTime 5; +endTime 1; deltaT 1e-3; writeControl adjustableRunTime; -writeInterval 0.05; +writeInterval 0.01; purgeWrite 0; @@ -50,37 +50,13 @@ maxCo 0.5; functions { - cartesianToCylindrical - { - type cylindrical; - libs ("libfieldFunctionObjects.so"); - - origin (0 0 0); - axis (0 0 1); - - field U; - - writeControl outputTime; - writeInterval 1; - } - - #includeFunc fieldAverage(cylindrical(U)) - - cylindricalToCartesian - { - type cylindrical; - libs ("libfieldFunctionObjects.so"); - - origin (0 0 0); - axis (0 0 1); - - field cylindrical(U)Mean; - toCartesian true; - result UMean; - - writeControl outputTime; - writeInterval 1; - } + #includeFunc patchFlowRate(funcName=inletFlowRate, patch=inlet) + #includeFunc patchFlowRate(funcName=lowerOutletFlowRate, patch=lowerOutlet) + #includeFunc patchFlowRate(funcName=upperOutletFlowRate, patch=upperOutlet) + #includeFunc scalarTransport(s) + #includeFunc reconstruct(phi) + #includeFunc streamlinesPatch(patch=inlet, nPoints=100, U=reconstruct(phi)) + #includeFunc wallsSurface } diff --git a/tutorials/incompressible/pimpleFoam/RAS/ballValve/system/decomposeParDict b/tutorials/incompressible/pimpleFoam/RAS/ballValve/system/decomposeParDict new file mode 100644 index 0000000000..c3a1be773f --- /dev/null +++ b/tutorials/incompressible/pimpleFoam/RAS/ballValve/system/decomposeParDict @@ -0,0 +1,28 @@ +/*--------------------------------*- C++ -*----------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | Website: https://openfoam.org + \\ / A nd | Version: dev + \\/ M anipulation | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + format ascii; + class dictionary; + object decomposeParDict; +} + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +numberOfSubdomains 8; + +method scotch; + +hierarchicalCoeffs +{ + n (2 2 2); + order xyz; +} + + +// ************************************************************************* // diff --git a/tutorials/incompressible/pimpleFoam/RAS/ballValve/system/fvSchemes b/tutorials/incompressible/pimpleFoam/RAS/ballValve/system/fvSchemes new file mode 100644 index 0000000000..49598fccce --- /dev/null +++ b/tutorials/incompressible/pimpleFoam/RAS/ballValve/system/fvSchemes @@ -0,0 +1,64 @@ +/*--------------------------------*- C++ -*----------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | Website: https://openfoam.org + \\ / A nd | Version: dev + \\/ M anipulation | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + format ascii; + class dictionary; + location "system"; + object fvSchemes; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +ddtSchemes +{ + default Euler; +} + +gradSchemes +{ + default Gauss linear; + grad(U) cellLimited Gauss linear 1; + grad(k) cellLimited Gauss linear 1; + grad(epsilon) cellLimited Gauss linear 1; + grad(omega) cellLimited Gauss linear 1; +} + +divSchemes +{ + default none; + div(phi,U) Gauss linearUpwind grad(U); + div(phi,k) Gauss limitedLinear 1; + div(phi,epsilon) Gauss limitedLinear 1; + div(phi,omega) Gauss limitedLinear 1; + div(phi,s) Gauss limitedLinear 1; + div((nuEff*dev2(T(grad(U))))) Gauss linear; +} + +laplacianSchemes +{ + default Gauss linear corrected; +} + +interpolationSchemes +{ + default linear; +} + +snGradSchemes +{ + default corrected; +} + +wallDist +{ + method meshWave; + correctWalls false; +} + + +// ************************************************************************* // diff --git a/tutorials/incompressible/pimpleFoam/laminar/mixerVesselAMI2D/system/fvSolution b/tutorials/incompressible/pimpleFoam/RAS/ballValve/system/fvSolution similarity index 71% rename from tutorials/incompressible/pimpleFoam/laminar/mixerVesselAMI2D/system/fvSolution rename to tutorials/incompressible/pimpleFoam/RAS/ballValve/system/fvSolution index c7d5465608..eaacf82519 100644 --- a/tutorials/incompressible/pimpleFoam/laminar/mixerVesselAMI2D/system/fvSolution +++ b/tutorials/incompressible/pimpleFoam/RAS/ballValve/system/fvSolution @@ -20,46 +20,34 @@ solvers { solver GAMG; smoother GaussSeidel; - cacheAgglomeration no; - - tolerance 0.02; - relTol 0; + tolerance 0.02; + relTol 0; } p { $pcorr; - tolerance 1e-06; + tolerance 1e-6; relTol 0.01; } pFinal { $p; - tolerance 1e-06; relTol 0; } - U + "(U|k|epsilon|omega|s)" { - solver smoothSolver; - smoother GaussSeidel; - tolerance 1e-05; + solver PBiCGStab; + preconditioner DILU; + tolerance 1e-5; relTol 0.01; } - UFinal + "(U|k|epsilon|omega|s)Final" { $U; - tolerance 1e-06; - relTol 0; - } - - cellMotionUx - { - solver PCG; - preconditioner DIC; - tolerance 1e-08; relTol 0; } } @@ -67,12 +55,10 @@ solvers PIMPLE { correctPhi yes; + correctMeshPhi no; nOuterCorrectors 2; nCorrectors 1; nNonOrthogonalCorrectors 0; - - pRefCell 0; - pRefValue 0; } relaxationFactors diff --git a/tutorials/incompressible/pimpleFoam/RAS/ballValve/system/setFieldsDict b/tutorials/incompressible/pimpleFoam/RAS/ballValve/system/setFieldsDict new file mode 100644 index 0000000000..3b211e627c --- /dev/null +++ b/tutorials/incompressible/pimpleFoam/RAS/ballValve/system/setFieldsDict @@ -0,0 +1,37 @@ +/*--------------------------------*- C++ -*----------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | Website: https://openfoam.org + \\ / A nd | Version: dev + \\/ M anipulation | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + format ascii; + class dictionary; + object setFieldsDict; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +defaultFieldValues +( + volScalarFieldValue s 0 +); + +regions +( + cylinderToFace + { + point1 (-0.51 0 0); + point2 (-0.49 0 0); + radius 0.05; + + fieldValues + ( + volScalarFieldValue s 1 + ); + } +); + + +// ************************************************************************* // diff --git a/tutorials/incompressible/pimpleFoam/laminar/mixerVesselAMI2D/system/topoSetDict b/tutorials/incompressible/pimpleFoam/RAS/ballValve/system/topoSetDict similarity index 73% rename from tutorials/incompressible/pimpleFoam/laminar/mixerVesselAMI2D/system/topoSetDict rename to tutorials/incompressible/pimpleFoam/RAS/ballValve/system/topoSetDict index 5f0ea3a548..9ddbf129af 100644 --- a/tutorials/incompressible/pimpleFoam/laminar/mixerVesselAMI2D/system/topoSetDict +++ b/tutorials/incompressible/pimpleFoam/RAS/ballValve/system/topoSetDict @@ -15,16 +15,20 @@ FoamFile actions ( - // Get both sides of ami - // ~~~~~~~~~~~~~~~~~~~~~ - - // Get all faces in cellSet { - name AMI; - type faceSet; action new; - source patchToFace; - patch "AMI.*"; + type cellSet; + name ball; + source zoneToCell; + zone ball; + } + { + action new; + type pointSet; + name ball; + source cellToPoint; + set ball; + option all; } ); diff --git a/tutorials/incompressible/pimpleFoam/RAS/ballValve/system/wallsSurface b/tutorials/incompressible/pimpleFoam/RAS/ballValve/system/wallsSurface new file mode 100644 index 0000000000..3b8600cfef --- /dev/null +++ b/tutorials/incompressible/pimpleFoam/RAS/ballValve/system/wallsSurface @@ -0,0 +1,31 @@ +/*--------------------------------*- C++ -*----------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | Website: https://openfoam.org + \\ / A nd | Version: dev + \\/ M anipulation | +\*---------------------------------------------------------------------------*/ + +type surfaces; +libs ("libsampling.so"); + +writeControl writeTime; + +surfaceFormat vtk; + +interpolationScheme cell; +interpolate false; + +fields (); + +surfaces +( + walls + { + type patch; + interpolate $interpolate; + patches (pipeWalls pipeNonCouple ballWalls ballNonCouple); + } +); + +// ************************************************************************* // diff --git a/tutorials/incompressible/pimpleFoam/RAS/impeller/0/U b/tutorials/incompressible/pimpleFoam/RAS/impeller/0/U index 2404cb10fd..ef97a303a0 100644 --- a/tutorials/incompressible/pimpleFoam/RAS/impeller/0/U +++ b/tutorials/incompressible/pimpleFoam/RAS/impeller/0/U @@ -28,16 +28,22 @@ boundaryField value $internalField; } - stationaryWalls + "(statorDuct|nonCoupleIn1|nonCoupleOut2)" { type noSlip; } - movingWalls + "(rotorDuct|rotorBlades|nonCoupleIn2|nonCoupleOut1)" { type movingWallVelocity; value $internalField; } + + nonCouple + { + type movingWallSlipVelocity; + value $internalField; + } } diff --git a/tutorials/incompressible/pimpleFoam/RAS/impeller/0/epsilon b/tutorials/incompressible/pimpleFoam/RAS/impeller/0/epsilon index a45586ced8..ed05d86506 100644 --- a/tutorials/incompressible/pimpleFoam/RAS/impeller/0/epsilon +++ b/tutorials/incompressible/pimpleFoam/RAS/impeller/0/epsilon @@ -34,6 +34,11 @@ boundaryField type epsilonWallFunction; value $internalField; } + + nonCouple + { + type zeroGradient; + } } diff --git a/tutorials/incompressible/pimpleFoam/RAS/impeller/0/k b/tutorials/incompressible/pimpleFoam/RAS/impeller/0/k index b078a848cd..d80320fcc8 100644 --- a/tutorials/incompressible/pimpleFoam/RAS/impeller/0/k +++ b/tutorials/incompressible/pimpleFoam/RAS/impeller/0/k @@ -34,6 +34,11 @@ boundaryField type kqRWallFunction; value $internalField; } + + nonCouple + { + type zeroGradient; + } } diff --git a/tutorials/incompressible/pimpleFoam/RAS/impeller/0/nut b/tutorials/incompressible/pimpleFoam/RAS/impeller/0/nut index d4ff852fe9..7f223b5ac7 100644 --- a/tutorials/incompressible/pimpleFoam/RAS/impeller/0/nut +++ b/tutorials/incompressible/pimpleFoam/RAS/impeller/0/nut @@ -33,6 +33,12 @@ boundaryField type nutkWallFunction; value uniform 0; } + + nonCouple + { + type calculated; + value uniform 0; + } } diff --git a/tutorials/incompressible/pimpleFoam/RAS/impeller/0/p b/tutorials/incompressible/pimpleFoam/RAS/impeller/0/p index 22a2d8eb33..d2f5947789 100644 --- a/tutorials/incompressible/pimpleFoam/RAS/impeller/0/p +++ b/tutorials/incompressible/pimpleFoam/RAS/impeller/0/p @@ -24,7 +24,7 @@ boundaryField "(inlet|outlet)" { - type totalPressure; + type entrainmentPressure; p0 $internalField; value $internalField; } @@ -33,6 +33,11 @@ boundaryField { type fixedFluxPressure; } + + nonCouple + { + type fixedFluxPressure; + } } diff --git a/tutorials/incompressible/pimpleFoam/RAS/impeller/Allclean b/tutorials/incompressible/pimpleFoam/RAS/impeller/Allclean new file mode 100755 index 0000000000..361fdab19b --- /dev/null +++ b/tutorials/incompressible/pimpleFoam/RAS/impeller/Allclean @@ -0,0 +1,7 @@ +#!/bin/sh + +cd "${0%/*}" || exit 1 + +. $WM_PROJECT_DIR/bin/tools/CleanFunctions + +cleanCase && rm -f 0/cylindrical\(U\) diff --git a/tutorials/incompressible/pimpleFoam/RAS/impeller/Allrun b/tutorials/incompressible/pimpleFoam/RAS/impeller/Allrun index 0fdbeb9e0f..dea9347dc0 100755 --- a/tutorials/incompressible/pimpleFoam/RAS/impeller/Allrun +++ b/tutorials/incompressible/pimpleFoam/RAS/impeller/Allrun @@ -6,8 +6,6 @@ cd "${0%/*}" || exit 1 runApplication blockMesh -runApplication decomposePar +runApplication createNonConformalCouples -overwrite -runParallel $(getApplication) - -runApplication reconstructPar +runApplication $(getApplication) diff --git a/tutorials/incompressible/pimpleFoam/RAS/impeller/constant/geometry/surface0.stl.gz b/tutorials/incompressible/pimpleFoam/RAS/impeller/constant/geometry/surface0.stl.gz deleted file mode 100644 index 2e17a4d6f8..0000000000 Binary files a/tutorials/incompressible/pimpleFoam/RAS/impeller/constant/geometry/surface0.stl.gz and /dev/null differ diff --git a/tutorials/incompressible/pimpleFoam/RAS/impeller/constant/geometry/surface1.stl.gz b/tutorials/incompressible/pimpleFoam/RAS/impeller/constant/geometry/surface1.stl.gz deleted file mode 100644 index 79ef60e03e..0000000000 Binary files a/tutorials/incompressible/pimpleFoam/RAS/impeller/constant/geometry/surface1.stl.gz and /dev/null differ diff --git a/tutorials/incompressible/pimpleFoam/RAS/impeller/system/blockMeshDict b/tutorials/incompressible/pimpleFoam/RAS/impeller/system/blockMeshDict index 02ae269b1d..fb02c3b0f9 100644 --- a/tutorials/incompressible/pimpleFoam/RAS/impeller/system/blockMeshDict +++ b/tutorials/incompressible/pimpleFoam/RAS/impeller/system/blockMeshDict @@ -83,15 +83,9 @@ edges arc 15 31 (2 $r4 0) ); -defaultPatch -{ - name movingWalls; - type wall; -} - boundary ( - stationaryWalls + statorDuct { type wall; faces @@ -103,6 +97,34 @@ boundary ); } + rotorDuct + { + type wall; + faces + ( + (0 1 17 16) + (1 2 18 17) + (0 5 21 16) + (5 10 26 21) + (6 7 23 22) + (6 11 27 22) + ); + } + + rotorBlades + { + type wall; + faces + ( + (0 1 6 5) + (1 2 7 6) + (5 6 11 10) + (16 17 22 21) + (17 18 23 22) + (21 22 27 26) + ); + } + inlet { type patch; @@ -141,22 +163,20 @@ boundary ); } - cyclicRepeatAMIIn1 + nonCoupleIn1 { - type cyclicRepeatAMI; - neighbourPatch cyclicRepeatAMIIn2; - transformPatch cyclicIn1; + type patch; + inGroups (nonCouple); faces ( (3 8 24 19) ); } - cyclicRepeatAMIIn2 + nonCoupleIn2 { - type cyclicRepeatAMI; - neighbourPatch cyclicRepeatAMIIn1; - transformPatch cyclicIn1; + type patch; + inGroups (nonCouple); faces ( (2 7 23 18) @@ -183,22 +203,20 @@ boundary ); } - cyclicRepeatAMIOut1 + nonCoupleOut1 { - type cyclicRepeatAMI; - neighbourPatch cyclicRepeatAMIOut2; - transformPatch cyclicIn1; + type patch; + inGroups (nonCouple); faces ( (10 11 27 26) ); } - cyclicRepeatAMIOut2 + nonCoupleOut2 { - type cyclicRepeatAMI; - neighbourPatch cyclicRepeatAMIOut1; - transformPatch cyclicIn1; + type patch; + inGroups (nonCouple); faces ( (12 13 29 28) diff --git a/tutorials/incompressible/pimpleFoam/RAS/impeller/system/controlDict b/tutorials/incompressible/pimpleFoam/RAS/impeller/system/controlDict index 78e9e4ee52..31e61a541c 100644 --- a/tutorials/incompressible/pimpleFoam/RAS/impeller/system/controlDict +++ b/tutorials/incompressible/pimpleFoam/RAS/impeller/system/controlDict @@ -50,10 +50,23 @@ maxCo 1.0; functions { - #includeFunc patchFlowRate(patch=inlet) - #includeFunc patchFlowRate(patch=outlet) - #includeFunc triSurfaceVolumetricFlowRate(name=surface0.stl) - #includeFunc triSurfaceVolumetricFlowRate(name=surface1.stl) + #includeFunc patchFlowRate(patch=inlet, funcName=inletFlowRate) + #includeFunc patchFlowRate(patch=outlet, funcName=outletFlowRate) + + cartesianToCylindrical + { + type cylindrical; + libs ("libfieldFunctionObjects.so"); + + origin (0 0 0); + axis (1 0 0); + + field U; + + writeControl outputTime; + writeInterval 1; + } } + // ************************************************************************* // diff --git a/tutorials/incompressible/pimpleFoam/RAS/impeller/system/createNonConformalCouplesDict b/tutorials/incompressible/pimpleFoam/RAS/impeller/system/createNonConformalCouplesDict new file mode 100644 index 0000000000..5859c6113e --- /dev/null +++ b/tutorials/incompressible/pimpleFoam/RAS/impeller/system/createNonConformalCouplesDict @@ -0,0 +1,69 @@ +/*--------------------------------*- C++ -*----------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | Website: https://openfoam.org + \\ / A nd | Version: dev + \\/ M anipulation | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + format ascii; + class dictionary; + location "system"; + object createNonConformalCouplesDict; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +nonConformalCoupleIn0 +{ + patches (nonCoupleIn1 nonCoupleIn2); + transform none; +} + +nonConformalCoupleIn30 +{ + $nonConformalCoupleIn0; + transform rotational; + rotationAxis (-1 0 0); + rotationCentre (0 0 0); + rotationAngle 30; +} + +nonConformalCoupleIn60 { $nonConformalCoupleIn30; rotationAngle 60; } +nonConformalCoupleIn90 { $nonConformalCoupleIn30; rotationAngle 90; } +nonConformalCoupleIn120 { $nonConformalCoupleIn30; rotationAngle 120; } +nonConformalCoupleIn150 { $nonConformalCoupleIn30; rotationAngle 150; } +nonConformalCoupleIn180 { $nonConformalCoupleIn30; rotationAngle 180; } +nonConformalCoupleIn210 { $nonConformalCoupleIn30; rotationAngle 210; } +nonConformalCoupleIn240 { $nonConformalCoupleIn30; rotationAngle 240; } +nonConformalCoupleIn270 { $nonConformalCoupleIn30; rotationAngle 270; } +nonConformalCoupleIn300 { $nonConformalCoupleIn30; rotationAngle 300; } +nonConformalCoupleIn330 { $nonConformalCoupleIn30; rotationAngle 330; } + +nonConformalCoupleOut0 +{ + patches (nonCoupleOut1 nonCoupleOut2); + transform none; +} + +nonConformalCoupleOut30 +{ + patches (nonCoupleOut1 nonCoupleOut2); + transform rotational; + rotationAxis (-1 0 0); + rotationCentre (0 0 0); + rotationAngle -30; +} + +nonConformalCoupleOut60 { $nonConformalCoupleOut30; rotationAngle -60; } +nonConformalCoupleOut90 { $nonConformalCoupleOut30; rotationAngle -90; } +nonConformalCoupleOut120 { $nonConformalCoupleOut30; rotationAngle -120; } +nonConformalCoupleOut150 { $nonConformalCoupleOut30; rotationAngle -150; } +nonConformalCoupleOut180 { $nonConformalCoupleOut30; rotationAngle -180; } +nonConformalCoupleOut210 { $nonConformalCoupleOut30; rotationAngle -210; } +nonConformalCoupleOut240 { $nonConformalCoupleOut30; rotationAngle -240; } +nonConformalCoupleOut270 { $nonConformalCoupleOut30; rotationAngle -270; } +nonConformalCoupleOut300 { $nonConformalCoupleOut30; rotationAngle -300; } +nonConformalCoupleOut330 { $nonConformalCoupleOut30; rotationAngle -330; } + +// ************************************************************************* // diff --git a/tutorials/incompressible/pimpleFoam/RAS/impeller/system/fvSolution b/tutorials/incompressible/pimpleFoam/RAS/impeller/system/fvSolution index bac6b40244..3131ee0b0b 100644 --- a/tutorials/incompressible/pimpleFoam/RAS/impeller/system/fvSolution +++ b/tutorials/incompressible/pimpleFoam/RAS/impeller/system/fvSolution @@ -54,13 +54,11 @@ solvers PIMPLE { - correctPhi yes; + correctPhi no; + correctMeshPhi no; nOuterCorrectors 2; nCorrectors 1; nNonOrthogonalCorrectors 0; - - pRefCell 0; - pRefValue 0; } relaxationFactors diff --git a/tutorials/incompressible/pimpleFoam/RAS/oscillatingInletACMI2D/0/U b/tutorials/incompressible/pimpleFoam/RAS/oscillatingInlet/0/U similarity index 66% rename from tutorials/incompressible/pimpleFoam/RAS/oscillatingInletACMI2D/0/U rename to tutorials/incompressible/pimpleFoam/RAS/oscillatingInlet/0/U index f22db80116..61086c3665 100644 --- a/tutorials/incompressible/pimpleFoam/RAS/oscillatingInletACMI2D/0/U +++ b/tutorials/incompressible/pimpleFoam/RAS/oscillatingInlet/0/U @@ -20,43 +20,30 @@ internalField uniform (0 0 0); boundaryField { + #includeEtc "caseDicts/setConstraintTypes" + inlet { type fixedValue; value uniform (1 0 0); } + outlet { type pressureInletOutletVelocity; - value uniform (0 0 0); + value $internalField; } + walls { -// type fixedValue; type movingWallVelocity; - value uniform (0 0 0); + value $internalField; } - defaultFaces + + "nonCouple.*" { - type empty; - } - ACMI1_blockage - { - type noSlip; - } - ACMI1_couple - { - type cyclicACMI; - value uniform (0 0 0); - } - ACMI2_blockage - { - type noSlip; - } - ACMI2_couple - { - type cyclicACMI; - value uniform (0 0 0); + type movingWallVelocity; + value $internalField; } } diff --git a/tutorials/incompressible/pimpleFoam/laminar/mixerVesselAMI2D/0/epsilon b/tutorials/incompressible/pimpleFoam/RAS/oscillatingInlet/0/epsilon similarity index 80% rename from tutorials/incompressible/pimpleFoam/laminar/mixerVesselAMI2D/0/epsilon rename to tutorials/incompressible/pimpleFoam/RAS/oscillatingInlet/0/epsilon index 50d96ad9c4..600b8dfce2 100644 --- a/tutorials/incompressible/pimpleFoam/laminar/mixerVesselAMI2D/0/epsilon +++ b/tutorials/incompressible/pimpleFoam/RAS/oscillatingInlet/0/epsilon @@ -16,43 +16,36 @@ FoamFile dimensions [0 2 -3 0 0 0 0]; -internalField uniform 20; +internalField uniform 1.8e-3; boundaryField { - rotor + #includeEtc "caseDicts/setConstraintTypes" + + inlet + { + type fixedValue; + value $internalField; + } + + outlet + { + type inletOutlet; + inletValue $internalField; + value $internalField; + } + + walls { type epsilonWallFunction; value $internalField; } - stator + "nonCouple.*" { type epsilonWallFunction; value $internalField; } - - front - { - type empty; - } - - back - { - type empty; - } - - AMI1 - { - type cyclicAMI; - value $internalField; - } - - AMI2 - { - type cyclicAMI; - value $internalField; - } } diff --git a/tutorials/incompressible/pimpleFoam/RAS/oscillatingInletACMI2D/0/k b/tutorials/incompressible/pimpleFoam/RAS/oscillatingInlet/0/k similarity index 74% rename from tutorials/incompressible/pimpleFoam/RAS/oscillatingInletACMI2D/0/k rename to tutorials/incompressible/pimpleFoam/RAS/oscillatingInlet/0/k index 50158c23ff..cf6817cdbc 100644 --- a/tutorials/incompressible/pimpleFoam/RAS/oscillatingInletACMI2D/0/k +++ b/tutorials/incompressible/pimpleFoam/RAS/oscillatingInlet/0/k @@ -20,46 +20,32 @@ internalField uniform 3.75e-3; boundaryField { + #includeEtc "caseDicts/setConstraintTypes" + inlet { type fixedValue; value $internalField; } + outlet { type inletOutlet; inletValue $internalField; value $internalField; } + walls { type kqRWallFunction; value $internalField; } - defaultFaces - { - type empty; - } - ACMI1_blockage + + "nonCouple.*" { type kqRWallFunction; value $internalField; } - ACMI1_couple - { - type cyclicACMI; - value $internalField; - } - ACMI2_blockage - { - type kqRWallFunction; - value $internalField; - } - ACMI2_couple - { - type cyclicACMI; - value $internalField; - } } diff --git a/tutorials/incompressible/pimpleFoam/laminar/mixerVesselAMI2D/0/nut b/tutorials/incompressible/pimpleFoam/RAS/oscillatingInlet/0/nut similarity index 76% rename from tutorials/incompressible/pimpleFoam/laminar/mixerVesselAMI2D/0/nut rename to tutorials/incompressible/pimpleFoam/RAS/oscillatingInlet/0/nut index bd1ef5caff..a2340603c0 100644 --- a/tutorials/incompressible/pimpleFoam/laminar/mixerVesselAMI2D/0/nut +++ b/tutorials/incompressible/pimpleFoam/RAS/oscillatingInlet/0/nut @@ -20,37 +20,30 @@ internalField uniform 0; boundaryField { - rotor - { - type nutkWallFunction; - value uniform 0; - } + #includeEtc "caseDicts/setConstraintTypes" - stator + inlet { - type nutkWallFunction; - value uniform 0; - } - - front - { - type empty; - } - - back - { - type empty; - } - - AMI1 - { - type cyclicAMI; + type fixedValue; value $internalField; } - AMI2 + outlet { - type cyclicAMI; + type inletOutlet; + inletValue $internalField; + value $internalField; + } + + walls + { + type nutkWallFunction; + value $internalField; + } + + "nonCouple.*" + { + type nutkWallFunction; value $internalField; } } diff --git a/tutorials/incompressible/pimpleFoam/RAS/oscillatingInlet/0/omega b/tutorials/incompressible/pimpleFoam/RAS/oscillatingInlet/0/omega new file mode 100644 index 0000000000..5557cd033c --- /dev/null +++ b/tutorials/incompressible/pimpleFoam/RAS/oscillatingInlet/0/omega @@ -0,0 +1,52 @@ +/*--------------------------------*- C++ -*----------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | Website: https://openfoam.org + \\ / A nd | Version: dev + \\/ M anipulation | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + format ascii; + class volScalarField; + location "0"; + object omega; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [0 0 -1 0 0 0 0]; + +internalField uniform 5.33333; + +boundaryField +{ + #includeEtc "caseDicts/setConstraintTypes" + + inlet + { + type fixedValue; + value $internalField; + } + + outlet + { + type inletOutlet; + inletValue $internalField; + value $internalField; + } + + walls + { + type omegaWallFunction; + value $internalField; + } + + "nonCouple.*" + { + type omegaWallFunction; + value $internalField; + } +} + + +// ************************************************************************* // diff --git a/tutorials/incompressible/pimpleFoam/laminar/mixerVesselAMI2D/0/p b/tutorials/incompressible/pimpleFoam/RAS/oscillatingInlet/0/p similarity index 74% rename from tutorials/incompressible/pimpleFoam/laminar/mixerVesselAMI2D/0/p rename to tutorials/incompressible/pimpleFoam/RAS/oscillatingInlet/0/p index 7bc6d72418..52a3d60db4 100644 --- a/tutorials/incompressible/pimpleFoam/laminar/mixerVesselAMI2D/0/p +++ b/tutorials/incompressible/pimpleFoam/RAS/oscillatingInlet/0/p @@ -9,6 +9,7 @@ FoamFile { format ascii; class volScalarField; + location "0"; object p; } // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // @@ -19,37 +20,29 @@ internalField uniform 0; boundaryField { - rotor + #includeEtc "caseDicts/setConstraintTypes" + + inlet { type zeroGradient; } - stator + outlet + { + type fixedValue; + value uniform 0; + } + + walls { type zeroGradient; } - front + "nonCouple.*" { - type empty; - } - - back - { - type empty; - } - - AMI1 - { - type cyclicAMI; - value $internalField; - } - - AMI2 - { - type cyclicAMI; - value $internalField; + type zeroGradient; } } + // ************************************************************************* // diff --git a/tutorials/incompressible/pimpleFoam/RAS/oscillatingInlet/Allrun b/tutorials/incompressible/pimpleFoam/RAS/oscillatingInlet/Allrun new file mode 100755 index 0000000000..2a202110b6 --- /dev/null +++ b/tutorials/incompressible/pimpleFoam/RAS/oscillatingInlet/Allrun @@ -0,0 +1,11 @@ +#!/bin/sh + +cd ${0%/*} || exit 1 + +. $WM_PROJECT_DIR/bin/tools/RunFunctions + +runApplication blockMesh + +runApplication createNonConformalCouples -overwrite nonCouple1 nonCouple2 + +runApplication $(getApplication) diff --git a/tutorials/incompressible/pimpleFoam/RAS/oscillatingInletACMI2D/constant/dynamicMeshDict b/tutorials/incompressible/pimpleFoam/RAS/oscillatingInlet/constant/dynamicMeshDict similarity index 100% rename from tutorials/incompressible/pimpleFoam/RAS/oscillatingInletACMI2D/constant/dynamicMeshDict rename to tutorials/incompressible/pimpleFoam/RAS/oscillatingInlet/constant/dynamicMeshDict diff --git a/tutorials/incompressible/pimpleFoam/RAS/oscillatingInletACMI2D/constant/momentumTransport b/tutorials/incompressible/pimpleFoam/RAS/oscillatingInlet/constant/momentumTransport similarity index 95% rename from tutorials/incompressible/pimpleFoam/RAS/oscillatingInletACMI2D/constant/momentumTransport rename to tutorials/incompressible/pimpleFoam/RAS/oscillatingInlet/constant/momentumTransport index 4c5d358a4a..f04dd45e24 100644 --- a/tutorials/incompressible/pimpleFoam/RAS/oscillatingInletACMI2D/constant/momentumTransport +++ b/tutorials/incompressible/pimpleFoam/RAS/oscillatingInlet/constant/momentumTransport @@ -18,7 +18,7 @@ simulationType RAS; RAS { - model kEpsilon; + model realizableKE; turbulence on; diff --git a/tutorials/incompressible/pimpleFoam/RAS/oscillatingInletACMI2D/constant/physicalProperties b/tutorials/incompressible/pimpleFoam/RAS/oscillatingInlet/constant/physicalProperties similarity index 100% rename from tutorials/incompressible/pimpleFoam/RAS/oscillatingInletACMI2D/constant/physicalProperties rename to tutorials/incompressible/pimpleFoam/RAS/oscillatingInlet/constant/physicalProperties diff --git a/tutorials/incompressible/pimpleFoam/RAS/oscillatingInletACMI2D/system/blockMeshDict b/tutorials/incompressible/pimpleFoam/RAS/oscillatingInlet/system/blockMeshDict similarity index 89% rename from tutorials/incompressible/pimpleFoam/RAS/oscillatingInletACMI2D/system/blockMeshDict rename to tutorials/incompressible/pimpleFoam/RAS/oscillatingInlet/system/blockMeshDict index 67befdb3ab..00f4647859 100644 --- a/tutorials/incompressible/pimpleFoam/RAS/oscillatingInletACMI2D/system/blockMeshDict +++ b/tutorials/incompressible/pimpleFoam/RAS/oscillatingInlet/system/blockMeshDict @@ -38,14 +38,13 @@ vertices blocks ( - hex (0 1 2 3 4 5 6 7) (80 40 1) simpleGrading (1 1 1) + hex (0 1 2 3 4 5 6 7) inletChannel (80 40 1) simpleGrading (1 1 1) hex (8 9 10 11 12 13 14 15) (80 96 1) simpleGrading (1 1 1) ); -defaultPatch -{ - type empty; -} +edges +( +); boundary ( @@ -76,17 +75,17 @@ boundary (9 13 12 8) ); } - couple1 + nonCouple1 { - type patch; + type wall; faces ( (2 6 5 1) ); } - couple2 + nonCouple2 { - type patch; + type wall; faces ( (8 12 15 11) @@ -94,5 +93,8 @@ boundary } ); +mergePatchPairs +( +); // ************************************************************************* // diff --git a/tutorials/incompressible/pimpleFoam/RAS/oscillatingInletACMI2D/system/controlDict b/tutorials/incompressible/pimpleFoam/RAS/oscillatingInlet/system/controlDict similarity index 87% rename from tutorials/incompressible/pimpleFoam/RAS/oscillatingInletACMI2D/system/controlDict rename to tutorials/incompressible/pimpleFoam/RAS/oscillatingInlet/system/controlDict index 98506e6a6d..dc9e22a34d 100644 --- a/tutorials/incompressible/pimpleFoam/RAS/oscillatingInletACMI2D/system/controlDict +++ b/tutorials/incompressible/pimpleFoam/RAS/oscillatingInlet/system/controlDict @@ -48,5 +48,11 @@ adjustTimeStep true; maxCo 0.5; +functions +{ + #includeFunc patchFlowRate(patch=inlet, funcName=inletFlowRate) + #includeFunc patchFlowRate(patch=outlet, funcName=outletFlowRate) +} + // ************************************************************************* // diff --git a/tutorials/incompressible/pimpleFoam/RAS/oscillatingInletACMI2D/system/decomposeParDict b/tutorials/incompressible/pimpleFoam/RAS/oscillatingInlet/system/decomposeParDict similarity index 100% rename from tutorials/incompressible/pimpleFoam/RAS/oscillatingInletACMI2D/system/decomposeParDict rename to tutorials/incompressible/pimpleFoam/RAS/oscillatingInlet/system/decomposeParDict diff --git a/tutorials/incompressible/pimpleFoam/RAS/oscillatingInletACMI2D/system/fvSchemes b/tutorials/incompressible/pimpleFoam/RAS/oscillatingInlet/system/fvSchemes similarity index 89% rename from tutorials/incompressible/pimpleFoam/RAS/oscillatingInletACMI2D/system/fvSchemes rename to tutorials/incompressible/pimpleFoam/RAS/oscillatingInlet/system/fvSchemes index cbee64c130..68e866b933 100644 --- a/tutorials/incompressible/pimpleFoam/RAS/oscillatingInletACMI2D/system/fvSchemes +++ b/tutorials/incompressible/pimpleFoam/RAS/oscillatingInlet/system/fvSchemes @@ -29,16 +29,16 @@ gradSchemes divSchemes { default none; -// div(phi,U) Gauss upwind; div(phi,U) Gauss linearUpwind grad(U); div(phi,k) Gauss upwind; div(phi,epsilon) Gauss upwind; + div(phi,omega) Gauss upwind; div((nuEff*dev2(T(grad(U))))) Gauss linear; } laplacianSchemes { - default Gauss linear limited corrected 0.33; + default Gauss linear corrected; } interpolationSchemes @@ -48,7 +48,7 @@ interpolationSchemes snGradSchemes { - default limited corrected 0.33; + default corrected; } diff --git a/tutorials/incompressible/pimpleFoam/RAS/oscillatingInletACMI2D/system/fvSolution b/tutorials/incompressible/pimpleFoam/RAS/oscillatingInlet/system/fvSolution similarity index 82% rename from tutorials/incompressible/pimpleFoam/RAS/oscillatingInletACMI2D/system/fvSolution rename to tutorials/incompressible/pimpleFoam/RAS/oscillatingInlet/system/fvSolution index 49f1354149..6030a5b72c 100644 --- a/tutorials/incompressible/pimpleFoam/RAS/oscillatingInletACMI2D/system/fvSolution +++ b/tutorials/incompressible/pimpleFoam/RAS/oscillatingInlet/system/fvSolution @@ -18,39 +18,35 @@ solvers "pcorr.*" { solver GAMG; + smoother GaussSeidel; tolerance 1e-2; relTol 0; - smoother GaussSeidel; - cacheAgglomeration no; - maxIter 50; } p { $pcorr; - tolerance 1e-5; + tolerance 1e-6; relTol 0.01; } pFinal { $p; - tolerance 1e-6; relTol 0; } - "(U|k|epsilon)" + "(U|k|epsilon|omega)" { - solver smoothSolver; - smoother symGaussSeidel; + solver PBiCGStab; + preconditioner DILU; tolerance 1e-6; relTol 0.1; } - "(U|k|epsilon)Final" + "(U|k|epsilon|omega)Final" { $U; - tolerance 1e-6; relTol 0; } } @@ -58,15 +54,14 @@ solvers PIMPLE { correctPhi no; + correctMeshPhi no; nOuterCorrectors 1; nCorrectors 2; nNonOrthogonalCorrectors 0; } relaxationFactors -{ -// "(U|k|epsilon).*" 1; -} +{} cache { diff --git a/tutorials/incompressible/pimpleFoam/RAS/oscillatingInletACMI2D/0/p b/tutorials/incompressible/pimpleFoam/RAS/oscillatingInletACMI2D/0/p deleted file mode 100644 index db63b6f5b8..0000000000 --- a/tutorials/incompressible/pimpleFoam/RAS/oscillatingInletACMI2D/0/p +++ /dev/null @@ -1,69 +0,0 @@ -/*--------------------------------*- C++ -*----------------------------------*\ - ========= | - \\ / F ield | OpenFOAM: The Open Source CFD Toolbox - \\ / O peration | Website: https://openfoam.org - \\ / A nd | Version: dev - \\/ M anipulation | -\*---------------------------------------------------------------------------*/ -FoamFile -{ - format ascii; - class volScalarField; - location "0"; - object p; -} -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -dimensions [0 2 -2 0 0 0 0]; - -internalField uniform 0; - -boundaryField -{ - inlet - { - type zeroGradient; - } - outlet - { - type fixedValue; - value uniform 0; - } - walls - { - type zeroGradient; - } - couple1 - { - type zeroGradient; - } - couple2 - { - type zeroGradient; - } - defaultFaces - { - type empty; - } - ACMI1_blockage - { - type zeroGradient; - } - ACMI1_couple - { - type cyclicACMI; - value uniform 0; - } - ACMI2_blockage - { - type zeroGradient; - } - ACMI2_couple - { - type cyclicACMI; - value uniform 0; - } -} - - -// ************************************************************************* // diff --git a/tutorials/incompressible/pimpleFoam/RAS/oscillatingInletACMI2D/Allmesh b/tutorials/incompressible/pimpleFoam/RAS/oscillatingInletACMI2D/Allmesh deleted file mode 100755 index 22c5c016de..0000000000 --- a/tutorials/incompressible/pimpleFoam/RAS/oscillatingInletACMI2D/Allmesh +++ /dev/null @@ -1,14 +0,0 @@ -#!/bin/sh -cd ${0%/*} || exit 1 # Run from this directory - -# Source tutorial run functions -. $WM_PROJECT_DIR/bin/tools/RunFunctions - -runApplication blockMesh - -runApplication topoSet -constant - -# Split the mesh to generate the ACMI coupled patches -runApplication createBaffles -overwrite - -#------------------------------------------------------------------------------ diff --git a/tutorials/incompressible/pimpleFoam/RAS/oscillatingInletACMI2D/Allrun b/tutorials/incompressible/pimpleFoam/RAS/oscillatingInletACMI2D/Allrun deleted file mode 100755 index e6a19278ee..0000000000 --- a/tutorials/incompressible/pimpleFoam/RAS/oscillatingInletACMI2D/Allrun +++ /dev/null @@ -1,9 +0,0 @@ -#!/bin/sh -cd ${0%/*} || exit 1 # Run from this directory - -# Source tutorial run functions -. $WM_PROJECT_DIR/bin/tools/RunFunctions - -./Allmesh - -runApplication $(getApplication) diff --git a/tutorials/incompressible/pimpleFoam/RAS/oscillatingInletACMI2D/Allrun-parallel b/tutorials/incompressible/pimpleFoam/RAS/oscillatingInletACMI2D/Allrun-parallel deleted file mode 100755 index 851eaa6c43..0000000000 --- a/tutorials/incompressible/pimpleFoam/RAS/oscillatingInletACMI2D/Allrun-parallel +++ /dev/null @@ -1,13 +0,0 @@ -#!/bin/sh -cd ${0%/*} || exit 1 # Run from this directory - -# Source tutorial run functions -. $WM_PROJECT_DIR/bin/tools/RunFunctions - -./Allmesh - -runApplication decomposePar - -runParallel $(getApplication) - -runApplication reconstructPar diff --git a/tutorials/incompressible/pimpleFoam/RAS/oscillatingInletACMI2D/README b/tutorials/incompressible/pimpleFoam/RAS/oscillatingInletACMI2D/README deleted file mode 100644 index 5d92207159..0000000000 --- a/tutorials/incompressible/pimpleFoam/RAS/oscillatingInletACMI2D/README +++ /dev/null @@ -1,131 +0,0 @@ -oscillatingInletACMI2D - -This tutorial case gives an example of the Arbitrarily Coupled Mesh Interface -(ACMI) usage. The mesh is composed of two mesh regions: an inlet channel which -oscillates in the +/- Y-direction, and a fixed mesh region. - -Each ACMI patch requires the specification of a 'non-overlapping' patch. In -this example, the non-overlapping patches are described as walls, e.g. taken -from the constant/polyMesh/boundary file: - - 1. First ACMI patch pair applied to the inlet channel outlet - - ACMI1_couple - { - type cyclicACMI; - nFaces 40; - startFace 43720; - matchTolerance 0.0001; - neighbourPatch ACMI2_couple; - nonOverlapPatch ACMI1_blockage; - } - ACMI1_blockage - { - type wall; - nFaces 40; - startFace 43680; - } - - - 1. Second ACMI patch pair applied to the fixed mesh region inlet - - ACMI2_couple - { - type cyclicACMI; - nFaces 96; - startFace 43856; - matchTolerance 0.0001; - neighbourPatch ACMI1_couple; - nonOverlapPatch ACMI2_blockage; - } - ACMI2_blockage - { - type wall; - nFaces 96; - startFace 43760; - } - - -In the above, the ACMI1_blockage and ACMI1_couple patches occupy the same space, -with duplicate points, edges and faces. The ACMI2_blockage and ACMI2_couple -patches are created similarly. - -The duplicate patches are initially created using the createBaffles utility. -Firstly, the original (non-duplicated) patch faces are collected into zones -using the topoSet utility. - -Note: when specifying the ACMI patch-pairs, the coupled patch must be specified -before its associated non-overlapping patch. - -Each ACMI/non-overlapping patch pair is specified using a master-slave approach. -However, since we are generating boundary patches (which are always master -patches) the slave patches are simply defined using 'dummy' entries, e.g.: - - type faceZone; - zoneName couple1Faces; - - patches - { - // create cyclic ACMI patch - master - { - //- Master side patch - name ACMI1_couple; - type cyclicACMI; - matchTolerance 0.0001; - neighbourPatch ACMI2_couple; - nonOverlapPatch ACMI1_blockage; - } - slave // dummy entries only - { - //- Slave side patch - name ACMI1_couple; - type patch; - } - // create blockage patch - master2 - { - //- Master side patch - name ACMI1_blockage; - type wall; - } - slave12 // dummy entries only - { - //- Slave side patch - name ACMI1_blockage; - type wall; - } - - } - -Boundary conditions must then be applied to all geometric patches in the usual, -manner, and the cases can be executed in parallel (as shown when running the -Allrun-parallel script) without any special treatment, i.e. the case set-up is -the same as when operating in serial mode. - - -checkMesh ---------- -checkMesh will see the 'duplicate' boundary faces but does not know about -the area factors so will complain: - - ***Boundary openness (-0.0103092 2.3845e-17 3.80774e-17) possible hole in boundary description. - ***Open cells found, max cell openness: 0.333333, number of open cells 136 - <