From ca89189ecdd9e372abc256ab3c2c2d4ed8bfeea8 Mon Sep 17 00:00:00 2001 From: Henry Weller Date: Mon, 8 Aug 2022 22:46:51 +0100 Subject: [PATCH] solvers::incompressibleFluid: New solver module for incompressible fluid flow executed with foamRun for single region simulations of foamMultiRun for multi-region simulations. Replaces pimpleFoam, pisoFoam and simpleFoam and all the corresponding tutorials have been updated and moved to tutorials/modules/incompressibleFluid. Class Foam::solvers::incompressibleFluid Description Solver module for steady or transient turbulent flow of incompressible isothermal fluids with optional mesh motion and change. Uses the flexible PIMPLE (PISO-SIMPLE) solution for time-resolved and pseudo-transient and steady simulations. Optional fvModels and fvConstraints are provided to enhance the simulation in many ways including adding various sources, constraining or limiting the solution. Reference: \verbatim Greenshields, C. J., & Weller, H. G. (2022). Notes on Computational Fluid Dynamics: General Principles. CFD Direct Ltd.: Reading, UK. \endverbatim SourceFiles incompressibleFluid.C See also Foam::solvers::fluidSolver Foam::solvers::isothermalFluid --- .../{pimpleFoam => }/SRFPimpleFoam/Make/files | 0 .../{pisoFoam => SRFPimpleFoam}/Make/options | 0 .../SRFPimpleFoam/SRFPimpleFoam.C | 2 +- .../{pimpleFoam => }/SRFPimpleFoam/UrelEqn.H | 0 .../SRFPimpleFoam/createFields.H | 0 .../{pimpleFoam => }/SRFPimpleFoam/pEqn.H | 0 .../{simpleFoam => }/SRFSimpleFoam/Make/files | 0 .../SRFSimpleFoam/Make/options | 2 - .../SRFSimpleFoam/SRFSimpleFoam.C | 2 +- .../{simpleFoam => }/SRFSimpleFoam/UrelEqn.H | 0 .../SRFSimpleFoam/createFields.H | 0 .../{simpleFoam => }/SRFSimpleFoam/pEqn.H | 0 .../incompressible/pimpleFoam/Make/files | 3 - .../solvers/incompressible/pimpleFoam/UEqn.H | 24 -- .../incompressible/pimpleFoam/correctPhi.H | 21 -- .../incompressible/pimpleFoam/createFields.H | 47 ---- .../solvers/incompressible/pimpleFoam/pEqn.H | 72 ------ .../incompressible/pimpleFoam/pimpleFoam.C | 149 ----------- .../incompressible/pisoFoam/Make/files | 3 - .../solvers/incompressible/pisoFoam/UEqn.H | 23 -- .../solvers/incompressible/pisoFoam/pEqn.H | 45 ---- .../incompressible/pisoFoam/pisoFoam.C | 99 -------- .../porousSimpleFoam/Make/files | 0 .../porousSimpleFoam/Make/options | 2 - .../{simpleFoam => }/porousSimpleFoam/UEqn.H | 0 .../createFields.H | 4 +- .../porousSimpleFoam/createPorousZones.H | 0 .../{simpleFoam => }/porousSimpleFoam/pEqn.H | 0 .../porousSimpleFoam/porousSimpleFoam.C | 2 +- applications/solvers/modules/fluid/Allwmake | 2 + .../solvers/modules/fluid/fluid/Make/options | 4 +- .../solvers/modules/fluid/fluid/fluid.H | 6 +- .../modules/fluid/fluidSolver/Make/files | 3 + .../fluid/fluidSolver}/Make/options | 5 +- .../modules/fluid/fluidSolver/fluidSolver.C | 220 ++++++++++++++++ .../modules/fluid/fluidSolver/fluidSolver.H | 179 +++++++++++++ .../fluid/incompressibleFluid/Make/files | 7 + .../fluid/incompressibleFluid}/Make/options | 13 +- .../incompressibleFluid/correctPressure.C | 112 +++++++++ .../incompressibleFluid/incompressibleFluid.C | 236 ++++++++++++++++++ .../incompressibleFluid/incompressibleFluid.H | 219 ++++++++++++++++ .../incompressibleFluid/momentumPredictor.C | 57 +++++ .../fluid/incompressibleFluid/moveMesh.C | 75 ++++++ .../fluid/incompressibleFluid/setRDeltaT.C} | 34 +++ .../fluid/isothermalFluid/Make/options | 2 + .../fluid/isothermalFluid/isothermalFluid.C | 90 +------ .../fluid/isothermalFluid/isothermalFluid.H | 59 +---- .../modules/fluid/isothermalFluid/moveMesh.C | 25 -- .../fluid/multicomponentFluid/Make/options | 4 +- .../multicomponentFluid/multicomponentFluid.H | 20 +- bin/buoyantFoam | 5 +- bin/buoyantReactingFoam | 5 +- bin/pimpleFoam | 46 ++++ bin/pisoFoam | 46 ++++ bin/reactingFoam | 5 +- bin/rhoPimpleFoam | 5 +- bin/simpleFoam | 46 ++++ etc/config.sh/bash_completion | 129 ++++++---- .../incompressibleFluid}/T3A/0/ReThetat | 0 .../incompressibleFluid}/T3A/0/U | 0 .../incompressibleFluid}/T3A/0/gammaInt | 0 .../incompressibleFluid}/T3A/0/k | 0 .../incompressibleFluid}/T3A/0/nut | 0 .../incompressibleFluid}/T3A/0/omega | 0 .../incompressibleFluid}/T3A/0/p | 0 .../incompressibleFluid}/T3A/Allclean | 0 .../incompressibleFluid}/T3A/Allrun | 0 .../incompressibleFluid}/T3A/README | 0 .../T3A/constant/momentumTransport | 0 .../T3A/constant/physicalProperties | 0 .../T3A/system/blockMeshDict | 0 .../T3A/system/controlDict | 4 +- .../incompressibleFluid}/T3A/system/fvSchemes | 0 .../T3A/system/fvSolution | 0 .../T3A/validation/createGraphs | 0 .../T3A/validation/exptData/T3A.dat | 0 .../incompressibleFluid}/TJunction/0/U | 0 .../incompressibleFluid}/TJunction/0/epsilon | 0 .../incompressibleFluid}/TJunction/0/k | 0 .../incompressibleFluid}/TJunction/0/nuTilda | 0 .../incompressibleFluid}/TJunction/0/nut | 0 .../incompressibleFluid}/TJunction/0/p | 0 .../incompressibleFluid}/TJunction/Allrun | 0 .../incompressibleFluid}/TJunction/README.txt | 0 .../TJunction/constant/cloudProperties | 0 .../TJunction/constant/fvModels | 0 .../TJunction/constant/geometry/surface1.obj | 0 .../TJunction/constant/geometry/surface2.obj | 0 .../TJunction/constant/momentumTransport | 0 .../TJunction/constant/physicalProperties | 0 .../TJunction/system/blockMeshDict | 0 .../TJunction/system/controlDict | 4 +- .../TJunction/system/fvSchemes | 0 .../TJunction/system/fvSolution | 0 .../TJunction/system/topoSetDict | 0 .../TJunctionFan/0/U.orig | 0 .../TJunctionFan/0/epsilon.orig | 0 .../TJunctionFan/0/k.orig | 0 .../TJunctionFan/0/nuTilda.orig | 0 .../TJunctionFan/0/nut.orig | 0 .../TJunctionFan/0/p.orig | 0 .../incompressibleFluid}/TJunctionFan/Allrun | 0 .../TJunctionFan/constant/momentumTransport | 0 .../TJunctionFan/constant/physicalProperties | 0 .../TJunctionFan/system/blockMeshDict | 0 .../TJunctionFan/system/controlDict | 4 +- .../TJunctionFan/system/createBafflesDict | 0 .../TJunctionFan/system/fvSchemes | 0 .../TJunctionFan/system/fvSolution | 0 .../TJunctionFan/system/topoSetDict | 0 .../incompressibleFluid}/airFoil2D/0/U | 0 .../incompressibleFluid}/airFoil2D/0/nuTilda | 0 .../incompressibleFluid}/airFoil2D/0/nut | 0 .../incompressibleFluid}/airFoil2D/0/p | 0 .../incompressibleFluid}/airFoil2D/Allclean | 0 .../incompressibleFluid}/airFoil2D/Allrun | 0 .../airFoil2D/constant/momentumTransport | 0 .../airFoil2D/constant/physicalProperties | 0 .../airFoil2D/constant/polyMesh/boundary | 0 .../airFoil2D/constant/polyMesh/cells | 0 .../airFoil2D/constant/polyMesh/faces | 0 .../airFoil2D/constant/polyMesh/neighbour | 0 .../airFoil2D/constant/polyMesh/owner | 0 .../airFoil2D/constant/polyMesh/points | 0 .../airFoil2D/system/controlDict | 4 +- .../airFoil2D/system/fvSchemes | 0 .../airFoil2D/system/fvSolution | 0 .../incompressibleFluid}/ballValve/0/U | 0 .../incompressibleFluid}/ballValve/0/epsilon | 0 .../incompressibleFluid}/ballValve/0/k | 0 .../incompressibleFluid}/ballValve/0/nut | 0 .../incompressibleFluid}/ballValve/0/omega | 0 .../incompressibleFluid}/ballValve/0/p | 0 .../incompressibleFluid}/ballValve/0/s | 0 .../incompressibleFluid}/ballValve/Allclean | 0 .../incompressibleFluid}/ballValve/Allrun | 0 .../ballValve/constant/dynamicMeshDict | 0 .../ballValve/constant/momentumTransport | 0 .../ballValve/constant/physicalProperties | 0 .../ballValve/createGraphs | 0 .../ballValve/system/controlDict | 4 +- .../ballValve/system/decomposeParDict | 0 .../ballValve/system/fvSchemes | 0 .../ballValve/system/fvSolution | 0 .../ballValve/system/setFieldsDict | 0 .../ballValve/system/topoSetDict | 0 .../ballValve/system/wallsSurface | 0 .../incompressibleFluid}/blockedChannel/0/U | 0 .../incompressibleFluid}/blockedChannel/0/p | 0 .../blockedChannel/0/tracer | 0 .../blockedChannel/Allclean | 0 .../blockedChannel/Allrun | 0 .../blockedChannel/constant/fvModels | 0 .../blockedChannel/constant/momentumTransport | 0 .../constant/physicalProperties | 0 .../blockedChannel/system/blockMeshDict | 0 .../blockedChannel/system/controlDict | 4 +- .../blockedChannel/system/fvSchemes | 0 .../blockedChannel/system/fvSolution | 0 .../blockedChannel/system/generateAlphas | 0 .../incompressibleFluid}/cavity/0/U | 0 .../incompressibleFluid}/cavity/0/epsilon | 0 .../incompressibleFluid}/cavity/0/k | 0 .../incompressibleFluid}/cavity/0/nuTilda | 0 .../incompressibleFluid}/cavity/0/nut | 0 .../incompressibleFluid}/cavity/0/omega | 0 .../incompressibleFluid}/cavity/0/p | 0 .../cavity/constant/momentumTransport | 0 .../cavity}/constant/physicalProperties | 0 .../cavity/system/blockMeshDict | 0 .../cavity}/system/controlDict | 4 +- .../cavity/system/fvSchemes | 0 .../cavity/system/fvSolution | 4 +- .../incompressibleFluid}/cavityCoupledU/0/U | 0 .../cavityCoupledU/0/epsilon | 0 .../incompressibleFluid}/cavityCoupledU/0/k | 0 .../cavityCoupledU/0/nuTilda | 0 .../incompressibleFluid}/cavityCoupledU/0/nut | 0 .../incompressibleFluid}/cavityCoupledU/0/p | 0 .../cavityCoupledU/constant/momentumTransport | 0 .../constant/physicalProperties | 0 .../cavityCoupledU/system/blockMeshDict | 0 .../cavityCoupledU}/system/controlDict | 4 +- .../cavityCoupledU/system/fvSchemes | 0 .../cavityCoupledU/system/fvSolution | 6 +- .../incompressibleFluid}/channel395/0.orig/U | 0 .../incompressibleFluid}/channel395/0.orig/k | 0 .../channel395/0.orig/nuTilda | 0 .../channel395/0.orig/nut | 0 .../incompressibleFluid}/channel395/0.orig/p | 0 .../incompressibleFluid}/channel395/0/B.gz | Bin .../incompressibleFluid}/channel395/0/U.gz | Bin .../incompressibleFluid}/channel395/0/k.gz | Bin .../channel395/0/nuTilda.gz | Bin .../incompressibleFluid}/channel395/0/nut.gz | Bin .../incompressibleFluid}/channel395/0/p.gz | Bin .../incompressibleFluid}/channel395/Allrun | 0 .../channel395/constant/momentumTransport | 0 .../channel395/constant/physicalProperties | 0 .../channel395/system/blockMeshDict | 0 .../channel395/system/controlDict | 4 +- .../channel395/system/decomposeParDict | 0 .../channel395/system/fvConstraints | 0 .../channel395/system/fvSchemes | 0 .../channel395/system/fvSolution | 0 .../channel395/system/postChannelDict | 0 .../incompressibleFluid}/drivaerFastback/0/U | 0 .../incompressibleFluid}/drivaerFastback/0/k | 0 .../drivaerFastback/0/nut | 0 .../drivaerFastback/0/omega | 0 .../incompressibleFluid}/drivaerFastback/0/p | 0 .../drivaerFastback/Allclean | 0 .../drivaerFastback/Allrun | 0 .../constant/geometry/body.obj.gz | Bin .../constant/geometry/frontWheels.obj.gz | Bin .../constant/geometry/rearWheels.obj.gz | Bin .../constant/momentumTransport | 0 .../constant/physicalProperties | 0 .../drivaerFastback/system/blockMeshDict | 0 .../drivaerFastback/system/controlDict.orig | 0 .../system/decomposeParDict.orig | 0 .../system/forceCoeffsIncompressible | 0 .../drivaerFastback/system/fvSchemes | 0 .../drivaerFastback/system/fvSolution | 0 .../drivaerFastback/system/meshQualityDict | 0 .../system/snappyHexMeshDict.orig | 0 .../ductSecondaryFlow/0/R | 0 .../ductSecondaryFlow/0/U | 0 .../ductSecondaryFlow/0/epsilon | 0 .../ductSecondaryFlow/0/k | 0 .../ductSecondaryFlow/0/nut | 0 .../ductSecondaryFlow/0/p | 0 .../constant/momentumTransport | 0 .../constant/physicalProperties | 0 .../ductSecondaryFlow/system/blockMeshDict | 0 .../ductSecondaryFlow/system/controlDict | 4 +- .../ductSecondaryFlow/system/fvConstraints | 0 .../ductSecondaryFlow/system/fvSchemes | 0 .../ductSecondaryFlow/system/fvSolution | 0 .../incompressibleFluid}/elipsekkLOmega/0/U | 0 .../incompressibleFluid}/elipsekkLOmega/0/kl | 0 .../incompressibleFluid}/elipsekkLOmega/0/kt | 0 .../incompressibleFluid}/elipsekkLOmega/0/nut | 0 .../elipsekkLOmega/0/omega | 0 .../incompressibleFluid}/elipsekkLOmega/0/p | 0 .../elipsekkLOmega/Allclean | 0 .../elipsekkLOmega/Allrun | 0 .../elipsekkLOmega/constant/momentumTransport | 0 .../constant/physicalProperties | 0 .../elipsekkLOmega/system/blockMeshDict | 0 .../elipsekkLOmega/system/controlDict | 4 +- .../elipsekkLOmega/system/createPatchDict | 0 .../elipsekkLOmega/system/fvSchemes | 0 .../elipsekkLOmega/system/fvSolution | 0 .../elipsekkLOmega/system/mirrorMeshDict.x | 0 .../elipsekkLOmega/system/mirrorMeshDict.y | 0 .../elipsekkLOmega/system/topoSetDict | 0 .../flowWithOpenBoundary/0/T.orig | 0 .../flowWithOpenBoundary/0/U.orig | 0 .../flowWithOpenBoundary/0/k | 0 .../flowWithOpenBoundary/0/nut | 0 .../flowWithOpenBoundary/0/omega | 0 .../flowWithOpenBoundary/0/p.orig | 0 .../flowWithOpenBoundary/Allclean | 0 .../flowWithOpenBoundary/Allrun | 0 .../constant/momentumTransport | 0 .../constant/physicalProperties | 0 .../distortMesh/Make/files | 0 .../distortMesh/Make/options | 0 .../distortMesh/distortMesh.C | 2 +- .../flowWithOpenBoundary/system/blockMeshDict | 0 .../flowWithOpenBoundary/system/controlDict | 4 +- .../system/extrudeMeshDict | 0 .../flowWithOpenBoundary/system/fvSchemes | 0 .../flowWithOpenBoundary/system/fvSolution | 2 +- .../incompressibleFluid}/impeller/0/U | 0 .../incompressibleFluid}/impeller/0/epsilon | 0 .../incompressibleFluid}/impeller/0/k | 0 .../incompressibleFluid}/impeller/0/nut | 0 .../incompressibleFluid}/impeller/0/p | 0 .../incompressibleFluid}/impeller/Allclean | 0 .../incompressibleFluid}/impeller/Allrun | 0 .../impeller/constant/dynamicMeshDict | 0 .../impeller/constant/momentumTransport | 0 .../impeller/constant/physicalProperties | 0 .../impeller/system/blockMeshDict | 0 .../impeller/system/controlDict | 4 +- .../system/createNonConformalCouplesDict | 0 .../impeller/system/decomposeParDict | 0 .../impeller/system/fvSchemes | 0 .../impeller/system/fvSolution | 0 .../incompressibleFluid}/mixerVessel2DMRF/0/U | 0 .../mixerVessel2DMRF/0/epsilon | 0 .../incompressibleFluid}/mixerVessel2DMRF/0/k | 0 .../mixerVessel2DMRF/0/nut | 0 .../incompressibleFluid}/mixerVessel2DMRF/0/p | 0 .../mixerVessel2DMRF/Allrun | 0 .../mixerVessel2DMRF/constant/MRFProperties | 0 .../constant/momentumTransport | 0 .../constant/physicalProperties | 0 .../mixerVessel2DMRF/system/controlDict | 4 +- .../mixerVessel2DMRF/system/fvSchemes | 0 .../mixerVessel2DMRF/system/fvSolution | 0 .../incompressibleFluid}/motorBike/Allclean | 0 .../incompressibleFluid}/motorBike/Allrun | 0 .../motorBike/lesFiles/Allrun | 0 .../motorBike/lesFiles/controlDict | 0 .../motorBike/lesFiles/fvSchemes | 0 .../motorBike/lesFiles/fvSolution | 2 +- .../motorBike/lesFiles/momentumTransport | 0 .../motorBike/motorBike/0/U | 0 .../motorBike/motorBike}/0/include/fixedInlet | 0 .../motorBike/0/include/frontBackUpperPatches | 0 .../motorBike/0/include/initialConditions | 0 .../motorBike/motorBike/0/k | 0 .../motorBike/motorBike/0/nuTilda | 0 .../motorBike/motorBike/0/nut | 0 .../motorBike/motorBike/0/p | 0 .../motorBike/motorBike/Allclean | 0 .../motorBike/motorBike/Allrun | 0 .../motorBike/constant/geometry/README | 0 .../motorBike/constant/momentumTransport | 0 .../motorBike}/constant/physicalProperties | 0 .../motorBike/motorBike/system/blockMeshDict | 0 .../motorBike/motorBike/system/controlDict | 4 +- .../motorBike/motorBike/system/cuttingPlane | 0 .../motorBike/system/decomposeParDict | 0 .../motorBike/motorBike/system/forceCoeffs | 0 .../motorBike/motorBike/system/fvSchemes | 0 .../motorBike/motorBike/system/fvSolution | 0 .../motorBike/system/snappyHexMeshDict | 0 .../motorBike/motorBike/system/streamlines | 0 .../motorBikeSteady}/0/U.orig | 0 .../motorBikeSteady}/0/include/fixedInlet | 0 .../0/include/frontBackUpperPatches | 0 .../0/include/initialConditions | 0 .../incompressibleFluid/motorBikeSteady}/0/k | 0 .../motorBikeSteady}/0/nut | 0 .../motorBikeSteady}/0/omega | 0 .../incompressibleFluid/motorBikeSteady}/0/p | 0 .../motorBikeSteady}/Allclean | 0 .../motorBikeSteady}/Allrun | 0 .../motorBikeSteady}/constant/geometry/README | 0 .../constant/momentumTransport | 0 .../constant/physicalProperties | 0 .../motorBikeSteady}/system/blockMeshDict | 0 .../motorBikeSteady}/system/controlDict | 4 +- .../motorBikeSteady}/system/cuttingPlane | 0 .../motorBikeSteady}/system/decomposeParDict | 0 .../motorBikeSteady}/system/forceCoeffs | 0 .../motorBikeSteady}/system/fvSchemes | 0 .../motorBikeSteady}/system/fvSolution | 0 .../motorBikeSteady}/system/meshQualityDict | 0 .../motorBikeSteady}/system/snappyHexMeshDict | 0 .../motorBikeSteady}/system/streamlines | 0 .../system/surfaceFeaturesDict | 0 .../incompressibleFluid}/movingCone/0/U | 0 .../incompressibleFluid}/movingCone/0/p | 0 .../movingCone/0/pointMotionUx | 0 .../incompressibleFluid}/movingCone/Allclean | 0 .../incompressibleFluid}/movingCone/Allrun | 0 .../movingCone/Allrun-parallel | 0 .../movingCone/constant/dynamicMeshDict | 0 .../movingCone/constant/momentumTransport | 0 .../movingCone}/constant/physicalProperties | 0 .../movingCone/system/blockMeshDict | 0 .../movingCone/system/blockMeshDict_0.0015 | 0 .../movingCone/system/blockMeshDict_0.003 | 0 .../movingCone/system/controlDict | 4 +- .../movingCone/system/cuttingPlane | 0 .../movingCone/system/decomposeParDict | 0 .../movingCone/system/decomposeParDict_0.0015 | 0 .../movingCone/system/decomposeParDict_0.003 | 0 .../movingCone/system/fvSchemes | 0 .../movingCone/system/fvSolution | 0 .../nonConformalChannel/0/U | 0 .../nonConformalChannel/0/p | 0 .../nonConformalChannel/Allclean | 0 .../nonConformalChannel/Allrun | 0 .../constant/momentumTransport | 0 .../constant/physicalProperties | 0 .../system/blockMeshDict.AMI | 0 .../system/blockMeshDict.boundary | 0 .../system/blockMeshDict.internal | 0 .../system/blockMeshDict.nonConformalCyclic | 0 .../nonConformalChannel/system/controlDict | 4 +- .../nonConformalChannel/system/fvSchemes | 0 .../nonConformalChannel/system/fvSolution | 0 .../incompressibleFluid}/offsetCylinder/0/U | 0 .../incompressibleFluid}/offsetCylinder/0/p | 0 .../offsetCylinder/constant/momentumTransport | 0 .../constant/physicalProperties | 0 .../offsetCylinder/system/blockMeshDict | 0 .../offsetCylinder/system/controlDict | 4 +- .../offsetCylinder/system/fvSchemes | 0 .../offsetCylinder/system/fvSolution | 0 .../incompressibleFluid}/oscillatingInlet/0/U | 0 .../oscillatingInlet/0/epsilon | 0 .../incompressibleFluid}/oscillatingInlet/0/k | 0 .../oscillatingInlet/0/nut | 0 .../oscillatingInlet/0/omega | 0 .../incompressibleFluid}/oscillatingInlet/0/p | 0 .../oscillatingInlet/Allrun | 0 .../oscillatingInlet/constant/dynamicMeshDict | 0 .../constant/momentumTransport | 0 .../constant/physicalProperties | 0 .../oscillatingInlet/system/blockMeshDict | 0 .../oscillatingInlet/system/controlDict | 4 +- .../oscillatingInlet/system/decomposeParDict | 0 .../oscillatingInlet/system/fvSchemes | 0 .../oscillatingInlet/system/fvSolution | 0 .../incompressibleFluid}/pipeCyclic/0/U | 0 .../incompressibleFluid}/pipeCyclic/0/epsilon | 0 .../incompressibleFluid}/pipeCyclic/0/k | 0 .../incompressibleFluid}/pipeCyclic/0/nut | 0 .../incompressibleFluid}/pipeCyclic/0/p | 0 .../incompressibleFluid}/pipeCyclic/Allclean | 0 .../incompressibleFluid}/pipeCyclic/Allrun | 0 .../pipeCyclic/constant/momentumTransport | 0 .../pipeCyclic/constant/physicalProperties | 0 .../pipeCyclic/system/blockMeshDict | 0 .../pipeCyclic/system/controlDict | 4 +- .../pipeCyclic/system/decomposeParDict | 0 .../pipeCyclic/system/fvSchemes | 0 .../pipeCyclic/system/fvSolution | 0 .../pipeCyclic/system/topoSetDict | 0 .../incompressibleFluid}/pitzDaily/0/U | 0 .../incompressibleFluid}/pitzDaily/0/epsilon | 0 .../incompressibleFluid}/pitzDaily/0/k | 0 .../incompressibleFluid}/pitzDaily/0/nuTilda | 0 .../incompressibleFluid}/pitzDaily/0/nut | 0 .../incompressibleFluid}/pitzDaily/0/p | 0 .../incompressibleFluid}/pitzDaily/Allrun | 0 .../pitzDaily}/constant/momentumTransport | 0 .../pitzDaily}/constant/physicalProperties | 0 .../pitzDaily/system/controlDict | 4 +- .../pitzDaily/system/fvSchemes | 0 .../pitzDaily/system/fvSolution | 0 .../incompressibleFluid/pitzDailyLES}/0/U | 0 .../incompressibleFluid/pitzDailyLES}/0/k | 0 .../pitzDailyLES}/0/nuTilda | 0 .../incompressibleFluid/pitzDailyLES}/0/nut | 0 .../incompressibleFluid/pitzDailyLES}/0/p | 0 .../incompressibleFluid/pitzDailyLES}/0/s | 0 .../incompressibleFluid/pitzDailyLES}/Allrun | 0 .../pitzDailyLES}/constant/momentumTransport | 0 .../pitzDailyLES}/constant/physicalProperties | 0 .../pitzDailyLES}/system/controlDict | 4 +- .../pitzDailyLES}/system/fvSchemes | 0 .../pitzDailyLES}/system/fvSolution | 4 +- .../incompressibleFluid}/pitzDailyLTS/0/U | 0 .../pitzDailyLTS/0/epsilon | 0 .../incompressibleFluid}/pitzDailyLTS/0/k | 0 .../pitzDailyLTS/0/nuTilda | 0 .../incompressibleFluid}/pitzDailyLTS/0/nut | 0 .../incompressibleFluid/pitzDailyLTS}/0/p | 0 .../incompressibleFluid/pitzDailyLTS}/Allrun | 0 .../pitzDailyLTS}/constant/momentumTransport | 0 .../pitzDailyLTS}/constant/physicalProperties | 0 .../pitzDailyLTS/system/controlDict | 4 +- .../pitzDailyLTS/system/fvSchemes | 0 .../pitzDailyLTS/system/fvSolution | 0 .../incompressibleFluid}/pitzDailyMapped/0/U | 0 .../incompressibleFluid}/pitzDailyMapped/0/k | 0 .../pitzDailyMapped/0/nuTilda | 0 .../pitzDailyMapped/0/nut | 0 .../incompressibleFluid/pitzDailyMapped}/0/p | 0 .../constant/momentumTransport | 0 .../constant/physicalProperties | 0 .../pitzDailyMapped/system/blockMeshDict | 0 .../pitzDailyMapped/system/controlDict | 4 +- .../pitzDailyMapped/system/decomposeParDict | 0 .../pitzDailyMapped/system/fvSchemes | 0 .../pitzDailyMapped/system/fvSolution | 4 +- .../incompressibleFluid}/pitzDailyPulse/0/U | 0 .../incompressibleFluid/pitzDailyPulse}/0/p | 0 .../pitzDailyPulse}/Allrun | 0 .../pitzDailyPulse/constant/momentumTransport | 0 .../constant/physicalProperties | 0 .../pitzDailyPulse/system/controlDict | 4 +- .../pitzDailyPulse/system/fvSchemes | 0 .../pitzDailyPulse/system/fvSolution | 0 .../incompressibleFluid/pitzDailySteady}/0/U | 0 .../pitzDailySteady}/0/epsilon | 0 .../incompressibleFluid/pitzDailySteady}/0/f | 0 .../incompressibleFluid/pitzDailySteady}/0/k | 0 .../pitzDailySteady}/0/nuTilda | 0 .../pitzDailySteady}/0/nut | 0 .../pitzDailySteady}/0/omega | 0 .../incompressibleFluid/pitzDailySteady}/0/p | 0 .../incompressibleFluid/pitzDailySteady}/0/v2 | 0 .../pitzDailySteady}/Allrun | 0 .../constant/momentumTransport | 0 .../constant/physicalProperties | 0 .../pitzDailySteady}/system/blockMeshDict | 0 .../pitzDailySteady}/system/controlDict | 4 +- .../pitzDailySteady}/system/fvSchemes | 0 .../pitzDailySteady}/system/fvSolution | 0 .../pitzDailySteadyExptInlet}/0/U | 0 .../pitzDailySteadyExptInlet}/0/epsilon | 0 .../pitzDailySteadyExptInlet}/0/k | 0 .../pitzDailySteadyExptInlet}/0/nuTilda | 0 .../pitzDailySteadyExptInlet}/0/nut | 0 .../pitzDailySteadyExptInlet}/0/p | 0 .../pitzDailySteadyExptInlet}/Allrun | 0 .../constant/boundaryData/inlet/0/U | 0 .../constant/boundaryData/inlet/0/epsilon | 0 .../constant/boundaryData/inlet/0/k | 0 .../constant/boundaryData/inlet/points | 0 .../constant/momentumTransport | 0 .../constant/physicalProperties | 0 .../system/controlDict | 4 +- .../system/decomposeParDict | 0 .../system/fvSchemes | 0 .../system/fvSolution | 0 .../planarContraction/0/U | 0 .../planarContraction/0/p | 0 .../planarContraction/0/sigma | 0 .../constant/momentumTransport | 0 .../constant/physicalProperties | 0 .../planarContraction/system/blockMeshDict | 0 .../planarContraction/system/controlDict | 4 +- .../planarContraction/system/fvSchemes | 0 .../planarContraction/system/fvSolution | 0 .../incompressibleFluid}/planarCouette/0/U | 0 .../incompressibleFluid}/planarCouette/0/p | 0 .../planarCouette/0/sigma | 0 .../planarCouette/constant/momentumTransport | 0 .../planarCouette/constant/physicalProperties | 0 .../planarCouette/system/blockMeshDict | 0 .../planarCouette/system/controlDict | 4 +- .../planarCouette/system/fvSchemes | 0 .../planarCouette/system/fvSolution | 0 .../incompressibleFluid}/planarPoiseuille/0/U | 0 .../incompressibleFluid}/planarPoiseuille/0/p | 0 .../planarPoiseuille/0/sigma | 0 .../planarPoiseuille/Allclean | 0 .../planarPoiseuille/Allrun | 0 .../planarPoiseuille/constant/fvModels | 0 .../constant/momentumTransport | 0 .../constant/physicalProperties | 0 .../planarPoiseuille/system/blockMeshDict | 0 .../planarPoiseuille/system/controlDict | 4 +- .../planarPoiseuille/system/fvSchemes | 0 .../planarPoiseuille/system/fvSolution | 0 .../validation/WatersKing/Make/files | 0 .../validation/WatersKing/Make/options | 0 .../validation/WatersKing/WatersKing.C | 2 +- .../validation/WatersKing/createFields.H | 0 .../planarPoiseuille/validation/createGraph | 0 .../incompressibleFluid}/porousBlockage/0/U | 0 .../incompressibleFluid}/porousBlockage/0/p | 0 .../porousBlockage/Allrun | 0 .../porousBlockage/constant/coordinateSystems | 0 .../porousBlockage/constant/fvModels | 0 .../porousBlockage/constant/momentumTransport | 0 .../constant/physicalProperties | 0 .../porousBlockage/system/blockMeshDict | 0 .../porousBlockage/system/controlDict | 4 +- .../porousBlockage/system/fvSchemes | 0 .../porousBlockage/system/fvSolution | 4 +- .../porousBlockage/system/topoSetDict | 0 .../incompressibleFluid}/propeller/0/U | 0 .../incompressibleFluid}/propeller/0/epsilon | 0 .../incompressibleFluid}/propeller/0/k | 0 .../incompressibleFluid}/propeller/0/nut | 0 .../incompressibleFluid}/propeller/0/p | 0 .../incompressibleFluid}/propeller/Allclean | 0 .../incompressibleFluid}/propeller/Allmesh | 0 .../incompressibleFluid}/propeller/Allrun | 0 .../propeller/constant/dynamicMeshDict | 0 .../propeller/constant/geometry/README | 0 .../propeller/constant/momentumTransport | 0 .../propeller/constant/physicalProperties | 0 .../propeller/system/blockMeshDict | 0 .../propeller/system/controlDict | 4 +- .../propeller/system/createBafflesDict | 0 .../propeller/system/decomposeParDict | 0 .../propeller/system/forces | 0 .../propeller/system/fvSchemes | 0 .../propeller/system/fvSolution | 0 .../propeller/system/snappyHexMeshDict | 0 .../propeller/system/surfaceFeaturesDict | 0 .../propeller/system/surfaces | 0 .../roomResidenceTime/0/U | 0 .../roomResidenceTime/0/epsilon | 0 .../roomResidenceTime/0/k | 0 .../roomResidenceTime/0/nut | 0 .../roomResidenceTime/0/p | 0 .../roomResidenceTime/Allclean | 0 .../roomResidenceTime/Allrun | 4 +- .../constant/momentumTransport | 0 .../constant/physicalProperties | 0 .../roomResidenceTime/system/blockMeshDict | 0 .../roomResidenceTime/system/controlDict | 4 +- .../roomResidenceTime/system/fvSchemes | 0 .../roomResidenceTime/system/fvSolution | 0 .../roomResidenceTime/system/probes1 | 0 .../roomResidenceTime/system/probes2 | 0 .../roomResidenceTime/validation/Allclean | 0 .../roomResidenceTime/validation/Allrun | 0 .../validation/measurement_Pos1 | 0 .../validation/measurement_Pos2 | 0 .../validation/plotPos1Data.gplt | 0 .../validation/plotPos2Data.gplt | 0 .../incompressibleFluid}/rotorDisk/0/U | 0 .../incompressibleFluid}/rotorDisk/0/k | 0 .../incompressibleFluid}/rotorDisk/0/nut | 0 .../incompressibleFluid}/rotorDisk/0/omega | 0 .../incompressibleFluid}/rotorDisk/0/p | 0 .../incompressibleFluid}/rotorDisk/Allclean | 0 .../incompressibleFluid}/rotorDisk/Allrun | 0 .../rotorDisk/constant/fvModels | 0 .../rotorDisk/constant/geometry/fixed.obj | 0 .../constant/geometry/rotatingZone.obj | 0 .../rotorDisk/constant/momentumTransport | 0 .../rotorDisk/constant/physicalProperties | 0 .../rotorDisk/system/blockMeshDict | 0 .../rotorDisk/system/controlDict | 4 +- .../rotorDisk/system/fvSchemes | 0 .../rotorDisk/system/fvSolution | 0 .../rotorDisk/system/meshQualityDict | 0 .../rotorDisk/system/snappyHexMeshDict | 0 .../rotorDisk/system/surfaceFeaturesDict | 0 .../incompressibleFluid}/turbineSiting/0/U | 0 .../turbineSiting/0/epsilon | 0 .../turbineSiting/0/include/ABLConditions | 0 .../turbineSiting}/0/include/fixedInlet | 0 .../turbineSiting/0/include/initialConditions | 0 .../turbineSiting/0/include/sideAndTopPatches | 0 .../incompressibleFluid}/turbineSiting/0/k | 0 .../incompressibleFluid}/turbineSiting/0/nut | 0 .../incompressibleFluid}/turbineSiting/0/p | 0 .../incompressibleFluid}/turbineSiting/Allrun | 0 .../turbineSiting/constant/fvModels | 0 .../constant/geometry/terrain.stl | 0 .../turbineSiting/constant/momentumTransport | 0 .../turbineSiting/constant/physicalProperties | 0 .../turbineSiting/system/blockMeshDict | 0 .../turbineSiting/system/controlDict | 4 +- .../turbineSiting/system/decomposeParDict | 0 .../turbineSiting/system/fvSchemes | 0 .../turbineSiting/system/fvSolution | 0 .../turbineSiting/system/snappyHexMeshDict | 0 .../turbineSiting/system/topoSetDict | 0 .../waveSubSurface/0/U.orig | 0 .../waveSubSurface/0/alpha.orig | 0 .../waveSubSurface/0/epsilon | 0 .../incompressibleFluid}/waveSubSurface/0/k | 0 .../incompressibleFluid}/waveSubSurface/0/nut | 0 .../incompressibleFluid}/waveSubSurface/0/p | 0 .../waveSubSurface/Allrun | 0 .../waveSubSurface/constant/g | 0 .../waveSubSurface/constant/momentumTransport | 0 .../constant/physicalProperties | 0 .../waveSubSurface/constant/waveProperties | 0 .../waveSubSurface/system/blockMeshDict | 0 .../waveSubSurface/system/controlDict | 4 +- .../waveSubSurface/system/decomposeParDict | 0 .../waveSubSurface/system/fvSchemes | 0 .../waveSubSurface/system/fvSolution | 0 .../waveSubSurface/system/setWavesDict | 0 .../windAroundBuildings/0/U | 0 .../windAroundBuildings/0/epsilon | 0 .../windAroundBuildings/0/k | 0 .../windAroundBuildings/0/nut | 0 .../windAroundBuildings/0/p | 0 .../windAroundBuildings/Allclean | 0 .../windAroundBuildings/Allrun | 0 .../constant/geometry/buildings.obj.gz | Bin .../constant/momentumTransport | 0 .../constant/physicalProperties | 0 .../windAroundBuildings/system/blockMeshDict | 0 .../windAroundBuildings/system/controlDict | 4 +- .../windAroundBuildings/system/fvSchemes | 0 .../windAroundBuildings/system/fvSolution | 0 .../system/meshQualityDict | 0 .../system/snappyHexMeshDict | 0 .../system/surfaceFeaturesDict | 0 .../incompressibleFluid}/wingMotion/Allclean | 4 +- .../incompressibleFluid}/wingMotion/Allrun | 10 +- .../wingMotion/wingMotion2D_steady}/0/U | 0 .../wingMotion2D_steady}/0/include/fixedInlet | 0 .../0/include/frontBackTopBottomPatches | 0 .../0/include/initialConditions | 0 .../wingMotion/wingMotion2D_steady}/0/k | 0 .../wingMotion/wingMotion2D_steady}/0/nut | 0 .../wingMotion/wingMotion2D_steady}/0/omega | 0 .../wingMotion/wingMotion2D_steady}/0/p | 0 .../constant/momentumTransport | 0 .../constant/physicalProperties | 0 .../wingMotion2D_steady}/system/controlDict | 4 +- .../system/createPatchDict | 0 .../system/extrudeMeshDict | 0 .../wingMotion2D_steady}/system/fvSchemes | 0 .../wingMotion2D_steady}/system/fvSolution | 1 - .../0/include/fixedInlet | 0 .../0/include/frontBackTopBottomPatches | 0 .../0/include/initialConditions | 0 .../constant/dynamicMeshDict | 0 .../constant/momentumTransport | 0 .../constant/physicalProperties | 0 .../wingMotion2D_transient}/pointDisplacement | 0 .../system/controlDict | 4 +- .../system/decomposeParDict | 0 .../wingMotion2D_transient}/system/fvSchemes | 0 .../wingMotion2D_transient}/system/fvSolution | 0 .../constant/geometry/wing_5degrees.obj | 0 .../system/blockMeshDict | 0 .../system/controlDict | 0 .../system/decomposeParDict | 0 .../wingMotion_snappyHexMesh/system/fvSchemes | 0 .../system/fvSolution | 2 +- .../system/snappyHexMeshDict | 0 714 files changed, 1574 insertions(+), 796 deletions(-) rename applications/solvers/incompressible/{pimpleFoam => }/SRFPimpleFoam/Make/files (100%) rename applications/solvers/incompressible/{pisoFoam => SRFPimpleFoam}/Make/options (100%) rename applications/solvers/incompressible/{pimpleFoam => }/SRFPimpleFoam/SRFPimpleFoam.C (98%) rename applications/solvers/incompressible/{pimpleFoam => }/SRFPimpleFoam/UrelEqn.H (100%) rename applications/solvers/incompressible/{pimpleFoam => }/SRFPimpleFoam/createFields.H (100%) rename applications/solvers/incompressible/{pimpleFoam => }/SRFPimpleFoam/pEqn.H (100%) rename applications/solvers/incompressible/{simpleFoam => }/SRFSimpleFoam/Make/files (100%) rename applications/solvers/incompressible/{simpleFoam => }/SRFSimpleFoam/Make/options (97%) rename applications/solvers/incompressible/{simpleFoam => }/SRFSimpleFoam/SRFSimpleFoam.C (97%) rename applications/solvers/incompressible/{simpleFoam => }/SRFSimpleFoam/UrelEqn.H (100%) rename applications/solvers/incompressible/{simpleFoam => }/SRFSimpleFoam/createFields.H (100%) rename applications/solvers/incompressible/{simpleFoam => }/SRFSimpleFoam/pEqn.H (100%) delete mode 100644 applications/solvers/incompressible/pimpleFoam/Make/files delete mode 100644 applications/solvers/incompressible/pimpleFoam/UEqn.H delete mode 100644 applications/solvers/incompressible/pimpleFoam/correctPhi.H delete mode 100644 applications/solvers/incompressible/pimpleFoam/createFields.H delete mode 100644 applications/solvers/incompressible/pimpleFoam/pEqn.H delete mode 100644 applications/solvers/incompressible/pimpleFoam/pimpleFoam.C delete mode 100644 applications/solvers/incompressible/pisoFoam/Make/files delete mode 100644 applications/solvers/incompressible/pisoFoam/UEqn.H delete mode 100644 applications/solvers/incompressible/pisoFoam/pEqn.H delete mode 100644 applications/solvers/incompressible/pisoFoam/pisoFoam.C rename applications/solvers/incompressible/{simpleFoam => }/porousSimpleFoam/Make/files (100%) rename applications/solvers/incompressible/{simpleFoam => }/porousSimpleFoam/Make/options (97%) rename applications/solvers/incompressible/{simpleFoam => }/porousSimpleFoam/UEqn.H (100%) rename applications/solvers/incompressible/{pisoFoam => porousSimpleFoam}/createFields.H (93%) rename applications/solvers/incompressible/{simpleFoam => }/porousSimpleFoam/createPorousZones.H (100%) rename applications/solvers/incompressible/{simpleFoam => }/porousSimpleFoam/pEqn.H (100%) rename applications/solvers/incompressible/{simpleFoam => }/porousSimpleFoam/porousSimpleFoam.C (97%) create mode 100644 applications/solvers/modules/fluid/fluidSolver/Make/files rename applications/solvers/{incompressible/pimpleFoam => modules/fluid/fluidSolver}/Make/options (88%) create mode 100644 applications/solvers/modules/fluid/fluidSolver/fluidSolver.C create mode 100644 applications/solvers/modules/fluid/fluidSolver/fluidSolver.H create mode 100644 applications/solvers/modules/fluid/incompressibleFluid/Make/files rename applications/solvers/{incompressible/pimpleFoam/SRFPimpleFoam => modules/fluid/incompressibleFluid}/Make/options (71%) create mode 100644 applications/solvers/modules/fluid/incompressibleFluid/correctPressure.C create mode 100644 applications/solvers/modules/fluid/incompressibleFluid/incompressibleFluid.C create mode 100644 applications/solvers/modules/fluid/incompressibleFluid/incompressibleFluid.H create mode 100644 applications/solvers/modules/fluid/incompressibleFluid/momentumPredictor.C create mode 100644 applications/solvers/modules/fluid/incompressibleFluid/moveMesh.C rename applications/solvers/{incompressible/pimpleFoam/setRDeltaT.H => modules/fluid/incompressibleFluid/setRDeltaT.C} (59%) create mode 100755 bin/pimpleFoam create mode 100755 bin/pisoFoam create mode 100755 bin/simpleFoam rename tutorials/{incompressible/simpleFoam => modules/incompressibleFluid}/T3A/0/ReThetat (100%) rename tutorials/{incompressible/simpleFoam => modules/incompressibleFluid}/T3A/0/U (100%) rename tutorials/{incompressible/simpleFoam => modules/incompressibleFluid}/T3A/0/gammaInt (100%) rename tutorials/{incompressible/simpleFoam => modules/incompressibleFluid}/T3A/0/k (100%) rename tutorials/{incompressible/simpleFoam => modules/incompressibleFluid}/T3A/0/nut (100%) rename tutorials/{incompressible/simpleFoam => modules/incompressibleFluid}/T3A/0/omega (100%) rename tutorials/{incompressible/simpleFoam => modules/incompressibleFluid}/T3A/0/p (100%) rename tutorials/{incompressible/simpleFoam => modules/incompressibleFluid}/T3A/Allclean (100%) rename tutorials/{incompressible/simpleFoam => modules/incompressibleFluid}/T3A/Allrun (100%) rename tutorials/{incompressible/simpleFoam => modules/incompressibleFluid}/T3A/README (100%) rename tutorials/{incompressible/simpleFoam => modules/incompressibleFluid}/T3A/constant/momentumTransport (100%) rename tutorials/{incompressible/simpleFoam => modules/incompressibleFluid}/T3A/constant/physicalProperties (100%) rename tutorials/{incompressible/simpleFoam => modules/incompressibleFluid}/T3A/system/blockMeshDict (100%) rename tutorials/{incompressible/simpleFoam => modules/incompressibleFluid}/T3A/system/controlDict (95%) rename tutorials/{incompressible/simpleFoam => modules/incompressibleFluid}/T3A/system/fvSchemes (100%) rename tutorials/{incompressible/simpleFoam => modules/incompressibleFluid}/T3A/system/fvSolution (100%) rename tutorials/{incompressible/simpleFoam => modules/incompressibleFluid}/T3A/validation/createGraphs (100%) rename tutorials/{incompressible/simpleFoam => modules/incompressibleFluid}/T3A/validation/exptData/T3A.dat (100%) rename tutorials/{incompressible/pimpleFoam/RAS => modules/incompressibleFluid}/TJunction/0/U (100%) rename tutorials/{incompressible/pimpleFoam/RAS => modules/incompressibleFluid}/TJunction/0/epsilon (100%) rename tutorials/{incompressible/pimpleFoam/RAS => modules/incompressibleFluid}/TJunction/0/k (100%) rename tutorials/{incompressible/pimpleFoam/RAS => modules/incompressibleFluid}/TJunction/0/nuTilda (100%) rename tutorials/{incompressible/pimpleFoam/RAS => modules/incompressibleFluid}/TJunction/0/nut (100%) rename tutorials/{incompressible/pimpleFoam/RAS => modules/incompressibleFluid}/TJunction/0/p (100%) rename tutorials/{incompressible/pimpleFoam/RAS => modules/incompressibleFluid}/TJunction/Allrun (100%) rename tutorials/{incompressible/pimpleFoam/RAS => modules/incompressibleFluid}/TJunction/README.txt (100%) rename tutorials/{incompressible/pimpleFoam/RAS => modules/incompressibleFluid}/TJunction/constant/cloudProperties (100%) rename tutorials/{incompressible/pimpleFoam/RAS => modules/incompressibleFluid}/TJunction/constant/fvModels (100%) rename tutorials/{incompressible/pimpleFoam/RAS => modules/incompressibleFluid}/TJunction/constant/geometry/surface1.obj (100%) rename tutorials/{incompressible/pimpleFoam/RAS => modules/incompressibleFluid}/TJunction/constant/geometry/surface2.obj (100%) rename tutorials/{incompressible/pimpleFoam/RAS => modules/incompressibleFluid}/TJunction/constant/momentumTransport (100%) rename tutorials/{incompressible/pimpleFoam/RAS => modules/incompressibleFluid}/TJunction/constant/physicalProperties (100%) rename tutorials/{incompressible/pimpleFoam/RAS => modules/incompressibleFluid}/TJunction/system/blockMeshDict (100%) rename tutorials/{incompressible/pimpleFoam/RAS => modules/incompressibleFluid}/TJunction/system/controlDict (96%) rename tutorials/{incompressible/pimpleFoam/RAS => modules/incompressibleFluid}/TJunction/system/fvSchemes (100%) rename tutorials/{incompressible/pimpleFoam/RAS => modules/incompressibleFluid}/TJunction/system/fvSolution (100%) rename tutorials/{incompressible/pimpleFoam/RAS => modules/incompressibleFluid}/TJunction/system/topoSetDict (100%) rename tutorials/{incompressible/pimpleFoam/RAS => modules/incompressibleFluid}/TJunctionFan/0/U.orig (100%) rename tutorials/{incompressible/pimpleFoam/RAS => modules/incompressibleFluid}/TJunctionFan/0/epsilon.orig (100%) rename tutorials/{incompressible/pimpleFoam/RAS => modules/incompressibleFluid}/TJunctionFan/0/k.orig (100%) rename tutorials/{incompressible/pimpleFoam/RAS => modules/incompressibleFluid}/TJunctionFan/0/nuTilda.orig (100%) rename tutorials/{incompressible/pimpleFoam/RAS => modules/incompressibleFluid}/TJunctionFan/0/nut.orig (100%) rename tutorials/{incompressible/pimpleFoam/RAS => modules/incompressibleFluid}/TJunctionFan/0/p.orig (100%) rename tutorials/{incompressible/pimpleFoam/RAS => modules/incompressibleFluid}/TJunctionFan/Allrun (100%) rename tutorials/{incompressible/pimpleFoam/RAS => modules/incompressibleFluid}/TJunctionFan/constant/momentumTransport (100%) rename tutorials/{incompressible/pimpleFoam/RAS => modules/incompressibleFluid}/TJunctionFan/constant/physicalProperties (100%) rename tutorials/{incompressible/pimpleFoam/RAS => modules/incompressibleFluid}/TJunctionFan/system/blockMeshDict (100%) rename tutorials/{incompressible/pimpleFoam/RAS => modules/incompressibleFluid}/TJunctionFan/system/controlDict (96%) rename tutorials/{incompressible/pimpleFoam/RAS => modules/incompressibleFluid}/TJunctionFan/system/createBafflesDict (100%) rename tutorials/{incompressible/pimpleFoam/RAS => modules/incompressibleFluid}/TJunctionFan/system/fvSchemes (100%) rename tutorials/{incompressible/pimpleFoam/RAS => modules/incompressibleFluid}/TJunctionFan/system/fvSolution (100%) rename tutorials/{incompressible/pimpleFoam/RAS => modules/incompressibleFluid}/TJunctionFan/system/topoSetDict (100%) rename tutorials/{incompressible/simpleFoam => modules/incompressibleFluid}/airFoil2D/0/U (100%) rename tutorials/{incompressible/simpleFoam => modules/incompressibleFluid}/airFoil2D/0/nuTilda (100%) rename tutorials/{incompressible/simpleFoam => modules/incompressibleFluid}/airFoil2D/0/nut (100%) rename tutorials/{incompressible/simpleFoam => modules/incompressibleFluid}/airFoil2D/0/p (100%) rename tutorials/{incompressible/simpleFoam => modules/incompressibleFluid}/airFoil2D/Allclean (100%) rename tutorials/{incompressible/simpleFoam => modules/incompressibleFluid}/airFoil2D/Allrun (100%) rename tutorials/{incompressible/simpleFoam => modules/incompressibleFluid}/airFoil2D/constant/momentumTransport (100%) rename tutorials/{incompressible/simpleFoam => modules/incompressibleFluid}/airFoil2D/constant/physicalProperties (100%) rename tutorials/{incompressible/simpleFoam => modules/incompressibleFluid}/airFoil2D/constant/polyMesh/boundary (100%) rename tutorials/{incompressible/simpleFoam => modules/incompressibleFluid}/airFoil2D/constant/polyMesh/cells (100%) rename tutorials/{incompressible/simpleFoam => modules/incompressibleFluid}/airFoil2D/constant/polyMesh/faces (100%) rename tutorials/{incompressible/simpleFoam => modules/incompressibleFluid}/airFoil2D/constant/polyMesh/neighbour (100%) rename tutorials/{incompressible/simpleFoam => modules/incompressibleFluid}/airFoil2D/constant/polyMesh/owner (100%) rename tutorials/{incompressible/simpleFoam => modules/incompressibleFluid}/airFoil2D/constant/polyMesh/points (100%) rename tutorials/{incompressible/simpleFoam => modules/incompressibleFluid}/airFoil2D/system/controlDict (94%) rename tutorials/{incompressible/simpleFoam => modules/incompressibleFluid}/airFoil2D/system/fvSchemes (100%) rename tutorials/{incompressible/simpleFoam => modules/incompressibleFluid}/airFoil2D/system/fvSolution (100%) rename tutorials/{incompressible/pimpleFoam/RAS => modules/incompressibleFluid}/ballValve/0/U (100%) rename tutorials/{incompressible/pimpleFoam/RAS => modules/incompressibleFluid}/ballValve/0/epsilon (100%) rename tutorials/{incompressible/pimpleFoam/RAS => modules/incompressibleFluid}/ballValve/0/k (100%) rename tutorials/{incompressible/pimpleFoam/RAS => modules/incompressibleFluid}/ballValve/0/nut (100%) rename tutorials/{incompressible/pimpleFoam/RAS => modules/incompressibleFluid}/ballValve/0/omega (100%) rename tutorials/{incompressible/pimpleFoam/RAS => modules/incompressibleFluid}/ballValve/0/p (100%) rename tutorials/{incompressible/pimpleFoam/RAS => modules/incompressibleFluid}/ballValve/0/s (100%) rename tutorials/{incompressible/pimpleFoam/RAS => modules/incompressibleFluid}/ballValve/Allclean (100%) rename tutorials/{incompressible/pimpleFoam/RAS => modules/incompressibleFluid}/ballValve/Allrun (100%) rename tutorials/{incompressible/pimpleFoam/RAS => modules/incompressibleFluid}/ballValve/constant/dynamicMeshDict (100%) rename tutorials/{incompressible/pimpleFoam/RAS => modules/incompressibleFluid}/ballValve/constant/momentumTransport (100%) rename tutorials/{incompressible/pimpleFoam/RAS => modules/incompressibleFluid}/ballValve/constant/physicalProperties (100%) rename tutorials/{incompressible/pimpleFoam/RAS => modules/incompressibleFluid}/ballValve/createGraphs (100%) rename tutorials/{incompressible/pimpleFoam/RAS => modules/incompressibleFluid}/ballValve/system/controlDict (95%) rename tutorials/{incompressible/pimpleFoam/RAS => modules/incompressibleFluid}/ballValve/system/decomposeParDict (100%) rename tutorials/{incompressible/pimpleFoam/RAS => modules/incompressibleFluid}/ballValve/system/fvSchemes (100%) rename tutorials/{incompressible/pimpleFoam/RAS => modules/incompressibleFluid}/ballValve/system/fvSolution (100%) rename tutorials/{incompressible/pimpleFoam/RAS => modules/incompressibleFluid}/ballValve/system/setFieldsDict (100%) rename tutorials/{incompressible/pimpleFoam/RAS => modules/incompressibleFluid}/ballValve/system/topoSetDict (100%) rename tutorials/{incompressible/pimpleFoam/RAS => modules/incompressibleFluid}/ballValve/system/wallsSurface (100%) rename tutorials/{incompressible/pimpleFoam/laminar => modules/incompressibleFluid}/blockedChannel/0/U (100%) rename tutorials/{incompressible/pimpleFoam/laminar => modules/incompressibleFluid}/blockedChannel/0/p (100%) rename tutorials/{incompressible/pimpleFoam/laminar => modules/incompressibleFluid}/blockedChannel/0/tracer (100%) rename tutorials/{incompressible/pimpleFoam/laminar => modules/incompressibleFluid}/blockedChannel/Allclean (100%) rename tutorials/{incompressible/pimpleFoam/laminar => modules/incompressibleFluid}/blockedChannel/Allrun (100%) rename tutorials/{incompressible/pimpleFoam/laminar => modules/incompressibleFluid}/blockedChannel/constant/fvModels (100%) rename tutorials/{incompressible/pimpleFoam/laminar => modules/incompressibleFluid}/blockedChannel/constant/momentumTransport (100%) rename tutorials/{incompressible/pimpleFoam/RAS/pitzDaily => modules/incompressibleFluid/blockedChannel}/constant/physicalProperties (100%) rename tutorials/{incompressible/pimpleFoam/laminar => modules/incompressibleFluid}/blockedChannel/system/blockMeshDict (100%) rename tutorials/{incompressible/pimpleFoam/laminar => modules/incompressibleFluid}/blockedChannel/system/controlDict (94%) rename tutorials/{incompressible/pimpleFoam/laminar => modules/incompressibleFluid}/blockedChannel/system/fvSchemes (100%) rename tutorials/{incompressible/pimpleFoam/laminar => modules/incompressibleFluid}/blockedChannel/system/fvSolution (100%) rename tutorials/{incompressible/pimpleFoam/laminar => modules/incompressibleFluid}/blockedChannel/system/generateAlphas (100%) rename tutorials/{incompressible/pisoFoam/RAS => modules/incompressibleFluid}/cavity/0/U (100%) rename tutorials/{incompressible/pisoFoam/RAS => modules/incompressibleFluid}/cavity/0/epsilon (100%) rename tutorials/{incompressible/pisoFoam/RAS => modules/incompressibleFluid}/cavity/0/k (100%) rename tutorials/{incompressible/pisoFoam/RAS => modules/incompressibleFluid}/cavity/0/nuTilda (100%) rename tutorials/{incompressible/pisoFoam/RAS => modules/incompressibleFluid}/cavity/0/nut (100%) rename tutorials/{incompressible/pisoFoam/RAS => modules/incompressibleFluid}/cavity/0/omega (100%) rename tutorials/{incompressible/pisoFoam/RAS => modules/incompressibleFluid}/cavity/0/p (100%) rename tutorials/{incompressible/pisoFoam/RAS => modules/incompressibleFluid}/cavity/constant/momentumTransport (100%) rename tutorials/{incompressible/pimpleFoam/RAS/pitzDailyLTS => modules/incompressibleFluid/cavity}/constant/physicalProperties (100%) rename tutorials/{incompressible/pisoFoam/RAS => modules/incompressibleFluid}/cavity/system/blockMeshDict (100%) rename tutorials/{incompressible/pisoFoam/RAS/cavityCoupledU => modules/incompressibleFluid/cavity}/system/controlDict (94%) rename tutorials/{incompressible/pisoFoam/RAS => modules/incompressibleFluid}/cavity/system/fvSchemes (100%) rename tutorials/{incompressible/pisoFoam/RAS => modules/incompressibleFluid}/cavity/system/fvSolution (96%) rename tutorials/{incompressible/pisoFoam/RAS => modules/incompressibleFluid}/cavityCoupledU/0/U (100%) rename tutorials/{incompressible/pisoFoam/RAS => modules/incompressibleFluid}/cavityCoupledU/0/epsilon (100%) rename tutorials/{incompressible/pisoFoam/RAS => modules/incompressibleFluid}/cavityCoupledU/0/k (100%) rename tutorials/{incompressible/pisoFoam/RAS => modules/incompressibleFluid}/cavityCoupledU/0/nuTilda (100%) rename tutorials/{incompressible/pisoFoam/RAS => modules/incompressibleFluid}/cavityCoupledU/0/nut (100%) rename tutorials/{incompressible/pisoFoam/RAS => modules/incompressibleFluid}/cavityCoupledU/0/p (100%) rename tutorials/{incompressible/pisoFoam/RAS => modules/incompressibleFluid}/cavityCoupledU/constant/momentumTransport (100%) rename tutorials/{incompressible/pimpleFoam/laminar/blockedChannel => modules/incompressibleFluid/cavityCoupledU}/constant/physicalProperties (100%) rename tutorials/{incompressible/pisoFoam/RAS => modules/incompressibleFluid}/cavityCoupledU/system/blockMeshDict (100%) rename tutorials/{incompressible/pisoFoam/RAS/cavity => modules/incompressibleFluid/cavityCoupledU}/system/controlDict (94%) rename tutorials/{incompressible/pisoFoam/RAS => modules/incompressibleFluid}/cavityCoupledU/system/fvSchemes (100%) rename tutorials/{incompressible/pisoFoam/RAS => modules/incompressibleFluid}/cavityCoupledU/system/fvSolution (96%) rename tutorials/{incompressible/pimpleFoam/LES => modules/incompressibleFluid}/channel395/0.orig/U (100%) rename tutorials/{incompressible/pimpleFoam/LES => modules/incompressibleFluid}/channel395/0.orig/k (100%) rename tutorials/{incompressible/pimpleFoam/LES => modules/incompressibleFluid}/channel395/0.orig/nuTilda (100%) rename tutorials/{incompressible/pimpleFoam/LES => modules/incompressibleFluid}/channel395/0.orig/nut (100%) rename tutorials/{incompressible/pimpleFoam/LES => modules/incompressibleFluid}/channel395/0.orig/p (100%) rename tutorials/{incompressible/pimpleFoam/LES => modules/incompressibleFluid}/channel395/0/B.gz (100%) rename tutorials/{incompressible/pimpleFoam/LES => modules/incompressibleFluid}/channel395/0/U.gz (100%) rename tutorials/{incompressible/pimpleFoam/LES => modules/incompressibleFluid}/channel395/0/k.gz (100%) rename tutorials/{incompressible/pimpleFoam/LES => modules/incompressibleFluid}/channel395/0/nuTilda.gz (100%) rename tutorials/{incompressible/pimpleFoam/LES => modules/incompressibleFluid}/channel395/0/nut.gz (100%) rename tutorials/{incompressible/pimpleFoam/LES => modules/incompressibleFluid}/channel395/0/p.gz (100%) rename tutorials/{incompressible/pimpleFoam/LES => modules/incompressibleFluid}/channel395/Allrun (100%) rename tutorials/{incompressible/pimpleFoam/LES => modules/incompressibleFluid}/channel395/constant/momentumTransport (100%) rename tutorials/{incompressible/pimpleFoam/LES => modules/incompressibleFluid}/channel395/constant/physicalProperties (100%) rename tutorials/{incompressible/pimpleFoam/LES => modules/incompressibleFluid}/channel395/system/blockMeshDict (100%) rename tutorials/{incompressible/pimpleFoam/LES => modules/incompressibleFluid}/channel395/system/controlDict (96%) rename tutorials/{incompressible/pimpleFoam/LES => modules/incompressibleFluid}/channel395/system/decomposeParDict (100%) rename tutorials/{incompressible/pimpleFoam/LES => modules/incompressibleFluid}/channel395/system/fvConstraints (100%) rename tutorials/{incompressible/pimpleFoam/LES => modules/incompressibleFluid}/channel395/system/fvSchemes (100%) rename tutorials/{incompressible/pimpleFoam/LES => modules/incompressibleFluid}/channel395/system/fvSolution (100%) rename tutorials/{incompressible/pimpleFoam/LES => modules/incompressibleFluid}/channel395/system/postChannelDict (100%) rename tutorials/{incompressible/simpleFoam => modules/incompressibleFluid}/drivaerFastback/0/U (100%) rename tutorials/{incompressible/simpleFoam => modules/incompressibleFluid}/drivaerFastback/0/k (100%) rename tutorials/{incompressible/simpleFoam => modules/incompressibleFluid}/drivaerFastback/0/nut (100%) rename tutorials/{incompressible/simpleFoam => modules/incompressibleFluid}/drivaerFastback/0/omega (100%) rename tutorials/{incompressible/simpleFoam => modules/incompressibleFluid}/drivaerFastback/0/p (100%) rename tutorials/{incompressible/simpleFoam => modules/incompressibleFluid}/drivaerFastback/Allclean (100%) rename tutorials/{incompressible/simpleFoam => modules/incompressibleFluid}/drivaerFastback/Allrun (100%) rename tutorials/{incompressible/simpleFoam => modules/incompressibleFluid}/drivaerFastback/constant/geometry/body.obj.gz (100%) rename tutorials/{incompressible/simpleFoam => modules/incompressibleFluid}/drivaerFastback/constant/geometry/frontWheels.obj.gz (100%) rename tutorials/{incompressible/simpleFoam => modules/incompressibleFluid}/drivaerFastback/constant/geometry/rearWheels.obj.gz (100%) rename tutorials/{incompressible/simpleFoam => modules/incompressibleFluid}/drivaerFastback/constant/momentumTransport (100%) rename tutorials/{incompressible/pisoFoam/LES/motorBike/motorBike => modules/incompressibleFluid/drivaerFastback}/constant/physicalProperties (100%) rename tutorials/{incompressible/simpleFoam => modules/incompressibleFluid}/drivaerFastback/system/blockMeshDict (100%) rename tutorials/{incompressible/simpleFoam => modules/incompressibleFluid}/drivaerFastback/system/controlDict.orig (100%) rename tutorials/{incompressible/simpleFoam => modules/incompressibleFluid}/drivaerFastback/system/decomposeParDict.orig (100%) rename tutorials/{incompressible/simpleFoam => modules/incompressibleFluid}/drivaerFastback/system/forceCoeffsIncompressible (100%) rename tutorials/{incompressible/simpleFoam => modules/incompressibleFluid}/drivaerFastback/system/fvSchemes (100%) rename tutorials/{incompressible/simpleFoam => modules/incompressibleFluid}/drivaerFastback/system/fvSolution (100%) rename tutorials/{incompressible/simpleFoam => modules/incompressibleFluid}/drivaerFastback/system/meshQualityDict (100%) rename tutorials/{incompressible/simpleFoam => modules/incompressibleFluid}/drivaerFastback/system/snappyHexMeshDict.orig (100%) rename tutorials/{incompressible/simpleFoam => modules/incompressibleFluid}/ductSecondaryFlow/0/R (100%) rename tutorials/{incompressible/simpleFoam => modules/incompressibleFluid}/ductSecondaryFlow/0/U (100%) rename tutorials/{incompressible/simpleFoam => modules/incompressibleFluid}/ductSecondaryFlow/0/epsilon (100%) rename tutorials/{incompressible/simpleFoam => modules/incompressibleFluid}/ductSecondaryFlow/0/k (100%) rename tutorials/{incompressible/simpleFoam => modules/incompressibleFluid}/ductSecondaryFlow/0/nut (100%) rename tutorials/{incompressible/simpleFoam => modules/incompressibleFluid}/ductSecondaryFlow/0/p (100%) rename tutorials/{incompressible/simpleFoam => modules/incompressibleFluid}/ductSecondaryFlow/constant/momentumTransport (100%) rename tutorials/{incompressible/simpleFoam => modules/incompressibleFluid}/ductSecondaryFlow/constant/physicalProperties (100%) rename tutorials/{incompressible/simpleFoam => modules/incompressibleFluid}/ductSecondaryFlow/system/blockMeshDict (100%) rename tutorials/{incompressible/simpleFoam => modules/incompressibleFluid}/ductSecondaryFlow/system/controlDict (94%) rename tutorials/{incompressible/simpleFoam => modules/incompressibleFluid}/ductSecondaryFlow/system/fvConstraints (100%) rename tutorials/{incompressible/simpleFoam => modules/incompressibleFluid}/ductSecondaryFlow/system/fvSchemes (100%) rename tutorials/{incompressible/simpleFoam => modules/incompressibleFluid}/ductSecondaryFlow/system/fvSolution (100%) rename tutorials/{incompressible/pimpleFoam/RAS => modules/incompressibleFluid}/elipsekkLOmega/0/U (100%) rename tutorials/{incompressible/pimpleFoam/RAS => modules/incompressibleFluid}/elipsekkLOmega/0/kl (100%) rename tutorials/{incompressible/pimpleFoam/RAS => modules/incompressibleFluid}/elipsekkLOmega/0/kt (100%) rename tutorials/{incompressible/pimpleFoam/RAS => modules/incompressibleFluid}/elipsekkLOmega/0/nut (100%) rename tutorials/{incompressible/pimpleFoam/RAS => modules/incompressibleFluid}/elipsekkLOmega/0/omega (100%) rename tutorials/{incompressible/pimpleFoam/RAS => modules/incompressibleFluid}/elipsekkLOmega/0/p (100%) rename tutorials/{incompressible/pimpleFoam/RAS => modules/incompressibleFluid}/elipsekkLOmega/Allclean (100%) rename tutorials/{incompressible/pimpleFoam/RAS => modules/incompressibleFluid}/elipsekkLOmega/Allrun (100%) rename tutorials/{incompressible/pimpleFoam/RAS => modules/incompressibleFluid}/elipsekkLOmega/constant/momentumTransport (100%) rename tutorials/{incompressible/pimpleFoam/RAS => modules/incompressibleFluid}/elipsekkLOmega/constant/physicalProperties (100%) rename tutorials/{incompressible/pimpleFoam/RAS => modules/incompressibleFluid}/elipsekkLOmega/system/blockMeshDict (100%) rename tutorials/{incompressible/pimpleFoam/RAS => modules/incompressibleFluid}/elipsekkLOmega/system/controlDict (94%) rename tutorials/{incompressible/pimpleFoam/RAS => modules/incompressibleFluid}/elipsekkLOmega/system/createPatchDict (100%) rename tutorials/{incompressible/pimpleFoam/RAS => modules/incompressibleFluid}/elipsekkLOmega/system/fvSchemes (100%) rename tutorials/{incompressible/pimpleFoam/RAS => modules/incompressibleFluid}/elipsekkLOmega/system/fvSolution (100%) rename tutorials/{incompressible/pimpleFoam/RAS => modules/incompressibleFluid}/elipsekkLOmega/system/mirrorMeshDict.x (100%) rename tutorials/{incompressible/pimpleFoam/RAS => modules/incompressibleFluid}/elipsekkLOmega/system/mirrorMeshDict.y (100%) rename tutorials/{incompressible/pimpleFoam/RAS => modules/incompressibleFluid}/elipsekkLOmega/system/topoSetDict (100%) rename tutorials/{incompressible/pimpleFoam/RAS => modules/incompressibleFluid}/flowWithOpenBoundary/0/T.orig (100%) rename tutorials/{incompressible/pimpleFoam/RAS => modules/incompressibleFluid}/flowWithOpenBoundary/0/U.orig (100%) rename tutorials/{incompressible/pimpleFoam/RAS => modules/incompressibleFluid}/flowWithOpenBoundary/0/k (100%) rename tutorials/{incompressible/pimpleFoam/RAS => modules/incompressibleFluid}/flowWithOpenBoundary/0/nut (100%) rename tutorials/{incompressible/pimpleFoam/RAS => modules/incompressibleFluid}/flowWithOpenBoundary/0/omega (100%) rename tutorials/{incompressible/pimpleFoam/RAS => modules/incompressibleFluid}/flowWithOpenBoundary/0/p.orig (100%) rename tutorials/{incompressible/pimpleFoam/RAS => modules/incompressibleFluid}/flowWithOpenBoundary/Allclean (100%) rename tutorials/{incompressible/pimpleFoam/RAS => modules/incompressibleFluid}/flowWithOpenBoundary/Allrun (100%) rename tutorials/{incompressible/pimpleFoam/RAS => modules/incompressibleFluid}/flowWithOpenBoundary/constant/momentumTransport (100%) rename tutorials/{incompressible/pimpleFoam/RAS => modules/incompressibleFluid}/flowWithOpenBoundary/constant/physicalProperties (100%) rename tutorials/{incompressible/pimpleFoam/RAS => modules/incompressibleFluid}/flowWithOpenBoundary/distortMesh/Make/files (100%) rename tutorials/{incompressible/pimpleFoam/RAS => modules/incompressibleFluid}/flowWithOpenBoundary/distortMesh/Make/options (100%) rename tutorials/{incompressible/pimpleFoam/RAS => modules/incompressibleFluid}/flowWithOpenBoundary/distortMesh/distortMesh.C (96%) rename tutorials/{incompressible/pimpleFoam/RAS => modules/incompressibleFluid}/flowWithOpenBoundary/system/blockMeshDict (100%) rename tutorials/{incompressible/pimpleFoam/RAS => modules/incompressibleFluid}/flowWithOpenBoundary/system/controlDict (94%) rename tutorials/{incompressible/pimpleFoam/RAS => modules/incompressibleFluid}/flowWithOpenBoundary/system/extrudeMeshDict (100%) rename tutorials/{incompressible/pimpleFoam/RAS => modules/incompressibleFluid}/flowWithOpenBoundary/system/fvSchemes (100%) rename tutorials/{incompressible/pimpleFoam/RAS => modules/incompressibleFluid}/flowWithOpenBoundary/system/fvSolution (98%) rename tutorials/{incompressible/pimpleFoam/RAS => modules/incompressibleFluid}/impeller/0/U (100%) rename tutorials/{incompressible/pimpleFoam/RAS => modules/incompressibleFluid}/impeller/0/epsilon (100%) rename tutorials/{incompressible/pimpleFoam/RAS => modules/incompressibleFluid}/impeller/0/k (100%) rename tutorials/{incompressible/pimpleFoam/RAS => modules/incompressibleFluid}/impeller/0/nut (100%) rename tutorials/{incompressible/pimpleFoam/RAS => modules/incompressibleFluid}/impeller/0/p (100%) rename tutorials/{incompressible/pimpleFoam/RAS => modules/incompressibleFluid}/impeller/Allclean (100%) rename tutorials/{incompressible/pimpleFoam/RAS => modules/incompressibleFluid}/impeller/Allrun (100%) rename tutorials/{incompressible/pimpleFoam/RAS => modules/incompressibleFluid}/impeller/constant/dynamicMeshDict (100%) rename tutorials/{incompressible/pimpleFoam/RAS => modules/incompressibleFluid}/impeller/constant/momentumTransport (100%) rename tutorials/{incompressible/pimpleFoam/RAS => modules/incompressibleFluid}/impeller/constant/physicalProperties (100%) rename tutorials/{incompressible/pimpleFoam/RAS => modules/incompressibleFluid}/impeller/system/blockMeshDict (100%) rename tutorials/{incompressible/pimpleFoam/RAS => modules/incompressibleFluid}/impeller/system/controlDict (95%) rename tutorials/{incompressible/pimpleFoam/RAS => modules/incompressibleFluid}/impeller/system/createNonConformalCouplesDict (100%) rename tutorials/{incompressible/pimpleFoam/RAS => modules/incompressibleFluid}/impeller/system/decomposeParDict (100%) rename tutorials/{incompressible/pimpleFoam/RAS => modules/incompressibleFluid}/impeller/system/fvSchemes (100%) rename tutorials/{incompressible/pimpleFoam/RAS => modules/incompressibleFluid}/impeller/system/fvSolution (100%) rename tutorials/{incompressible/simpleFoam => modules/incompressibleFluid}/mixerVessel2DMRF/0/U (100%) rename tutorials/{incompressible/simpleFoam => modules/incompressibleFluid}/mixerVessel2DMRF/0/epsilon (100%) rename tutorials/{incompressible/simpleFoam => modules/incompressibleFluid}/mixerVessel2DMRF/0/k (100%) rename tutorials/{incompressible/simpleFoam => modules/incompressibleFluid}/mixerVessel2DMRF/0/nut (100%) rename tutorials/{incompressible/simpleFoam => modules/incompressibleFluid}/mixerVessel2DMRF/0/p (100%) rename tutorials/{incompressible/simpleFoam => modules/incompressibleFluid}/mixerVessel2DMRF/Allrun (100%) rename tutorials/{incompressible/simpleFoam => modules/incompressibleFluid}/mixerVessel2DMRF/constant/MRFProperties (100%) rename tutorials/{incompressible/pimpleFoam/RAS/pitzDaily => modules/incompressibleFluid/mixerVessel2DMRF}/constant/momentumTransport (100%) rename tutorials/{incompressible/pimpleFoam/laminar/movingCone => modules/incompressibleFluid/mixerVessel2DMRF}/constant/physicalProperties (100%) rename tutorials/{incompressible/simpleFoam => modules/incompressibleFluid}/mixerVessel2DMRF/system/controlDict (94%) rename tutorials/{incompressible/simpleFoam => modules/incompressibleFluid}/mixerVessel2DMRF/system/fvSchemes (100%) rename tutorials/{incompressible/simpleFoam => modules/incompressibleFluid}/mixerVessel2DMRF/system/fvSolution (100%) rename tutorials/{incompressible/pisoFoam/LES => modules/incompressibleFluid}/motorBike/Allclean (100%) rename tutorials/{incompressible/pisoFoam/LES => modules/incompressibleFluid}/motorBike/Allrun (100%) rename tutorials/{incompressible/pisoFoam/LES => modules/incompressibleFluid}/motorBike/lesFiles/Allrun (100%) rename tutorials/{incompressible/pisoFoam/LES => modules/incompressibleFluid}/motorBike/lesFiles/controlDict (100%) rename tutorials/{incompressible/pisoFoam/LES => modules/incompressibleFluid}/motorBike/lesFiles/fvSchemes (100%) rename tutorials/{incompressible/pisoFoam/LES => modules/incompressibleFluid}/motorBike/lesFiles/fvSolution (99%) rename tutorials/{incompressible/pisoFoam/LES => modules/incompressibleFluid}/motorBike/lesFiles/momentumTransport (100%) rename tutorials/{incompressible/pisoFoam/LES => modules/incompressibleFluid}/motorBike/motorBike/0/U (100%) rename tutorials/{incompressible/pimpleFoam/RAS/wingMotion/wingMotion2D_pimpleFoam => modules/incompressibleFluid/motorBike/motorBike}/0/include/fixedInlet (100%) rename tutorials/{incompressible/pisoFoam/LES => modules/incompressibleFluid}/motorBike/motorBike/0/include/frontBackUpperPatches (100%) rename tutorials/{incompressible/pisoFoam/LES => modules/incompressibleFluid}/motorBike/motorBike/0/include/initialConditions (100%) rename tutorials/{incompressible/pisoFoam/LES => modules/incompressibleFluid}/motorBike/motorBike/0/k (100%) rename tutorials/{incompressible/pisoFoam/LES => modules/incompressibleFluid}/motorBike/motorBike/0/nuTilda (100%) rename tutorials/{incompressible/pisoFoam/LES => modules/incompressibleFluid}/motorBike/motorBike/0/nut (100%) rename tutorials/{incompressible/pisoFoam/LES => modules/incompressibleFluid}/motorBike/motorBike/0/p (100%) rename tutorials/{incompressible/pisoFoam/LES => modules/incompressibleFluid}/motorBike/motorBike/Allclean (100%) rename tutorials/{incompressible/pisoFoam/LES => modules/incompressibleFluid}/motorBike/motorBike/Allrun (100%) rename tutorials/{incompressible/pisoFoam/LES => modules/incompressibleFluid}/motorBike/motorBike/constant/geometry/README (100%) rename tutorials/{incompressible/pisoFoam/LES => modules/incompressibleFluid}/motorBike/motorBike/constant/momentumTransport (100%) rename tutorials/{incompressible/simpleFoam/drivaerFastback => modules/incompressibleFluid/motorBike/motorBike}/constant/physicalProperties (100%) rename tutorials/{incompressible/pisoFoam/LES => modules/incompressibleFluid}/motorBike/motorBike/system/blockMeshDict (100%) rename tutorials/{incompressible/pisoFoam/LES => modules/incompressibleFluid}/motorBike/motorBike/system/controlDict (94%) rename tutorials/{incompressible/pisoFoam/LES => modules/incompressibleFluid}/motorBike/motorBike/system/cuttingPlane (100%) rename tutorials/{incompressible/pisoFoam/LES => modules/incompressibleFluid}/motorBike/motorBike/system/decomposeParDict (100%) rename tutorials/{incompressible/pisoFoam/LES => modules/incompressibleFluid}/motorBike/motorBike/system/forceCoeffs (100%) rename tutorials/{incompressible/pisoFoam/LES => modules/incompressibleFluid}/motorBike/motorBike/system/fvSchemes (100%) rename tutorials/{incompressible/pisoFoam/LES => modules/incompressibleFluid}/motorBike/motorBike/system/fvSolution (100%) rename tutorials/{incompressible/pisoFoam/LES => modules/incompressibleFluid}/motorBike/motorBike/system/snappyHexMeshDict (100%) rename tutorials/{incompressible/pisoFoam/LES => modules/incompressibleFluid}/motorBike/motorBike/system/streamlines (100%) rename tutorials/{incompressible/simpleFoam/motorBike => modules/incompressibleFluid/motorBikeSteady}/0/U.orig (100%) rename tutorials/{incompressible/pimpleFoam/RAS/wingMotion/wingMotion2D_simpleFoam => modules/incompressibleFluid/motorBikeSteady}/0/include/fixedInlet (100%) rename tutorials/{incompressible/simpleFoam/motorBike => modules/incompressibleFluid/motorBikeSteady}/0/include/frontBackUpperPatches (100%) rename tutorials/{incompressible/simpleFoam/motorBike => modules/incompressibleFluid/motorBikeSteady}/0/include/initialConditions (100%) rename tutorials/{incompressible/simpleFoam/motorBike => modules/incompressibleFluid/motorBikeSteady}/0/k (100%) rename tutorials/{incompressible/simpleFoam/motorBike => modules/incompressibleFluid/motorBikeSteady}/0/nut (100%) rename tutorials/{incompressible/simpleFoam/motorBike => modules/incompressibleFluid/motorBikeSteady}/0/omega (100%) rename tutorials/{incompressible/simpleFoam/motorBike => modules/incompressibleFluid/motorBikeSteady}/0/p (100%) rename tutorials/{incompressible/simpleFoam/motorBike => modules/incompressibleFluid/motorBikeSteady}/Allclean (100%) rename tutorials/{incompressible/simpleFoam/motorBike => modules/incompressibleFluid/motorBikeSteady}/Allrun (100%) rename tutorials/{incompressible/simpleFoam/motorBike => modules/incompressibleFluid/motorBikeSteady}/constant/geometry/README (100%) rename tutorials/{incompressible/simpleFoam/motorBike => modules/incompressibleFluid/motorBikeSteady}/constant/momentumTransport (100%) rename tutorials/{incompressible/simpleFoam/motorBike => modules/incompressibleFluid/motorBikeSteady}/constant/physicalProperties (100%) rename tutorials/{incompressible/simpleFoam/motorBike => modules/incompressibleFluid/motorBikeSteady}/system/blockMeshDict (100%) rename tutorials/{incompressible/simpleFoam/motorBike => modules/incompressibleFluid/motorBikeSteady}/system/controlDict (94%) rename tutorials/{incompressible/simpleFoam/motorBike => modules/incompressibleFluid/motorBikeSteady}/system/cuttingPlane (100%) rename tutorials/{incompressible/simpleFoam/motorBike => modules/incompressibleFluid/motorBikeSteady}/system/decomposeParDict (100%) rename tutorials/{incompressible/simpleFoam/motorBike => modules/incompressibleFluid/motorBikeSteady}/system/forceCoeffs (100%) rename tutorials/{incompressible/simpleFoam/motorBike => modules/incompressibleFluid/motorBikeSteady}/system/fvSchemes (100%) rename tutorials/{incompressible/simpleFoam/motorBike => modules/incompressibleFluid/motorBikeSteady}/system/fvSolution (100%) rename tutorials/{incompressible/simpleFoam/motorBike => modules/incompressibleFluid/motorBikeSteady}/system/meshQualityDict (100%) rename tutorials/{incompressible/simpleFoam/motorBike => modules/incompressibleFluid/motorBikeSteady}/system/snappyHexMeshDict (100%) rename tutorials/{incompressible/simpleFoam/motorBike => modules/incompressibleFluid/motorBikeSteady}/system/streamlines (100%) rename tutorials/{incompressible/simpleFoam/motorBike => modules/incompressibleFluid/motorBikeSteady}/system/surfaceFeaturesDict (100%) rename tutorials/{incompressible/pimpleFoam/laminar => modules/incompressibleFluid}/movingCone/0/U (100%) rename tutorials/{incompressible/pimpleFoam/laminar => modules/incompressibleFluid}/movingCone/0/p (100%) rename tutorials/{incompressible/pimpleFoam/laminar => modules/incompressibleFluid}/movingCone/0/pointMotionUx (100%) rename tutorials/{incompressible/pimpleFoam/laminar => modules/incompressibleFluid}/movingCone/Allclean (100%) rename tutorials/{incompressible/pimpleFoam/laminar => modules/incompressibleFluid}/movingCone/Allrun (100%) rename tutorials/{incompressible/pimpleFoam/laminar => modules/incompressibleFluid}/movingCone/Allrun-parallel (100%) rename tutorials/{incompressible/pimpleFoam/laminar => modules/incompressibleFluid}/movingCone/constant/dynamicMeshDict (100%) rename tutorials/{incompressible/pimpleFoam/laminar => modules/incompressibleFluid}/movingCone/constant/momentumTransport (100%) rename tutorials/{incompressible/pisoFoam/LES/pitzDaily => modules/incompressibleFluid/movingCone}/constant/physicalProperties (100%) rename tutorials/{incompressible/pimpleFoam/laminar => modules/incompressibleFluid}/movingCone/system/blockMeshDict (100%) rename tutorials/{incompressible/pimpleFoam/laminar => modules/incompressibleFluid}/movingCone/system/blockMeshDict_0.0015 (100%) rename tutorials/{incompressible/pimpleFoam/laminar => modules/incompressibleFluid}/movingCone/system/blockMeshDict_0.003 (100%) rename tutorials/{incompressible/pimpleFoam/laminar => modules/incompressibleFluid}/movingCone/system/controlDict (94%) rename tutorials/{incompressible/pimpleFoam/laminar => modules/incompressibleFluid}/movingCone/system/cuttingPlane (100%) rename tutorials/{incompressible/pimpleFoam/laminar => modules/incompressibleFluid}/movingCone/system/decomposeParDict (100%) rename tutorials/{incompressible/pimpleFoam/laminar => modules/incompressibleFluid}/movingCone/system/decomposeParDict_0.0015 (100%) rename tutorials/{incompressible/pimpleFoam/laminar => modules/incompressibleFluid}/movingCone/system/decomposeParDict_0.003 (100%) rename tutorials/{incompressible/pimpleFoam/laminar => modules/incompressibleFluid}/movingCone/system/fvSchemes (100%) rename tutorials/{incompressible/pimpleFoam/laminar => modules/incompressibleFluid}/movingCone/system/fvSolution (100%) rename tutorials/{incompressible/pimpleFoam/laminar => modules/incompressibleFluid}/nonConformalChannel/0/U (100%) rename tutorials/{incompressible/pimpleFoam/laminar => modules/incompressibleFluid}/nonConformalChannel/0/p (100%) rename tutorials/{incompressible/pimpleFoam/laminar => modules/incompressibleFluid}/nonConformalChannel/Allclean (100%) rename tutorials/{incompressible/pimpleFoam/laminar => modules/incompressibleFluid}/nonConformalChannel/Allrun (100%) rename tutorials/{incompressible/pimpleFoam/laminar => modules/incompressibleFluid}/nonConformalChannel/constant/momentumTransport (100%) rename tutorials/{incompressible/pimpleFoam/laminar => modules/incompressibleFluid}/nonConformalChannel/constant/physicalProperties (100%) rename tutorials/{incompressible/pimpleFoam/laminar => modules/incompressibleFluid}/nonConformalChannel/system/blockMeshDict.AMI (100%) rename tutorials/{incompressible/pimpleFoam/laminar => modules/incompressibleFluid}/nonConformalChannel/system/blockMeshDict.boundary (100%) rename tutorials/{incompressible/pimpleFoam/laminar => modules/incompressibleFluid}/nonConformalChannel/system/blockMeshDict.internal (100%) rename tutorials/{incompressible/pimpleFoam/laminar => modules/incompressibleFluid}/nonConformalChannel/system/blockMeshDict.nonConformalCyclic (100%) rename tutorials/{incompressible/pimpleFoam/laminar => modules/incompressibleFluid}/nonConformalChannel/system/controlDict (95%) rename tutorials/{incompressible/pimpleFoam/laminar => modules/incompressibleFluid}/nonConformalChannel/system/fvSchemes (100%) rename tutorials/{incompressible/pimpleFoam/laminar => modules/incompressibleFluid}/nonConformalChannel/system/fvSolution (100%) rename tutorials/{incompressible/pimpleFoam/laminar => modules/incompressibleFluid}/offsetCylinder/0/U (100%) rename tutorials/{incompressible/pimpleFoam/laminar => modules/incompressibleFluid}/offsetCylinder/0/p (100%) rename tutorials/{incompressible/pimpleFoam/laminar => modules/incompressibleFluid}/offsetCylinder/constant/momentumTransport (100%) rename tutorials/{incompressible/pimpleFoam/laminar => modules/incompressibleFluid}/offsetCylinder/constant/physicalProperties (100%) rename tutorials/{incompressible/pimpleFoam/laminar => modules/incompressibleFluid}/offsetCylinder/system/blockMeshDict (100%) rename tutorials/{incompressible/pimpleFoam/laminar => modules/incompressibleFluid}/offsetCylinder/system/controlDict (94%) rename tutorials/{incompressible/pimpleFoam/laminar => modules/incompressibleFluid}/offsetCylinder/system/fvSchemes (100%) rename tutorials/{incompressible/pimpleFoam/laminar => modules/incompressibleFluid}/offsetCylinder/system/fvSolution (100%) rename tutorials/{incompressible/pimpleFoam/RAS => modules/incompressibleFluid}/oscillatingInlet/0/U (100%) rename tutorials/{incompressible/pimpleFoam/RAS => modules/incompressibleFluid}/oscillatingInlet/0/epsilon (100%) rename tutorials/{incompressible/pimpleFoam/RAS => modules/incompressibleFluid}/oscillatingInlet/0/k (100%) rename tutorials/{incompressible/pimpleFoam/RAS => modules/incompressibleFluid}/oscillatingInlet/0/nut (100%) rename tutorials/{incompressible/pimpleFoam/RAS => modules/incompressibleFluid}/oscillatingInlet/0/omega (100%) rename tutorials/{incompressible/pimpleFoam/RAS => modules/incompressibleFluid}/oscillatingInlet/0/p (100%) rename tutorials/{incompressible/pimpleFoam/RAS => modules/incompressibleFluid}/oscillatingInlet/Allrun (100%) rename tutorials/{incompressible/pimpleFoam/RAS => modules/incompressibleFluid}/oscillatingInlet/constant/dynamicMeshDict (100%) rename tutorials/{incompressible/pimpleFoam/RAS => modules/incompressibleFluid}/oscillatingInlet/constant/momentumTransport (100%) rename tutorials/{incompressible/pimpleFoam/RAS => modules/incompressibleFluid}/oscillatingInlet/constant/physicalProperties (100%) rename tutorials/{incompressible/pimpleFoam/RAS => modules/incompressibleFluid}/oscillatingInlet/system/blockMeshDict (100%) rename tutorials/{incompressible/pimpleFoam/RAS => modules/incompressibleFluid}/oscillatingInlet/system/controlDict (95%) rename tutorials/{incompressible/pimpleFoam/RAS => modules/incompressibleFluid}/oscillatingInlet/system/decomposeParDict (100%) rename tutorials/{incompressible/pimpleFoam/RAS => modules/incompressibleFluid}/oscillatingInlet/system/fvSchemes (100%) rename tutorials/{incompressible/pimpleFoam/RAS => modules/incompressibleFluid}/oscillatingInlet/system/fvSolution (100%) rename tutorials/{incompressible/simpleFoam => modules/incompressibleFluid}/pipeCyclic/0/U (100%) rename tutorials/{incompressible/simpleFoam => modules/incompressibleFluid}/pipeCyclic/0/epsilon (100%) rename tutorials/{incompressible/simpleFoam => modules/incompressibleFluid}/pipeCyclic/0/k (100%) rename tutorials/{incompressible/simpleFoam => modules/incompressibleFluid}/pipeCyclic/0/nut (100%) rename tutorials/{incompressible/simpleFoam => modules/incompressibleFluid}/pipeCyclic/0/p (100%) rename tutorials/{incompressible/simpleFoam => modules/incompressibleFluid}/pipeCyclic/Allclean (100%) rename tutorials/{incompressible/simpleFoam => modules/incompressibleFluid}/pipeCyclic/Allrun (100%) rename tutorials/{incompressible/simpleFoam => modules/incompressibleFluid}/pipeCyclic/constant/momentumTransport (100%) rename tutorials/{incompressible/simpleFoam => modules/incompressibleFluid}/pipeCyclic/constant/physicalProperties (100%) rename tutorials/{incompressible/simpleFoam => modules/incompressibleFluid}/pipeCyclic/system/blockMeshDict (100%) rename tutorials/{incompressible/simpleFoam => modules/incompressibleFluid}/pipeCyclic/system/controlDict (94%) rename tutorials/{incompressible/simpleFoam => modules/incompressibleFluid}/pipeCyclic/system/decomposeParDict (100%) rename tutorials/{incompressible/simpleFoam => modules/incompressibleFluid}/pipeCyclic/system/fvSchemes (100%) rename tutorials/{incompressible/simpleFoam => modules/incompressibleFluid}/pipeCyclic/system/fvSolution (100%) rename tutorials/{incompressible/simpleFoam => modules/incompressibleFluid}/pipeCyclic/system/topoSetDict (100%) rename tutorials/{incompressible/pimpleFoam/RAS => modules/incompressibleFluid}/pitzDaily/0/U (100%) rename tutorials/{incompressible/pimpleFoam/RAS => modules/incompressibleFluid}/pitzDaily/0/epsilon (100%) rename tutorials/{incompressible/pimpleFoam/RAS => modules/incompressibleFluid}/pitzDaily/0/k (100%) rename tutorials/{incompressible/pimpleFoam/RAS => modules/incompressibleFluid}/pitzDaily/0/nuTilda (100%) rename tutorials/{incompressible/pimpleFoam/RAS => modules/incompressibleFluid}/pitzDaily/0/nut (100%) rename tutorials/{incompressible/pimpleFoam/RAS => modules/incompressibleFluid}/pitzDaily/0/p (100%) rename tutorials/{incompressible/pimpleFoam/RAS => modules/incompressibleFluid}/pitzDaily/Allrun (100%) rename tutorials/{incompressible/pimpleFoam/RAS/pitzDailyLTS => modules/incompressibleFluid/pitzDaily}/constant/momentumTransport (100%) rename tutorials/{incompressible/pisoFoam/LES/pitzDailyMapped => modules/incompressibleFluid/pitzDaily}/constant/physicalProperties (100%) rename tutorials/{incompressible/pimpleFoam/RAS => modules/incompressibleFluid}/pitzDaily/system/controlDict (94%) rename tutorials/{incompressible/pimpleFoam/RAS => modules/incompressibleFluid}/pitzDaily/system/fvSchemes (100%) rename tutorials/{incompressible/pimpleFoam/RAS => modules/incompressibleFluid}/pitzDaily/system/fvSolution (100%) rename tutorials/{incompressible/pisoFoam/LES/pitzDaily => modules/incompressibleFluid/pitzDailyLES}/0/U (100%) rename tutorials/{incompressible/pisoFoam/LES/pitzDaily => modules/incompressibleFluid/pitzDailyLES}/0/k (100%) rename tutorials/{incompressible/pisoFoam/LES/pitzDaily => modules/incompressibleFluid/pitzDailyLES}/0/nuTilda (100%) rename tutorials/{incompressible/pisoFoam/LES/pitzDaily => modules/incompressibleFluid/pitzDailyLES}/0/nut (100%) rename tutorials/{incompressible/pimpleFoam/RAS/pitzDailyLTS => modules/incompressibleFluid/pitzDailyLES}/0/p (100%) rename tutorials/{incompressible/pisoFoam/LES/pitzDaily => modules/incompressibleFluid/pitzDailyLES}/0/s (100%) rename tutorials/{incompressible/pimpleFoam/RAS/pitzDailyLTS => modules/incompressibleFluid/pitzDailyLES}/Allrun (100%) rename tutorials/{incompressible/pisoFoam/LES/pitzDaily => modules/incompressibleFluid/pitzDailyLES}/constant/momentumTransport (100%) rename tutorials/{incompressible/pisoFoam/RAS/cavity => modules/incompressibleFluid/pitzDailyLES}/constant/physicalProperties (100%) rename tutorials/{incompressible/pisoFoam/LES/pitzDaily => modules/incompressibleFluid/pitzDailyLES}/system/controlDict (97%) rename tutorials/{incompressible/pisoFoam/LES/pitzDaily => modules/incompressibleFluid/pitzDailyLES}/system/fvSchemes (100%) rename tutorials/{incompressible/pisoFoam/LES/pitzDaily => modules/incompressibleFluid/pitzDailyLES}/system/fvSolution (97%) rename tutorials/{incompressible/pimpleFoam/RAS => modules/incompressibleFluid}/pitzDailyLTS/0/U (100%) rename tutorials/{incompressible/pimpleFoam/RAS => modules/incompressibleFluid}/pitzDailyLTS/0/epsilon (100%) rename tutorials/{incompressible/pimpleFoam/RAS => modules/incompressibleFluid}/pitzDailyLTS/0/k (100%) rename tutorials/{incompressible/pimpleFoam/RAS => modules/incompressibleFluid}/pitzDailyLTS/0/nuTilda (100%) rename tutorials/{incompressible/pimpleFoam/RAS => modules/incompressibleFluid}/pitzDailyLTS/0/nut (100%) rename tutorials/{incompressible/pimpleFoam/laminar/pitzDailyPulse => modules/incompressibleFluid/pitzDailyLTS}/0/p (100%) rename tutorials/{incompressible/pimpleFoam/laminar/pitzDailyPulse => modules/incompressibleFluid/pitzDailyLTS}/Allrun (100%) rename tutorials/{incompressible/simpleFoam/mixerVessel2DMRF => modules/incompressibleFluid/pitzDailyLTS}/constant/momentumTransport (100%) rename tutorials/{incompressible/pisoFoam/RAS/cavityCoupledU => modules/incompressibleFluid/pitzDailyLTS}/constant/physicalProperties (100%) rename tutorials/{incompressible/pimpleFoam/RAS => modules/incompressibleFluid}/pitzDailyLTS/system/controlDict (94%) rename tutorials/{incompressible/pimpleFoam/RAS => modules/incompressibleFluid}/pitzDailyLTS/system/fvSchemes (100%) rename tutorials/{incompressible/pimpleFoam/RAS => modules/incompressibleFluid}/pitzDailyLTS/system/fvSolution (100%) rename tutorials/{incompressible/pisoFoam/LES => modules/incompressibleFluid}/pitzDailyMapped/0/U (100%) rename tutorials/{incompressible/pisoFoam/LES => modules/incompressibleFluid}/pitzDailyMapped/0/k (100%) rename tutorials/{incompressible/pisoFoam/LES => modules/incompressibleFluid}/pitzDailyMapped/0/nuTilda (100%) rename tutorials/{incompressible/pisoFoam/LES => modules/incompressibleFluid}/pitzDailyMapped/0/nut (100%) rename tutorials/{incompressible/pisoFoam/LES/pitzDaily => modules/incompressibleFluid/pitzDailyMapped}/0/p (100%) rename tutorials/{incompressible/pisoFoam/LES => modules/incompressibleFluid}/pitzDailyMapped/constant/momentumTransport (100%) rename tutorials/{incompressible/simpleFoam/mixerVessel2DMRF => modules/incompressibleFluid/pitzDailyMapped}/constant/physicalProperties (100%) rename tutorials/{incompressible/pisoFoam/LES => modules/incompressibleFluid}/pitzDailyMapped/system/blockMeshDict (100%) rename tutorials/{incompressible/pisoFoam/LES => modules/incompressibleFluid}/pitzDailyMapped/system/controlDict (97%) rename tutorials/{incompressible/pisoFoam/LES => modules/incompressibleFluid}/pitzDailyMapped/system/decomposeParDict (100%) rename tutorials/{incompressible/pisoFoam/LES => modules/incompressibleFluid}/pitzDailyMapped/system/fvSchemes (100%) rename tutorials/{incompressible/pisoFoam/LES => modules/incompressibleFluid}/pitzDailyMapped/system/fvSolution (97%) rename tutorials/{incompressible/pimpleFoam/laminar => modules/incompressibleFluid}/pitzDailyPulse/0/U (100%) rename tutorials/{incompressible/pisoFoam/LES/pitzDailyMapped => modules/incompressibleFluid/pitzDailyPulse}/0/p (100%) rename tutorials/{incompressible/pisoFoam/LES/pitzDaily => modules/incompressibleFluid/pitzDailyPulse}/Allrun (100%) rename tutorials/{incompressible/pimpleFoam/laminar => modules/incompressibleFluid}/pitzDailyPulse/constant/momentumTransport (100%) rename tutorials/{incompressible/pimpleFoam/laminar => modules/incompressibleFluid}/pitzDailyPulse/constant/physicalProperties (100%) rename tutorials/{incompressible/pimpleFoam/laminar => modules/incompressibleFluid}/pitzDailyPulse/system/controlDict (94%) rename tutorials/{incompressible/pimpleFoam/laminar => modules/incompressibleFluid}/pitzDailyPulse/system/fvSchemes (100%) rename tutorials/{incompressible/pimpleFoam/laminar => modules/incompressibleFluid}/pitzDailyPulse/system/fvSolution (100%) rename tutorials/{incompressible/simpleFoam/pitzDaily => modules/incompressibleFluid/pitzDailySteady}/0/U (100%) rename tutorials/{incompressible/simpleFoam/pitzDaily => modules/incompressibleFluid/pitzDailySteady}/0/epsilon (100%) rename tutorials/{incompressible/simpleFoam/pitzDaily => modules/incompressibleFluid/pitzDailySteady}/0/f (100%) rename tutorials/{incompressible/simpleFoam/pitzDaily => modules/incompressibleFluid/pitzDailySteady}/0/k (100%) rename tutorials/{incompressible/simpleFoam/pitzDaily => modules/incompressibleFluid/pitzDailySteady}/0/nuTilda (100%) rename tutorials/{incompressible/simpleFoam/pitzDaily => modules/incompressibleFluid/pitzDailySteady}/0/nut (100%) rename tutorials/{incompressible/simpleFoam/pitzDaily => modules/incompressibleFluid/pitzDailySteady}/0/omega (100%) rename tutorials/{incompressible/simpleFoam/pitzDaily => modules/incompressibleFluid/pitzDailySteady}/0/p (100%) rename tutorials/{incompressible/simpleFoam/pitzDaily => modules/incompressibleFluid/pitzDailySteady}/0/v2 (100%) rename tutorials/{incompressible/simpleFoam/pitzDaily => modules/incompressibleFluid/pitzDailySteady}/Allrun (100%) rename tutorials/{incompressible/simpleFoam/pitzDaily => modules/incompressibleFluid/pitzDailySteady}/constant/momentumTransport (100%) rename tutorials/{incompressible/simpleFoam/pitzDaily => modules/incompressibleFluid/pitzDailySteady}/constant/physicalProperties (100%) rename tutorials/{incompressible/simpleFoam/pitzDaily => modules/incompressibleFluid/pitzDailySteady}/system/blockMeshDict (100%) rename tutorials/{incompressible/simpleFoam/pitzDaily => modules/incompressibleFluid/pitzDailySteady}/system/controlDict (95%) rename tutorials/{incompressible/simpleFoam/pitzDaily => modules/incompressibleFluid/pitzDailySteady}/system/fvSchemes (100%) rename tutorials/{incompressible/simpleFoam/pitzDaily => modules/incompressibleFluid/pitzDailySteady}/system/fvSolution (100%) rename tutorials/{incompressible/simpleFoam/pitzDailyExptInlet => modules/incompressibleFluid/pitzDailySteadyExptInlet}/0/U (100%) rename tutorials/{incompressible/simpleFoam/pitzDailyExptInlet => modules/incompressibleFluid/pitzDailySteadyExptInlet}/0/epsilon (100%) rename tutorials/{incompressible/simpleFoam/pitzDailyExptInlet => modules/incompressibleFluid/pitzDailySteadyExptInlet}/0/k (100%) rename tutorials/{incompressible/simpleFoam/pitzDailyExptInlet => modules/incompressibleFluid/pitzDailySteadyExptInlet}/0/nuTilda (100%) rename tutorials/{incompressible/simpleFoam/pitzDailyExptInlet => modules/incompressibleFluid/pitzDailySteadyExptInlet}/0/nut (100%) rename tutorials/{incompressible/simpleFoam/pitzDailyExptInlet => modules/incompressibleFluid/pitzDailySteadyExptInlet}/0/p (100%) rename tutorials/{incompressible/simpleFoam/pitzDailyExptInlet => modules/incompressibleFluid/pitzDailySteadyExptInlet}/Allrun (100%) rename tutorials/{incompressible/simpleFoam/pitzDailyExptInlet => modules/incompressibleFluid/pitzDailySteadyExptInlet}/constant/boundaryData/inlet/0/U (100%) rename tutorials/{incompressible/simpleFoam/pitzDailyExptInlet => modules/incompressibleFluid/pitzDailySteadyExptInlet}/constant/boundaryData/inlet/0/epsilon (100%) rename tutorials/{incompressible/simpleFoam/pitzDailyExptInlet => modules/incompressibleFluid/pitzDailySteadyExptInlet}/constant/boundaryData/inlet/0/k (100%) rename tutorials/{incompressible/simpleFoam/pitzDailyExptInlet => modules/incompressibleFluid/pitzDailySteadyExptInlet}/constant/boundaryData/inlet/points (100%) rename tutorials/{incompressible/simpleFoam/pitzDailyExptInlet => modules/incompressibleFluid/pitzDailySteadyExptInlet}/constant/momentumTransport (100%) rename tutorials/{incompressible/simpleFoam/pitzDailyExptInlet => modules/incompressibleFluid/pitzDailySteadyExptInlet}/constant/physicalProperties (100%) rename tutorials/{incompressible/simpleFoam/pitzDailyExptInlet => modules/incompressibleFluid/pitzDailySteadyExptInlet}/system/controlDict (96%) rename tutorials/{incompressible/simpleFoam/pitzDailyExptInlet => modules/incompressibleFluid/pitzDailySteadyExptInlet}/system/decomposeParDict (100%) rename tutorials/{incompressible/simpleFoam/pitzDailyExptInlet => modules/incompressibleFluid/pitzDailySteadyExptInlet}/system/fvSchemes (100%) rename tutorials/{incompressible/simpleFoam/pitzDailyExptInlet => modules/incompressibleFluid/pitzDailySteadyExptInlet}/system/fvSolution (100%) rename tutorials/{incompressible/pimpleFoam/laminar => modules/incompressibleFluid}/planarContraction/0/U (100%) rename tutorials/{incompressible/pimpleFoam/laminar => modules/incompressibleFluid}/planarContraction/0/p (100%) rename tutorials/{incompressible/pimpleFoam/laminar => modules/incompressibleFluid}/planarContraction/0/sigma (100%) rename tutorials/{incompressible/pimpleFoam/laminar => modules/incompressibleFluid}/planarContraction/constant/momentumTransport (100%) rename tutorials/{incompressible/pimpleFoam/laminar => modules/incompressibleFluid}/planarContraction/constant/physicalProperties (100%) rename tutorials/{incompressible/pimpleFoam/laminar => modules/incompressibleFluid}/planarContraction/system/blockMeshDict (100%) rename tutorials/{incompressible/pimpleFoam/laminar => modules/incompressibleFluid}/planarContraction/system/controlDict (95%) rename tutorials/{incompressible/pimpleFoam/laminar => modules/incompressibleFluid}/planarContraction/system/fvSchemes (100%) rename tutorials/{incompressible/pimpleFoam/laminar => modules/incompressibleFluid}/planarContraction/system/fvSolution (100%) rename tutorials/{incompressible/pimpleFoam/laminar => modules/incompressibleFluid}/planarCouette/0/U (100%) rename tutorials/{incompressible/pimpleFoam/laminar => modules/incompressibleFluid}/planarCouette/0/p (100%) rename tutorials/{incompressible/pimpleFoam/laminar => modules/incompressibleFluid}/planarCouette/0/sigma (100%) rename tutorials/{incompressible/pimpleFoam/laminar => modules/incompressibleFluid}/planarCouette/constant/momentumTransport (100%) rename tutorials/{incompressible/pimpleFoam/laminar => modules/incompressibleFluid}/planarCouette/constant/physicalProperties (100%) rename tutorials/{incompressible/pimpleFoam/laminar => modules/incompressibleFluid}/planarCouette/system/blockMeshDict (100%) rename tutorials/{incompressible/pimpleFoam/laminar => modules/incompressibleFluid}/planarCouette/system/controlDict (94%) rename tutorials/{incompressible/pimpleFoam/laminar => modules/incompressibleFluid}/planarCouette/system/fvSchemes (100%) rename tutorials/{incompressible/pimpleFoam/laminar => modules/incompressibleFluid}/planarCouette/system/fvSolution (100%) rename tutorials/{incompressible/pimpleFoam/laminar => modules/incompressibleFluid}/planarPoiseuille/0/U (100%) rename tutorials/{incompressible/pimpleFoam/laminar => modules/incompressibleFluid}/planarPoiseuille/0/p (100%) rename tutorials/{incompressible/pimpleFoam/laminar => modules/incompressibleFluid}/planarPoiseuille/0/sigma (100%) rename tutorials/{incompressible/pimpleFoam/laminar => modules/incompressibleFluid}/planarPoiseuille/Allclean (100%) rename tutorials/{incompressible/pimpleFoam/laminar => modules/incompressibleFluid}/planarPoiseuille/Allrun (100%) rename tutorials/{incompressible/pimpleFoam/laminar => modules/incompressibleFluid}/planarPoiseuille/constant/fvModels (100%) rename tutorials/{incompressible/pimpleFoam/laminar => modules/incompressibleFluid}/planarPoiseuille/constant/momentumTransport (100%) rename tutorials/{incompressible/pimpleFoam/laminar => modules/incompressibleFluid}/planarPoiseuille/constant/physicalProperties (100%) rename tutorials/{incompressible/pimpleFoam/laminar => modules/incompressibleFluid}/planarPoiseuille/system/blockMeshDict (100%) rename tutorials/{incompressible/pimpleFoam/laminar => modules/incompressibleFluid}/planarPoiseuille/system/controlDict (94%) rename tutorials/{incompressible/pimpleFoam/laminar => modules/incompressibleFluid}/planarPoiseuille/system/fvSchemes (100%) rename tutorials/{incompressible/pimpleFoam/laminar => modules/incompressibleFluid}/planarPoiseuille/system/fvSolution (100%) rename tutorials/{incompressible/pimpleFoam/laminar => modules/incompressibleFluid}/planarPoiseuille/validation/WatersKing/Make/files (100%) rename tutorials/{incompressible/pimpleFoam/laminar => modules/incompressibleFluid}/planarPoiseuille/validation/WatersKing/Make/options (100%) rename tutorials/{incompressible/pimpleFoam/laminar => modules/incompressibleFluid}/planarPoiseuille/validation/WatersKing/WatersKing.C (98%) rename tutorials/{incompressible/pimpleFoam/laminar => modules/incompressibleFluid}/planarPoiseuille/validation/WatersKing/createFields.H (100%) rename tutorials/{incompressible/pimpleFoam/laminar => modules/incompressibleFluid}/planarPoiseuille/validation/createGraph (100%) rename tutorials/{incompressible/pisoFoam/laminar => modules/incompressibleFluid}/porousBlockage/0/U (100%) rename tutorials/{incompressible/pisoFoam/laminar => modules/incompressibleFluid}/porousBlockage/0/p (100%) rename tutorials/{incompressible/pisoFoam/laminar => modules/incompressibleFluid}/porousBlockage/Allrun (100%) rename tutorials/{incompressible/pisoFoam/laminar => modules/incompressibleFluid}/porousBlockage/constant/coordinateSystems (100%) rename tutorials/{incompressible/pisoFoam/laminar => modules/incompressibleFluid}/porousBlockage/constant/fvModels (100%) rename tutorials/{incompressible/pisoFoam/laminar => modules/incompressibleFluid}/porousBlockage/constant/momentumTransport (100%) rename tutorials/{incompressible/pisoFoam/laminar => modules/incompressibleFluid}/porousBlockage/constant/physicalProperties (100%) rename tutorials/{incompressible/pisoFoam/laminar => modules/incompressibleFluid}/porousBlockage/system/blockMeshDict (100%) rename tutorials/{incompressible/pisoFoam/laminar => modules/incompressibleFluid}/porousBlockage/system/controlDict (94%) rename tutorials/{incompressible/pisoFoam/laminar => modules/incompressibleFluid}/porousBlockage/system/fvSchemes (100%) rename tutorials/{incompressible/pisoFoam/laminar => modules/incompressibleFluid}/porousBlockage/system/fvSolution (96%) rename tutorials/{incompressible/pisoFoam/laminar => modules/incompressibleFluid}/porousBlockage/system/topoSetDict (100%) rename tutorials/{incompressible/pimpleFoam/RAS => modules/incompressibleFluid}/propeller/0/U (100%) rename tutorials/{incompressible/pimpleFoam/RAS => modules/incompressibleFluid}/propeller/0/epsilon (100%) rename tutorials/{incompressible/pimpleFoam/RAS => modules/incompressibleFluid}/propeller/0/k (100%) rename tutorials/{incompressible/pimpleFoam/RAS => modules/incompressibleFluid}/propeller/0/nut (100%) rename tutorials/{incompressible/pimpleFoam/RAS => modules/incompressibleFluid}/propeller/0/p (100%) rename tutorials/{incompressible/pimpleFoam/RAS => modules/incompressibleFluid}/propeller/Allclean (100%) rename tutorials/{incompressible/pimpleFoam/RAS => modules/incompressibleFluid}/propeller/Allmesh (100%) rename tutorials/{incompressible/pimpleFoam/RAS => modules/incompressibleFluid}/propeller/Allrun (100%) rename tutorials/{incompressible/pimpleFoam/RAS => modules/incompressibleFluid}/propeller/constant/dynamicMeshDict (100%) rename tutorials/{incompressible/pimpleFoam/RAS => modules/incompressibleFluid}/propeller/constant/geometry/README (100%) rename tutorials/{incompressible/pimpleFoam/RAS => modules/incompressibleFluid}/propeller/constant/momentumTransport (100%) rename tutorials/{incompressible/pimpleFoam/RAS => modules/incompressibleFluid}/propeller/constant/physicalProperties (100%) rename tutorials/{incompressible/pimpleFoam/RAS => modules/incompressibleFluid}/propeller/system/blockMeshDict (100%) rename tutorials/{incompressible/pimpleFoam/RAS => modules/incompressibleFluid}/propeller/system/controlDict (95%) rename tutorials/{incompressible/pimpleFoam/RAS => modules/incompressibleFluid}/propeller/system/createBafflesDict (100%) rename tutorials/{incompressible/pimpleFoam/RAS => modules/incompressibleFluid}/propeller/system/decomposeParDict (100%) rename tutorials/{incompressible/pimpleFoam/RAS => modules/incompressibleFluid}/propeller/system/forces (100%) rename tutorials/{incompressible/pimpleFoam/RAS => modules/incompressibleFluid}/propeller/system/fvSchemes (100%) rename tutorials/{incompressible/pimpleFoam/RAS => modules/incompressibleFluid}/propeller/system/fvSolution (100%) rename tutorials/{incompressible/pimpleFoam/RAS => modules/incompressibleFluid}/propeller/system/snappyHexMeshDict (100%) rename tutorials/{incompressible/pimpleFoam/RAS => modules/incompressibleFluid}/propeller/system/surfaceFeaturesDict (100%) rename tutorials/{incompressible/pimpleFoam/RAS => modules/incompressibleFluid}/propeller/system/surfaces (100%) rename tutorials/{incompressible/simpleFoam => modules/incompressibleFluid}/roomResidenceTime/0/U (100%) rename tutorials/{incompressible/simpleFoam => modules/incompressibleFluid}/roomResidenceTime/0/epsilon (100%) rename tutorials/{incompressible/simpleFoam => modules/incompressibleFluid}/roomResidenceTime/0/k (100%) rename tutorials/{incompressible/simpleFoam => modules/incompressibleFluid}/roomResidenceTime/0/nut (100%) rename tutorials/{incompressible/simpleFoam => modules/incompressibleFluid}/roomResidenceTime/0/p (100%) rename tutorials/{incompressible/simpleFoam => modules/incompressibleFluid}/roomResidenceTime/Allclean (100%) rename tutorials/{incompressible/simpleFoam => modules/incompressibleFluid}/roomResidenceTime/Allrun (84%) rename tutorials/{incompressible/simpleFoam => modules/incompressibleFluid}/roomResidenceTime/constant/momentumTransport (100%) rename tutorials/{incompressible/simpleFoam => modules/incompressibleFluid}/roomResidenceTime/constant/physicalProperties (100%) rename tutorials/{incompressible/simpleFoam => modules/incompressibleFluid}/roomResidenceTime/system/blockMeshDict (100%) rename tutorials/{incompressible/simpleFoam => modules/incompressibleFluid}/roomResidenceTime/system/controlDict (94%) rename tutorials/{incompressible/simpleFoam => modules/incompressibleFluid}/roomResidenceTime/system/fvSchemes (100%) rename tutorials/{incompressible/simpleFoam => modules/incompressibleFluid}/roomResidenceTime/system/fvSolution (100%) rename tutorials/{incompressible/simpleFoam => modules/incompressibleFluid}/roomResidenceTime/system/probes1 (100%) rename tutorials/{incompressible/simpleFoam => modules/incompressibleFluid}/roomResidenceTime/system/probes2 (100%) rename tutorials/{incompressible/simpleFoam => modules/incompressibleFluid}/roomResidenceTime/validation/Allclean (100%) rename tutorials/{incompressible/simpleFoam => modules/incompressibleFluid}/roomResidenceTime/validation/Allrun (100%) rename tutorials/{incompressible/simpleFoam => modules/incompressibleFluid}/roomResidenceTime/validation/measurement_Pos1 (100%) rename tutorials/{incompressible/simpleFoam => modules/incompressibleFluid}/roomResidenceTime/validation/measurement_Pos2 (100%) rename tutorials/{incompressible/simpleFoam => modules/incompressibleFluid}/roomResidenceTime/validation/plotPos1Data.gplt (100%) rename tutorials/{incompressible/simpleFoam => modules/incompressibleFluid}/roomResidenceTime/validation/plotPos2Data.gplt (100%) rename tutorials/{incompressible/simpleFoam => modules/incompressibleFluid}/rotorDisk/0/U (100%) rename tutorials/{incompressible/simpleFoam => modules/incompressibleFluid}/rotorDisk/0/k (100%) rename tutorials/{incompressible/simpleFoam => modules/incompressibleFluid}/rotorDisk/0/nut (100%) rename tutorials/{incompressible/simpleFoam => modules/incompressibleFluid}/rotorDisk/0/omega (100%) rename tutorials/{incompressible/simpleFoam => modules/incompressibleFluid}/rotorDisk/0/p (100%) rename tutorials/{incompressible/simpleFoam => modules/incompressibleFluid}/rotorDisk/Allclean (100%) rename tutorials/{incompressible/simpleFoam => modules/incompressibleFluid}/rotorDisk/Allrun (100%) rename tutorials/{incompressible/simpleFoam => modules/incompressibleFluid}/rotorDisk/constant/fvModels (100%) rename tutorials/{incompressible/simpleFoam => modules/incompressibleFluid}/rotorDisk/constant/geometry/fixed.obj (100%) rename tutorials/{incompressible/simpleFoam => modules/incompressibleFluid}/rotorDisk/constant/geometry/rotatingZone.obj (100%) rename tutorials/{incompressible/simpleFoam => modules/incompressibleFluid}/rotorDisk/constant/momentumTransport (100%) rename tutorials/{incompressible/simpleFoam => modules/incompressibleFluid}/rotorDisk/constant/physicalProperties (100%) rename tutorials/{incompressible/simpleFoam => modules/incompressibleFluid}/rotorDisk/system/blockMeshDict (100%) rename tutorials/{incompressible/simpleFoam => modules/incompressibleFluid}/rotorDisk/system/controlDict (93%) rename tutorials/{incompressible/simpleFoam => modules/incompressibleFluid}/rotorDisk/system/fvSchemes (100%) rename tutorials/{incompressible/simpleFoam => modules/incompressibleFluid}/rotorDisk/system/fvSolution (100%) rename tutorials/{incompressible/simpleFoam => modules/incompressibleFluid}/rotorDisk/system/meshQualityDict (100%) rename tutorials/{incompressible/simpleFoam => modules/incompressibleFluid}/rotorDisk/system/snappyHexMeshDict (100%) rename tutorials/{incompressible/simpleFoam => modules/incompressibleFluid}/rotorDisk/system/surfaceFeaturesDict (100%) rename tutorials/{incompressible/simpleFoam => modules/incompressibleFluid}/turbineSiting/0/U (100%) rename tutorials/{incompressible/simpleFoam => modules/incompressibleFluid}/turbineSiting/0/epsilon (100%) rename tutorials/{incompressible/simpleFoam => modules/incompressibleFluid}/turbineSiting/0/include/ABLConditions (100%) rename tutorials/{incompressible/pisoFoam/LES/motorBike/motorBike => modules/incompressibleFluid/turbineSiting}/0/include/fixedInlet (100%) rename tutorials/{incompressible/simpleFoam => modules/incompressibleFluid}/turbineSiting/0/include/initialConditions (100%) rename tutorials/{incompressible/simpleFoam => modules/incompressibleFluid}/turbineSiting/0/include/sideAndTopPatches (100%) rename tutorials/{incompressible/simpleFoam => modules/incompressibleFluid}/turbineSiting/0/k (100%) rename tutorials/{incompressible/simpleFoam => modules/incompressibleFluid}/turbineSiting/0/nut (100%) rename tutorials/{incompressible/simpleFoam => modules/incompressibleFluid}/turbineSiting/0/p (100%) rename tutorials/{incompressible/simpleFoam => modules/incompressibleFluid}/turbineSiting/Allrun (100%) rename tutorials/{incompressible/simpleFoam => modules/incompressibleFluid}/turbineSiting/constant/fvModels (100%) rename tutorials/{incompressible/simpleFoam => modules/incompressibleFluid}/turbineSiting/constant/geometry/terrain.stl (100%) rename tutorials/{incompressible/simpleFoam => modules/incompressibleFluid}/turbineSiting/constant/momentumTransport (100%) rename tutorials/{incompressible/simpleFoam => modules/incompressibleFluid}/turbineSiting/constant/physicalProperties (100%) rename tutorials/{incompressible/simpleFoam => modules/incompressibleFluid}/turbineSiting/system/blockMeshDict (100%) rename tutorials/{incompressible/simpleFoam => modules/incompressibleFluid}/turbineSiting/system/controlDict (94%) rename tutorials/{incompressible/simpleFoam => modules/incompressibleFluid}/turbineSiting/system/decomposeParDict (100%) rename tutorials/{incompressible/simpleFoam => modules/incompressibleFluid}/turbineSiting/system/fvSchemes (100%) rename tutorials/{incompressible/simpleFoam => modules/incompressibleFluid}/turbineSiting/system/fvSolution (100%) rename tutorials/{incompressible/simpleFoam => modules/incompressibleFluid}/turbineSiting/system/snappyHexMeshDict (100%) rename tutorials/{incompressible/simpleFoam => modules/incompressibleFluid}/turbineSiting/system/topoSetDict (100%) rename tutorials/{incompressible/pimpleFoam/RAS => modules/incompressibleFluid}/waveSubSurface/0/U.orig (100%) rename tutorials/{incompressible/pimpleFoam/RAS => modules/incompressibleFluid}/waveSubSurface/0/alpha.orig (100%) rename tutorials/{incompressible/pimpleFoam/RAS => modules/incompressibleFluid}/waveSubSurface/0/epsilon (100%) rename tutorials/{incompressible/pimpleFoam/RAS => modules/incompressibleFluid}/waveSubSurface/0/k (100%) rename tutorials/{incompressible/pimpleFoam/RAS => modules/incompressibleFluid}/waveSubSurface/0/nut (100%) rename tutorials/{incompressible/pimpleFoam/RAS => modules/incompressibleFluid}/waveSubSurface/0/p (100%) rename tutorials/{incompressible/pimpleFoam/RAS => modules/incompressibleFluid}/waveSubSurface/Allrun (100%) rename tutorials/{incompressible/pimpleFoam/RAS => modules/incompressibleFluid}/waveSubSurface/constant/g (100%) rename tutorials/{incompressible/pimpleFoam/RAS => modules/incompressibleFluid}/waveSubSurface/constant/momentumTransport (100%) rename tutorials/{incompressible/pimpleFoam/RAS => modules/incompressibleFluid}/waveSubSurface/constant/physicalProperties (100%) rename tutorials/{incompressible/pimpleFoam/RAS => modules/incompressibleFluid}/waveSubSurface/constant/waveProperties (100%) rename tutorials/{incompressible/pimpleFoam/RAS => modules/incompressibleFluid}/waveSubSurface/system/blockMeshDict (100%) rename tutorials/{incompressible/pimpleFoam/RAS => modules/incompressibleFluid}/waveSubSurface/system/controlDict (94%) rename tutorials/{incompressible/pimpleFoam/RAS => modules/incompressibleFluid}/waveSubSurface/system/decomposeParDict (100%) rename tutorials/{incompressible/pimpleFoam/RAS => modules/incompressibleFluid}/waveSubSurface/system/fvSchemes (100%) rename tutorials/{incompressible/pimpleFoam/RAS => modules/incompressibleFluid}/waveSubSurface/system/fvSolution (100%) rename tutorials/{incompressible/pimpleFoam/RAS => modules/incompressibleFluid}/waveSubSurface/system/setWavesDict (100%) rename tutorials/{incompressible/simpleFoam => modules/incompressibleFluid}/windAroundBuildings/0/U (100%) rename tutorials/{incompressible/simpleFoam => modules/incompressibleFluid}/windAroundBuildings/0/epsilon (100%) rename tutorials/{incompressible/simpleFoam => modules/incompressibleFluid}/windAroundBuildings/0/k (100%) rename tutorials/{incompressible/simpleFoam => modules/incompressibleFluid}/windAroundBuildings/0/nut (100%) rename tutorials/{incompressible/simpleFoam => modules/incompressibleFluid}/windAroundBuildings/0/p (100%) rename tutorials/{incompressible/simpleFoam => modules/incompressibleFluid}/windAroundBuildings/Allclean (100%) rename tutorials/{incompressible/simpleFoam => modules/incompressibleFluid}/windAroundBuildings/Allrun (100%) rename tutorials/{incompressible/simpleFoam => modules/incompressibleFluid}/windAroundBuildings/constant/geometry/buildings.obj.gz (100%) rename tutorials/{incompressible/simpleFoam => modules/incompressibleFluid}/windAroundBuildings/constant/momentumTransport (100%) rename tutorials/{incompressible/simpleFoam => modules/incompressibleFluid}/windAroundBuildings/constant/physicalProperties (100%) rename tutorials/{incompressible/simpleFoam => modules/incompressibleFluid}/windAroundBuildings/system/blockMeshDict (100%) rename tutorials/{incompressible/simpleFoam => modules/incompressibleFluid}/windAroundBuildings/system/controlDict (94%) rename tutorials/{incompressible/simpleFoam => modules/incompressibleFluid}/windAroundBuildings/system/fvSchemes (100%) rename tutorials/{incompressible/simpleFoam => modules/incompressibleFluid}/windAroundBuildings/system/fvSolution (100%) rename tutorials/{incompressible/simpleFoam => modules/incompressibleFluid}/windAroundBuildings/system/meshQualityDict (100%) rename tutorials/{incompressible/simpleFoam => modules/incompressibleFluid}/windAroundBuildings/system/snappyHexMeshDict (100%) rename tutorials/{incompressible/simpleFoam => modules/incompressibleFluid}/windAroundBuildings/system/surfaceFeaturesDict (100%) rename tutorials/{incompressible/pimpleFoam/RAS => modules/incompressibleFluid}/wingMotion/Allclean (84%) rename tutorials/{incompressible/pimpleFoam/RAS => modules/incompressibleFluid}/wingMotion/Allrun (75%) rename tutorials/{incompressible/pimpleFoam/RAS/wingMotion/wingMotion2D_simpleFoam => modules/incompressibleFluid/wingMotion/wingMotion2D_steady}/0/U (100%) rename tutorials/{incompressible/simpleFoam/motorBike => modules/incompressibleFluid/wingMotion/wingMotion2D_steady}/0/include/fixedInlet (100%) rename tutorials/{incompressible/pimpleFoam/RAS/wingMotion/wingMotion2D_pimpleFoam => modules/incompressibleFluid/wingMotion/wingMotion2D_steady}/0/include/frontBackTopBottomPatches (100%) rename tutorials/{incompressible/pimpleFoam/RAS/wingMotion/wingMotion2D_pimpleFoam => modules/incompressibleFluid/wingMotion/wingMotion2D_steady}/0/include/initialConditions (100%) rename tutorials/{incompressible/pimpleFoam/RAS/wingMotion/wingMotion2D_simpleFoam => modules/incompressibleFluid/wingMotion/wingMotion2D_steady}/0/k (100%) rename tutorials/{incompressible/pimpleFoam/RAS/wingMotion/wingMotion2D_simpleFoam => modules/incompressibleFluid/wingMotion/wingMotion2D_steady}/0/nut (100%) rename tutorials/{incompressible/pimpleFoam/RAS/wingMotion/wingMotion2D_simpleFoam => modules/incompressibleFluid/wingMotion/wingMotion2D_steady}/0/omega (100%) rename tutorials/{incompressible/pimpleFoam/RAS/wingMotion/wingMotion2D_simpleFoam => modules/incompressibleFluid/wingMotion/wingMotion2D_steady}/0/p (100%) rename tutorials/{incompressible/pimpleFoam/RAS/wingMotion/wingMotion2D_simpleFoam => modules/incompressibleFluid/wingMotion/wingMotion2D_steady}/constant/momentumTransport (100%) rename tutorials/{incompressible/pimpleFoam/RAS/wingMotion/wingMotion2D_pimpleFoam => modules/incompressibleFluid/wingMotion/wingMotion2D_steady}/constant/physicalProperties (100%) rename tutorials/{incompressible/pimpleFoam/RAS/wingMotion/wingMotion2D_simpleFoam => modules/incompressibleFluid/wingMotion/wingMotion2D_steady}/system/controlDict (95%) rename tutorials/{incompressible/pimpleFoam/RAS/wingMotion/wingMotion2D_simpleFoam => modules/incompressibleFluid/wingMotion/wingMotion2D_steady}/system/createPatchDict (100%) rename tutorials/{incompressible/pimpleFoam/RAS/wingMotion/wingMotion2D_simpleFoam => modules/incompressibleFluid/wingMotion/wingMotion2D_steady}/system/extrudeMeshDict (100%) rename tutorials/{incompressible/pimpleFoam/RAS/wingMotion/wingMotion2D_simpleFoam => modules/incompressibleFluid/wingMotion/wingMotion2D_steady}/system/fvSchemes (100%) rename tutorials/{incompressible/pimpleFoam/RAS/wingMotion/wingMotion2D_simpleFoam => modules/incompressibleFluid/wingMotion/wingMotion2D_steady}/system/fvSolution (97%) rename tutorials/{incompressible/simpleFoam/turbineSiting => modules/incompressibleFluid/wingMotion/wingMotion2D_transient}/0/include/fixedInlet (100%) rename tutorials/{incompressible/pimpleFoam/RAS/wingMotion/wingMotion2D_simpleFoam => modules/incompressibleFluid/wingMotion/wingMotion2D_transient}/0/include/frontBackTopBottomPatches (100%) rename tutorials/{incompressible/pimpleFoam/RAS/wingMotion/wingMotion2D_simpleFoam => modules/incompressibleFluid/wingMotion/wingMotion2D_transient}/0/include/initialConditions (100%) rename tutorials/{incompressible/pimpleFoam/RAS/wingMotion/wingMotion2D_pimpleFoam => modules/incompressibleFluid/wingMotion/wingMotion2D_transient}/constant/dynamicMeshDict (100%) rename tutorials/{incompressible/pimpleFoam/RAS/wingMotion/wingMotion2D_pimpleFoam => modules/incompressibleFluid/wingMotion/wingMotion2D_transient}/constant/momentumTransport (100%) rename tutorials/{incompressible/pimpleFoam/RAS/wingMotion/wingMotion2D_simpleFoam => modules/incompressibleFluid/wingMotion/wingMotion2D_transient}/constant/physicalProperties (100%) rename tutorials/{incompressible/pimpleFoam/RAS/wingMotion/wingMotion2D_pimpleFoam => modules/incompressibleFluid/wingMotion/wingMotion2D_transient}/pointDisplacement (100%) rename tutorials/{incompressible/pimpleFoam/RAS/wingMotion/wingMotion2D_pimpleFoam => modules/incompressibleFluid/wingMotion/wingMotion2D_transient}/system/controlDict (95%) rename tutorials/{incompressible/pimpleFoam/RAS/wingMotion/wingMotion2D_pimpleFoam => modules/incompressibleFluid/wingMotion/wingMotion2D_transient}/system/decomposeParDict (100%) rename tutorials/{incompressible/pimpleFoam/RAS/wingMotion/wingMotion2D_pimpleFoam => modules/incompressibleFluid/wingMotion/wingMotion2D_transient}/system/fvSchemes (100%) rename tutorials/{incompressible/pimpleFoam/RAS/wingMotion/wingMotion2D_pimpleFoam => modules/incompressibleFluid/wingMotion/wingMotion2D_transient}/system/fvSolution (100%) rename tutorials/{incompressible/pimpleFoam/RAS => modules/incompressibleFluid}/wingMotion/wingMotion_snappyHexMesh/constant/geometry/wing_5degrees.obj (100%) rename tutorials/{incompressible/pimpleFoam/RAS => modules/incompressibleFluid}/wingMotion/wingMotion_snappyHexMesh/system/blockMeshDict (100%) rename tutorials/{incompressible/pimpleFoam/RAS => modules/incompressibleFluid}/wingMotion/wingMotion_snappyHexMesh/system/controlDict (100%) rename tutorials/{incompressible/pimpleFoam/RAS => modules/incompressibleFluid}/wingMotion/wingMotion_snappyHexMesh/system/decomposeParDict (100%) rename tutorials/{incompressible/pimpleFoam/RAS => modules/incompressibleFluid}/wingMotion/wingMotion_snappyHexMesh/system/fvSchemes (100%) rename tutorials/{incompressible/pimpleFoam/RAS => modules/incompressibleFluid}/wingMotion/wingMotion_snappyHexMesh/system/fvSolution (99%) rename tutorials/{incompressible/pimpleFoam/RAS => modules/incompressibleFluid}/wingMotion/wingMotion_snappyHexMesh/system/snappyHexMeshDict (100%) diff --git a/applications/solvers/incompressible/pimpleFoam/SRFPimpleFoam/Make/files b/applications/solvers/incompressible/SRFPimpleFoam/Make/files similarity index 100% rename from applications/solvers/incompressible/pimpleFoam/SRFPimpleFoam/Make/files rename to applications/solvers/incompressible/SRFPimpleFoam/Make/files diff --git a/applications/solvers/incompressible/pisoFoam/Make/options b/applications/solvers/incompressible/SRFPimpleFoam/Make/options similarity index 100% rename from applications/solvers/incompressible/pisoFoam/Make/options rename to applications/solvers/incompressible/SRFPimpleFoam/Make/options diff --git a/applications/solvers/incompressible/pimpleFoam/SRFPimpleFoam/SRFPimpleFoam.C b/applications/solvers/incompressible/SRFPimpleFoam/SRFPimpleFoam.C similarity index 98% rename from applications/solvers/incompressible/pimpleFoam/SRFPimpleFoam/SRFPimpleFoam.C rename to applications/solvers/incompressible/SRFPimpleFoam/SRFPimpleFoam.C index 0749e5def6..78f753de8b 100644 --- a/applications/solvers/incompressible/pimpleFoam/SRFPimpleFoam/SRFPimpleFoam.C +++ b/applications/solvers/incompressible/SRFPimpleFoam/SRFPimpleFoam.C @@ -2,7 +2,7 @@ ========= | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | Website: https://openfoam.org - \\ / A nd | Copyright (C) 2011-2021 OpenFOAM Foundation + \\ / A nd | Copyright (C) 2011-2022 OpenFOAM Foundation \\/ M anipulation | ------------------------------------------------------------------------------- License diff --git a/applications/solvers/incompressible/pimpleFoam/SRFPimpleFoam/UrelEqn.H b/applications/solvers/incompressible/SRFPimpleFoam/UrelEqn.H similarity index 100% rename from applications/solvers/incompressible/pimpleFoam/SRFPimpleFoam/UrelEqn.H rename to applications/solvers/incompressible/SRFPimpleFoam/UrelEqn.H diff --git a/applications/solvers/incompressible/pimpleFoam/SRFPimpleFoam/createFields.H b/applications/solvers/incompressible/SRFPimpleFoam/createFields.H similarity index 100% rename from applications/solvers/incompressible/pimpleFoam/SRFPimpleFoam/createFields.H rename to applications/solvers/incompressible/SRFPimpleFoam/createFields.H diff --git a/applications/solvers/incompressible/pimpleFoam/SRFPimpleFoam/pEqn.H b/applications/solvers/incompressible/SRFPimpleFoam/pEqn.H similarity index 100% rename from applications/solvers/incompressible/pimpleFoam/SRFPimpleFoam/pEqn.H rename to applications/solvers/incompressible/SRFPimpleFoam/pEqn.H diff --git a/applications/solvers/incompressible/simpleFoam/SRFSimpleFoam/Make/files b/applications/solvers/incompressible/SRFSimpleFoam/Make/files similarity index 100% rename from applications/solvers/incompressible/simpleFoam/SRFSimpleFoam/Make/files rename to applications/solvers/incompressible/SRFSimpleFoam/Make/files diff --git a/applications/solvers/incompressible/simpleFoam/SRFSimpleFoam/Make/options b/applications/solvers/incompressible/SRFSimpleFoam/Make/options similarity index 97% rename from applications/solvers/incompressible/simpleFoam/SRFSimpleFoam/Make/options rename to applications/solvers/incompressible/SRFSimpleFoam/Make/options index 16e116de85..d138c73b43 100644 --- a/applications/solvers/incompressible/simpleFoam/SRFSimpleFoam/Make/options +++ b/applications/solvers/incompressible/SRFSimpleFoam/Make/options @@ -1,5 +1,4 @@ EXE_INC = \ - -I.. \ -I$(LIB_SRC)/MomentumTransportModels/momentumTransportModels/lnInclude \ -I$(LIB_SRC)/MomentumTransportModels/incompressible/lnInclude \ -I$(LIB_SRC)/physicalProperties/lnInclude \ @@ -7,7 +6,6 @@ EXE_INC = \ -I$(LIB_SRC)/meshTools/lnInclude \ -I$(LIB_SRC)/sampling/lnInclude - EXE_LIBS = \ -lmomentumTransportModels \ -lincompressibleMomentumTransportModels \ diff --git a/applications/solvers/incompressible/simpleFoam/SRFSimpleFoam/SRFSimpleFoam.C b/applications/solvers/incompressible/SRFSimpleFoam/SRFSimpleFoam.C similarity index 97% rename from applications/solvers/incompressible/simpleFoam/SRFSimpleFoam/SRFSimpleFoam.C rename to applications/solvers/incompressible/SRFSimpleFoam/SRFSimpleFoam.C index 0ce8f52de9..5d90a8e01b 100644 --- a/applications/solvers/incompressible/simpleFoam/SRFSimpleFoam/SRFSimpleFoam.C +++ b/applications/solvers/incompressible/SRFSimpleFoam/SRFSimpleFoam.C @@ -2,7 +2,7 @@ ========= | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | Website: https://openfoam.org - \\ / A nd | Copyright (C) 2011-2021 OpenFOAM Foundation + \\ / A nd | Copyright (C) 2011-2022 OpenFOAM Foundation \\/ M anipulation | ------------------------------------------------------------------------------- License diff --git a/applications/solvers/incompressible/simpleFoam/SRFSimpleFoam/UrelEqn.H b/applications/solvers/incompressible/SRFSimpleFoam/UrelEqn.H similarity index 100% rename from applications/solvers/incompressible/simpleFoam/SRFSimpleFoam/UrelEqn.H rename to applications/solvers/incompressible/SRFSimpleFoam/UrelEqn.H diff --git a/applications/solvers/incompressible/simpleFoam/SRFSimpleFoam/createFields.H b/applications/solvers/incompressible/SRFSimpleFoam/createFields.H similarity index 100% rename from applications/solvers/incompressible/simpleFoam/SRFSimpleFoam/createFields.H rename to applications/solvers/incompressible/SRFSimpleFoam/createFields.H diff --git a/applications/solvers/incompressible/simpleFoam/SRFSimpleFoam/pEqn.H b/applications/solvers/incompressible/SRFSimpleFoam/pEqn.H similarity index 100% rename from applications/solvers/incompressible/simpleFoam/SRFSimpleFoam/pEqn.H rename to applications/solvers/incompressible/SRFSimpleFoam/pEqn.H diff --git a/applications/solvers/incompressible/pimpleFoam/Make/files b/applications/solvers/incompressible/pimpleFoam/Make/files deleted file mode 100644 index f4ec4391df..0000000000 --- a/applications/solvers/incompressible/pimpleFoam/Make/files +++ /dev/null @@ -1,3 +0,0 @@ -pimpleFoam.C - -EXE = $(FOAM_APPBIN)/pimpleFoam diff --git a/applications/solvers/incompressible/pimpleFoam/UEqn.H b/applications/solvers/incompressible/pimpleFoam/UEqn.H deleted file mode 100644 index 0201cbecce..0000000000 --- a/applications/solvers/incompressible/pimpleFoam/UEqn.H +++ /dev/null @@ -1,24 +0,0 @@ -// Solve the Momentum equation - -MRF.correctBoundaryVelocity(U); - -tmp tUEqn -( - fvm::ddt(U) + fvm::div(phi, U) - + MRF.DDt(U) - + turbulence->divDevSigma(U) - == - fvModels.source(U) -); -fvVectorMatrix& UEqn = tUEqn.ref(); - -UEqn.relax(); - -fvConstraints.constrain(UEqn); - -if (pimple.momentumPredictor()) -{ - solve(UEqn == -fvc::grad(p)); - - fvConstraints.constrain(U); -} diff --git a/applications/solvers/incompressible/pimpleFoam/correctPhi.H b/applications/solvers/incompressible/pimpleFoam/correctPhi.H deleted file mode 100644 index 589abc0d52..0000000000 --- a/applications/solvers/incompressible/pimpleFoam/correctPhi.H +++ /dev/null @@ -1,21 +0,0 @@ -// Calculate absolute flux -// from the mapped surface velocity -phi = mesh.Sf() & Uf(); - -correctUphiBCs(U, phi, true); - -CorrectPhi -( - phi, - U, - p, - dimensionedScalar("rAUf", dimTime, 1), - geometricZeroField(), - pressureReference, - pimple -); - -#include "continuityErrs.H" - -// Make the flux relative to the mesh motion -fvc::makeRelative(phi, U); diff --git a/applications/solvers/incompressible/pimpleFoam/createFields.H b/applications/solvers/incompressible/pimpleFoam/createFields.H deleted file mode 100644 index 6565b06495..0000000000 --- a/applications/solvers/incompressible/pimpleFoam/createFields.H +++ /dev/null @@ -1,47 +0,0 @@ -#include "createRDeltaT.H" - -Info<< "Reading field p\n" << endl; -volScalarField p -( - IOobject - ( - "p", - runTime.timeName(), - mesh, - IOobject::MUST_READ, - IOobject::AUTO_WRITE - ), - mesh -); - -Info<< "Reading field U\n" << endl; -volVectorField U -( - IOobject - ( - "U", - runTime.timeName(), - mesh, - IOobject::MUST_READ, - IOobject::AUTO_WRITE - ), - mesh -); - -#include "createPhi.H" - -pressureReference pressureReference(p, pimple.dict()); - -mesh.schemes().setFluxRequired(p.name()); - - -autoPtr viscosity(viscosityModel::New(mesh)); - -autoPtr turbulence -( - incompressible::momentumTransportModel::New(U, phi, viscosity) -); - -#include "createMRF.H" -#include "createFvModels.H" -#include "createFvConstraints.H" diff --git a/applications/solvers/incompressible/pimpleFoam/pEqn.H b/applications/solvers/incompressible/pimpleFoam/pEqn.H deleted file mode 100644 index a65c28f637..0000000000 --- a/applications/solvers/incompressible/pimpleFoam/pEqn.H +++ /dev/null @@ -1,72 +0,0 @@ -volScalarField rAU(1.0/UEqn.A()); -volVectorField HbyA(constrainHbyA(rAU*UEqn.H(), U, p)); -surfaceScalarField phiHbyA -( - "phiHbyA", - fvc::flux(HbyA) - + MRF.zeroFilter(fvc::interpolate(rAU)*fvc::ddtCorr(U, phi, Uf)) -); - -MRF.makeRelative(phiHbyA); - -if (p.needReference()) -{ - fvc::makeRelative(phiHbyA, U); - adjustPhi(phiHbyA, U, p); - fvc::makeAbsolute(phiHbyA, U); -} - -tmp rAtU(rAU); - -if (pimple.consistent()) -{ - rAtU = 1.0/max(1.0/rAU - UEqn.H1(), 0.1/rAU); - phiHbyA += - fvc::interpolate(rAtU() - rAU)*fvc::snGrad(p)*mesh.magSf(); - HbyA -= (rAU - rAtU())*fvc::grad(p); -} - -if (pimple.nCorrPiso() <= 1) -{ - tUEqn.clear(); -} - -// Update the pressure BCs to ensure flux consistency -constrainPressure(p, U, phiHbyA, rAtU(), MRF); - -// Non-orthogonal pressure corrector loop -while (pimple.correctNonOrthogonal()) -{ - fvScalarMatrix pEqn - ( - fvm::laplacian(rAtU(), p) == fvc::div(phiHbyA) - ); - - pEqn.setReference - ( - pressureReference.refCell(), - pressureReference.refValue() - ); - - pEqn.solve(); - - if (pimple.finalNonOrthogonalIter()) - { - phi = phiHbyA - pEqn.flux(); - } -} - -#include "continuityErrs.H" - -// Explicitly relax pressure for momentum corrector -p.relax(); - -U = HbyA - rAtU*fvc::grad(p); -U.correctBoundaryConditions(); -fvConstraints.constrain(U); - -// Correct Uf if the mesh is moving -fvc::correctUf(Uf, U, phi, MRF); - -// Make the fluxes relative to the mesh motion -fvc::makeRelative(phi, U); diff --git a/applications/solvers/incompressible/pimpleFoam/pimpleFoam.C b/applications/solvers/incompressible/pimpleFoam/pimpleFoam.C deleted file mode 100644 index 570e2fae01..0000000000 --- a/applications/solvers/incompressible/pimpleFoam/pimpleFoam.C +++ /dev/null @@ -1,149 +0,0 @@ -/*---------------------------------------------------------------------------*\ - ========= | - \\ / F ield | OpenFOAM: The Open Source CFD Toolbox - \\ / O peration | Website: https://openfoam.org - \\ / A nd | Copyright (C) 2011-2022 OpenFOAM Foundation - \\/ M anipulation | -------------------------------------------------------------------------------- -License - This file is part of OpenFOAM. - - OpenFOAM is free software: you can redistribute it and/or modify it - under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - OpenFOAM is distributed in the hope that it will be useful, but WITHOUT - ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - for more details. - - You should have received a copy of the GNU General Public License - along with OpenFOAM. If not, see . - -Application - pimpleFoam - -Description - Transient solver for incompressible, turbulent flow of Newtonian fluids, - with optional mesh motion and mesh topology changes. - - Turbulence modelling is generic, i.e. laminar, RAS or LES may be selected. - -\*---------------------------------------------------------------------------*/ - -#include "fvCFD.H" -#include "viscosityModel.H" -#include "incompressibleMomentumTransportModels.H" -#include "pimpleControl.H" -#include "pressureReference.H" -#include "CorrectPhi.H" -#include "fvModels.H" -#include "fvConstraints.H" -#include "localEulerDdtScheme.H" -#include "fvcSmooth.H" - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -int main(int argc, char *argv[]) -{ - #include "postProcess.H" - - #include "setRootCaseLists.H" - #include "createTime.H" - #include "createMesh.H" - #include "initContinuityErrs.H" - #include "createDyMControls.H" - #include "createFields.H" - #include "createUfIfPresent.H" - - turbulence->validate(); - - if (!LTS) - { - #include "CourantNo.H" - #include "setInitialDeltaT.H" - } - - // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - - Info<< "\nStarting time loop\n" << endl; - - while (pimple.run(runTime)) - { - #include "readDyMControls.H" - - if (LTS) - { - #include "setRDeltaT.H" - } - else - { - #include "CourantNo.H" - #include "setDeltaT.H" - } - - fvModels.preUpdateMesh(); - - // Update the mesh for topology change, mesh to mesh mapping - mesh.update(); - - runTime++; - - Info<< "Time = " << runTime.userTimeName() << nl << endl; - - // --- Pressure-velocity PIMPLE corrector loop - while (pimple.loop()) - { - if (pimple.firstPimpleIter() || pimple.moveMeshOuterCorrectors()) - { - // Move the mesh - mesh.move(); - - if (mesh.changing()) - { - MRF.update(); - - if (correctPhi) - { - #include "correctPhi.H" - } - - if (checkMeshCourantNo) - { - #include "meshCourantNo.H" - } - } - } - - fvModels.correct(); - - #include "UEqn.H" - - // --- Pressure corrector loop - while (pimple.correct()) - { - #include "pEqn.H" - } - - if (pimple.turbCorr()) - { - viscosity->correct(); - turbulence->correct(); - } - } - - runTime.write(); - - Info<< "ExecutionTime = " << runTime.elapsedCpuTime() << " s" - << " ClockTime = " << runTime.elapsedClockTime() << " s" - << nl << endl; - } - - Info<< "End\n" << endl; - - return 0; -} - - -// ************************************************************************* // diff --git a/applications/solvers/incompressible/pisoFoam/Make/files b/applications/solvers/incompressible/pisoFoam/Make/files deleted file mode 100644 index d9fdfd28ce..0000000000 --- a/applications/solvers/incompressible/pisoFoam/Make/files +++ /dev/null @@ -1,3 +0,0 @@ -pisoFoam.C - -EXE = $(FOAM_APPBIN)/pisoFoam diff --git a/applications/solvers/incompressible/pisoFoam/UEqn.H b/applications/solvers/incompressible/pisoFoam/UEqn.H deleted file mode 100644 index 45e6beb60a..0000000000 --- a/applications/solvers/incompressible/pisoFoam/UEqn.H +++ /dev/null @@ -1,23 +0,0 @@ -// Solve the Momentum equation - -MRF.correctBoundaryVelocity(U); - -fvVectorMatrix UEqn -( - fvm::ddt(U) + fvm::div(phi, U) - + MRF.DDt(U) - + turbulence->divDevSigma(U) - == - fvModels.source(U) -); - -UEqn.relax(); - -fvConstraints.constrain(UEqn); - -if (piso.momentumPredictor()) -{ - solve(UEqn == -fvc::grad(p)); - - fvConstraints.constrain(U); -} diff --git a/applications/solvers/incompressible/pisoFoam/pEqn.H b/applications/solvers/incompressible/pisoFoam/pEqn.H deleted file mode 100644 index e3199d3ef0..0000000000 --- a/applications/solvers/incompressible/pisoFoam/pEqn.H +++ /dev/null @@ -1,45 +0,0 @@ -volScalarField rAU(1.0/UEqn.A()); -volVectorField HbyA(constrainHbyA(rAU*UEqn.H(), U, p)); -surfaceScalarField phiHbyA -( - "phiHbyA", - fvc::flux(HbyA) - + MRF.zeroFilter(fvc::interpolate(rAU)*fvc::ddtCorr(U, phi)) -); - -MRF.makeRelative(phiHbyA); - -adjustPhi(phiHbyA, U, p); - -// Update the pressure BCs to ensure flux consistency -constrainPressure(p, U, phiHbyA, rAU, MRF); - -// Non-orthogonal pressure corrector loop -while (piso.correctNonOrthogonal()) -{ - // Pressure corrector - - fvScalarMatrix pEqn - ( - fvm::laplacian(rAU, p) == fvc::div(phiHbyA) - ); - - pEqn.setReference - ( - pressureReference.refCell(), - pressureReference.refValue() - ); - - pEqn.solve(); - - if (piso.finalNonOrthogonalIter()) - { - phi = phiHbyA - pEqn.flux(); - } -} - -#include "continuityErrs.H" - -U = HbyA - rAU*fvc::grad(p); -U.correctBoundaryConditions(); -fvConstraints.constrain(U); diff --git a/applications/solvers/incompressible/pisoFoam/pisoFoam.C b/applications/solvers/incompressible/pisoFoam/pisoFoam.C deleted file mode 100644 index c41a054040..0000000000 --- a/applications/solvers/incompressible/pisoFoam/pisoFoam.C +++ /dev/null @@ -1,99 +0,0 @@ -/*---------------------------------------------------------------------------*\ - ========= | - \\ / F ield | OpenFOAM: The Open Source CFD Toolbox - \\ / O peration | Website: https://openfoam.org - \\ / A nd | Copyright (C) 2011-2021 OpenFOAM Foundation - \\/ M anipulation | -------------------------------------------------------------------------------- -License - This file is part of OpenFOAM. - - OpenFOAM is free software: you can redistribute it and/or modify it - under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - OpenFOAM is distributed in the hope that it will be useful, but WITHOUT - ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - for more details. - - You should have received a copy of the GNU General Public License - along with OpenFOAM. If not, see . - -Application - pisoFoam - -Description - Transient solver for incompressible, turbulent flow, using the PISO - algorithm. - - Sub-models include: - - turbulence modelling, i.e. laminar, RAS or LES - - run-time selectable MRF and finite volume options, e.g. explicit porosity - -\*---------------------------------------------------------------------------*/ - -#include "fvCFD.H" -#include "viscosityModel.H" -#include "incompressibleMomentumTransportModels.H" -#include "pisoControl.H" -#include "pressureReference.H" -#include "fvModels.H" -#include "fvConstraints.H" - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -int main(int argc, char *argv[]) -{ - #include "postProcess.H" - - #include "setRootCaseLists.H" - #include "createTime.H" - #include "createMesh.H" - #include "createControl.H" - #include "createFields.H" - #include "initContinuityErrs.H" - - turbulence->validate(); - - // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - - Info<< "\nStarting time loop\n" << endl; - - while (runTime.loop()) - { - Info<< "Time = " << runTime.userTimeName() << nl << endl; - - #include "CourantNo.H" - - // Pressure-velocity PISO corrector - { - fvModels.correct(); - - #include "UEqn.H" - - // --- PISO loop - while (piso.correct()) - { - #include "pEqn.H" - } - } - - viscosity->correct(); - turbulence->correct(); - - runTime.write(); - - Info<< "ExecutionTime = " << runTime.elapsedCpuTime() << " s" - << " ClockTime = " << runTime.elapsedClockTime() << " s" - << nl << endl; - } - - Info<< "End\n" << endl; - - return 0; -} - - -// ************************************************************************* // diff --git a/applications/solvers/incompressible/simpleFoam/porousSimpleFoam/Make/files b/applications/solvers/incompressible/porousSimpleFoam/Make/files similarity index 100% rename from applications/solvers/incompressible/simpleFoam/porousSimpleFoam/Make/files rename to applications/solvers/incompressible/porousSimpleFoam/Make/files diff --git a/applications/solvers/incompressible/simpleFoam/porousSimpleFoam/Make/options b/applications/solvers/incompressible/porousSimpleFoam/Make/options similarity index 97% rename from applications/solvers/incompressible/simpleFoam/porousSimpleFoam/Make/options rename to applications/solvers/incompressible/porousSimpleFoam/Make/options index 16e116de85..d138c73b43 100644 --- a/applications/solvers/incompressible/simpleFoam/porousSimpleFoam/Make/options +++ b/applications/solvers/incompressible/porousSimpleFoam/Make/options @@ -1,5 +1,4 @@ EXE_INC = \ - -I.. \ -I$(LIB_SRC)/MomentumTransportModels/momentumTransportModels/lnInclude \ -I$(LIB_SRC)/MomentumTransportModels/incompressible/lnInclude \ -I$(LIB_SRC)/physicalProperties/lnInclude \ @@ -7,7 +6,6 @@ EXE_INC = \ -I$(LIB_SRC)/meshTools/lnInclude \ -I$(LIB_SRC)/sampling/lnInclude - EXE_LIBS = \ -lmomentumTransportModels \ -lincompressibleMomentumTransportModels \ diff --git a/applications/solvers/incompressible/simpleFoam/porousSimpleFoam/UEqn.H b/applications/solvers/incompressible/porousSimpleFoam/UEqn.H similarity index 100% rename from applications/solvers/incompressible/simpleFoam/porousSimpleFoam/UEqn.H rename to applications/solvers/incompressible/porousSimpleFoam/UEqn.H diff --git a/applications/solvers/incompressible/pisoFoam/createFields.H b/applications/solvers/incompressible/porousSimpleFoam/createFields.H similarity index 93% rename from applications/solvers/incompressible/pisoFoam/createFields.H rename to applications/solvers/incompressible/porousSimpleFoam/createFields.H index a54c6bd72a..f29e7bdaa9 100644 --- a/applications/solvers/incompressible/pisoFoam/createFields.H +++ b/applications/solvers/incompressible/porousSimpleFoam/createFields.H @@ -28,12 +28,10 @@ volVectorField U #include "createPhi.H" - -pressureReference pressureReference(p, piso.dict()); +pressureReference pressureReference(p, simple.dict()); mesh.schemes().setFluxRequired(p.name()); - autoPtr viscosity(viscosityModel::New(mesh)); autoPtr turbulence diff --git a/applications/solvers/incompressible/simpleFoam/porousSimpleFoam/createPorousZones.H b/applications/solvers/incompressible/porousSimpleFoam/createPorousZones.H similarity index 100% rename from applications/solvers/incompressible/simpleFoam/porousSimpleFoam/createPorousZones.H rename to applications/solvers/incompressible/porousSimpleFoam/createPorousZones.H diff --git a/applications/solvers/incompressible/simpleFoam/porousSimpleFoam/pEqn.H b/applications/solvers/incompressible/porousSimpleFoam/pEqn.H similarity index 100% rename from applications/solvers/incompressible/simpleFoam/porousSimpleFoam/pEqn.H rename to applications/solvers/incompressible/porousSimpleFoam/pEqn.H diff --git a/applications/solvers/incompressible/simpleFoam/porousSimpleFoam/porousSimpleFoam.C b/applications/solvers/incompressible/porousSimpleFoam/porousSimpleFoam.C similarity index 97% rename from applications/solvers/incompressible/simpleFoam/porousSimpleFoam/porousSimpleFoam.C rename to applications/solvers/incompressible/porousSimpleFoam/porousSimpleFoam.C index af171ccf9e..aa527420f8 100644 --- a/applications/solvers/incompressible/simpleFoam/porousSimpleFoam/porousSimpleFoam.C +++ b/applications/solvers/incompressible/porousSimpleFoam/porousSimpleFoam.C @@ -2,7 +2,7 @@ ========= | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | Website: https://openfoam.org - \\ / A nd | Copyright (C) 2011-2021 OpenFOAM Foundation + \\ / A nd | Copyright (C) 2011-2022 OpenFOAM Foundation \\/ M anipulation | ------------------------------------------------------------------------------- License diff --git a/applications/solvers/modules/fluid/Allwmake b/applications/solvers/modules/fluid/Allwmake index 862d7ad45e..eec51d6a40 100755 --- a/applications/solvers/modules/fluid/Allwmake +++ b/applications/solvers/modules/fluid/Allwmake @@ -4,6 +4,8 @@ cd ${0%/*} || exit 1 # Run from this directory # Parse arguments for library compilation . $WM_PROJECT_DIR/wmake/scripts/AllwmakeParseArguments +wmake $targetType fluidSolver +wmake $targetType incompressibleFluid wmake $targetType isothermalFluid wmake $targetType fluid wmake $targetType multicomponentFluid diff --git a/applications/solvers/modules/fluid/fluid/Make/options b/applications/solvers/modules/fluid/fluid/Make/options index 18ffe9c1e8..e4ad796db1 100644 --- a/applications/solvers/modules/fluid/fluid/Make/options +++ b/applications/solvers/modules/fluid/fluid/Make/options @@ -1,5 +1,6 @@ EXE_INC = \ - -I../isothermalFluid/lnInclude \ + -I$(FOAM_SOLVERS)/modules/fluid/fluidSolver/lnInclude \ + -I$(FOAM_SOLVERS)/modules/fluid/isothermalFluid/lnInclude \ -I$(LIB_SRC)/physicalProperties/lnInclude \ -I$(LIB_SRC)/thermophysicalModels/basic/lnInclude \ -I$(LIB_SRC)/MomentumTransportModels/momentumTransportModels/lnInclude \ @@ -11,6 +12,7 @@ EXE_INC = \ -I$(LIB_SRC)/sampling/lnInclude LIB_LIBS = \ + -lfluidSolver \ -lisothermalFluid \ -lfluidThermophysicalModels \ -lmomentumTransportModels \ diff --git a/applications/solvers/modules/fluid/fluid/fluid.H b/applications/solvers/modules/fluid/fluid/fluid.H index 9a901ed937..900b0932e4 100644 --- a/applications/solvers/modules/fluid/fluid/fluid.H +++ b/applications/solvers/modules/fluid/fluid/fluid.H @@ -27,11 +27,15 @@ Class Description Solver module for steady or transient turbulent flow of compressible fluids with heat-transfer for HVAC and similar applications, with optional - mesh motion and mesh topology changes. + mesh motion and change. Uses the flexible PIMPLE (PISO-SIMPLE) solution for time-resolved and pseudo-transient and steady simulations. + Optional fvModels and fvConstraints are provided to enhance the simulation + in many ways including adding various sources, Lagrangian particles, + radiation, surface film etc. and constraining or limiting the solution. + Reference: \verbatim Greenshields, C. J., & Weller, H. G. (2022). diff --git a/applications/solvers/modules/fluid/fluidSolver/Make/files b/applications/solvers/modules/fluid/fluidSolver/Make/files new file mode 100644 index 0000000000..52fb8ec070 --- /dev/null +++ b/applications/solvers/modules/fluid/fluidSolver/Make/files @@ -0,0 +1,3 @@ +fluidSolver.C + +LIB = $(FOAM_LIBBIN)/libfluidSolver diff --git a/applications/solvers/incompressible/pimpleFoam/Make/options b/applications/solvers/modules/fluid/fluidSolver/Make/options similarity index 88% rename from applications/solvers/incompressible/pimpleFoam/Make/options rename to applications/solvers/modules/fluid/fluidSolver/Make/options index 02dcab0da3..4544d945fd 100644 --- a/applications/solvers/incompressible/pimpleFoam/Make/options +++ b/applications/solvers/modules/fluid/fluidSolver/Make/options @@ -1,12 +1,11 @@ -EXE_INC = \ +EXE_INC = -ggdb3 \ -I$(LIB_SRC)/MomentumTransportModels/momentumTransportModels/lnInclude \ -I$(LIB_SRC)/MomentumTransportModels/incompressible/lnInclude \ -I$(LIB_SRC)/physicalProperties/lnInclude \ -I$(LIB_SRC)/finiteVolume/lnInclude \ - -I$(LIB_SRC)/sampling/lnInclude \ -I$(LIB_SRC)/meshTools/lnInclude -EXE_LIBS = \ +LIB_LIBS = \ -lmomentumTransportModels \ -lincompressibleMomentumTransportModels \ -lphysicalProperties \ diff --git a/applications/solvers/modules/fluid/fluidSolver/fluidSolver.C b/applications/solvers/modules/fluid/fluidSolver/fluidSolver.C new file mode 100644 index 0000000000..66a277e40b --- /dev/null +++ b/applications/solvers/modules/fluid/fluidSolver/fluidSolver.C @@ -0,0 +1,220 @@ +/*---------------------------------------------------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | Website: https://openfoam.org + \\ / A nd | Copyright (C) 2022 OpenFOAM Foundation + \\/ M anipulation | +------------------------------------------------------------------------------- +License + This file is part of OpenFOAM. + + OpenFOAM is free software: you can redistribute it and/or modify it + under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + OpenFOAM is distributed in the hope that it will be useful, but WITHOUT + ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + for more details. + + You should have received a copy of the GNU General Public License + along with OpenFOAM. If not, see . + +\*---------------------------------------------------------------------------*/ + +#include "fluidSolver.H" +#include "surfaceFields.H" +#include "fvcDiv.H" +#include "fvcSurfaceIntegrate.H" +#include "fvcVolumeIntegrate.H" + +// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * // + +namespace Foam +{ +namespace solvers +{ + defineTypeNameAndDebug(fluidSolver, 0); +} +} + + +// * * * * * * * * * * * * * Private Member Functions * * * * * * * * * * * // + +void Foam::solvers::fluidSolver::read() +{ + maxCo = + runTime.controlDict().lookupOrDefault("maxCo", 1.0); + + maxDeltaT_ = + runTime.controlDict().lookupOrDefault("maxDeltaT", great); + + correctPhi = pimple.dict().lookupOrDefault + ( + "correctPhi", + mesh.dynamic() + ); + + checkMeshCourantNo = pimple.dict().lookupOrDefault + ( + "checkMeshCourantNo", + false + ); +} + + +void Foam::solvers::fluidSolver::meshCourantNo() const +{ + if (checkMeshCourantNo) + { + const scalarField sumPhi + ( + fvc::surfaceSum(mag(mesh.phi()))().primitiveField() + ); + + const scalar meshCoNum + ( + 0.5*gMax(sumPhi/mesh.V().field())*runTime.deltaTValue() + ); + + const scalar meanMeshCoNum + ( + 0.5*(gSum(sumPhi)/gSum(mesh.V().field()))*runTime.deltaTValue() + ); + + Info<< "Mesh Courant Number mean: " << meanMeshCoNum + << " max: " << meshCoNum << endl; + } +} + + +template +void Foam::solvers::fluidSolver::correctCoNum +( + const RhoType& rho, + const surfaceScalarField& phi +) +{ + const scalarField sumPhi + ( + fvc::surfaceSum(mag(phi))().primitiveField()/rho.primitiveField() + ); + + CoNum = 0.5*gMax(sumPhi/mesh.V().field())*runTime.deltaTValue(); + + const scalar meanCoNum = + 0.5*(gSum(sumPhi)/gSum(mesh.V().field()))*runTime.deltaTValue(); + + Info<< "Courant Number mean: " << meanCoNum + << " max: " << CoNum << endl; +} + + +void Foam::solvers::fluidSolver::correctCoNum(const surfaceScalarField& phi) +{ + correctCoNum(geometricOneField(), phi); +} + + +void Foam::solvers::fluidSolver::correctCoNum +( + const volScalarField& rho, + const surfaceScalarField& phi +) +{ + correctCoNum(rho, phi); +} + + +void Foam::solvers::fluidSolver::continuityErrors +( + const surfaceScalarField& phi +) +{ + const volScalarField contErr(fvc::div(phi)); + + const scalar sumLocalContErr = + runTime.deltaTValue() + *mag(contErr)().weightedAverage(mesh.V()).value(); + + const scalar globalContErr = + runTime.deltaTValue() + *contErr.weightedAverage(mesh.V()).value(); + + cumulativeContErr += globalContErr; + + Info<< "time step continuity errors : sum local = " << sumLocalContErr + << ", global = " << globalContErr + << ", cumulative = " << cumulativeContErr + << endl; +} + + +void Foam::solvers::fluidSolver::continuityErrors +( + const volScalarField& rho, + const volScalarField& thermoRho, + const surfaceScalarField& phi +) +{ + if (mesh.schemes().steady()) + { + continuityErrors(phi); + } + else + { + const dimensionedScalar totalMass = fvc::domainIntegrate(rho); + + const scalar sumLocalContErr = + (fvc::domainIntegrate(mag(rho - thermoRho))/totalMass).value(); + + const scalar globalContErr = + (fvc::domainIntegrate(rho - thermoRho)/totalMass).value(); + + cumulativeContErr += globalContErr; + + Info<< "time step continuity errors : sum local = " << sumLocalContErr + << ", global = " << globalContErr + << ", cumulative = " << cumulativeContErr + << endl; + } +} + + +// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * // + +Foam::solvers::fluidSolver::fluidSolver(fvMesh& mesh) +: + solver(mesh), + cumulativeContErr(0), + CoNum(0) +{ + // Read the controls + read(); +} + + +// * * * * * * * * * * * * * * * * Destructor * * * * * * * * * * * * * * * // + +Foam::solvers::fluidSolver::~fluidSolver() +{} + + +// * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * * // + +Foam::scalar Foam::solvers::fluidSolver::maxDeltaT() const +{ + if (CoNum > small) + { + const scalar deltaT = maxCo*runTime.deltaTValue()/CoNum; + return min(min(deltaT, fvModels().maxDeltaT()), maxDeltaT_); + } + else + { + return runTime.deltaTValue(); + } +} + + +// ************************************************************************* // diff --git a/applications/solvers/modules/fluid/fluidSolver/fluidSolver.H b/applications/solvers/modules/fluid/fluidSolver/fluidSolver.H new file mode 100644 index 0000000000..9d0e954714 --- /dev/null +++ b/applications/solvers/modules/fluid/fluidSolver/fluidSolver.H @@ -0,0 +1,179 @@ +/*---------------------------------------------------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | Website: https://openfoam.org + \\ / A nd | Copyright (C) 2022 OpenFOAM Foundation + \\/ M anipulation | +------------------------------------------------------------------------------- +License + This file is part of OpenFOAM. + + OpenFOAM is free software: you can redistribute it and/or modify it + under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + OpenFOAM is distributed in the hope that it will be useful, but WITHOUT + ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + for more details. + + You should have received a copy of the GNU General Public License + along with OpenFOAM. If not, see . + +Class + Foam::solvers::fluidSolver + +Description + Base solver module for fluid solvers. + + Provides Courant number time-step control and continuity checking. + + Reference: + \verbatim + Greenshields, C. J., & Weller, H. G. (2022). + Notes on Computational Fluid Dynamics: General Principles. + CFD Direct Ltd.: Reading, UK. + \endverbatim + +SourceFiles + fluidSolver.C + +\*---------------------------------------------------------------------------*/ + +#ifndef fluidSolver_H +#define fluidSolver_H + +#include "solver.H" + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +namespace Foam +{ +namespace solvers +{ + +/*---------------------------------------------------------------------------*\ + Class fluidSolver Declaration +\*---------------------------------------------------------------------------*/ + +class fluidSolver +: + public solver +{ + // Control parameters + + //- Maximum allowed Courant number + scalar maxCo; + + //- Maximum time-step + scalar maxDeltaT_; + + //- Switch to check the mesh Courant number after mesh change + bool checkMeshCourantNo; + + + // Continuity properties + + //- Current cumulative continuity error + scalar cumulativeContErr; + + + // Cached Courant numbers for time-step control + + //- Current maximum Courant number + scalar CoNum; + + //- Current mean Courant number + scalar meanCoNum; + + + // Private Member Functions + + //- Correct the cached Courant numbers + template + inline void correctCoNum + ( + const RhoType& rho, + const surfaceScalarField& phi + ); + + +protected: + + //- Switch to correct the flux after mesh change + bool correctPhi; + + //- Read controls + void read(); + + //- Check mesh Courant numbers for moving mesh cases + void meshCourantNo() const; + + //- Correct the cached Courant numbers + void correctCoNum(const surfaceScalarField& phi); + + //- Correct the cached Courant numbers + void correctCoNum + ( + const volScalarField& rho, + const surfaceScalarField& phi + ); + + //- Calculate and print the continuity errors + void continuityErrors + ( + const surfaceScalarField& phi + ); + + //- Calculate and print the continuity errors + void continuityErrors + ( + const volScalarField& rho, + const volScalarField& thermoRho, + const surfaceScalarField& phi + ); + + +public: + + //- Runtime type information + TypeName("incompresssibleFluid"); + + + // Constructors + + //- Construct from region mesh + fluidSolver(fvMesh& mesh); + + //- Disallow default bitwise copy construction + fluidSolver(const fluidSolver&) = delete; + + + //- Destructor + virtual ~fluidSolver(); + + + // Member Functions + + //- Return the current maximum time-step for stable solution + virtual scalar maxDeltaT() const; + + + // Member Operators + + //- Disallow default bitwise assignment + void operator=(const fluidSolver&) = delete; +}; + + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +} // End namespace solvers +} // End namespace Foam + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +#endif + +// ************************************************************************* // diff --git a/applications/solvers/modules/fluid/incompressibleFluid/Make/files b/applications/solvers/modules/fluid/incompressibleFluid/Make/files new file mode 100644 index 0000000000..e67afde15f --- /dev/null +++ b/applications/solvers/modules/fluid/incompressibleFluid/Make/files @@ -0,0 +1,7 @@ +setRDeltaT.C +moveMesh.C +momentumPredictor.C +correctPressure.C +incompressibleFluid.C + +LIB = $(FOAM_LIBBIN)/libincompressibleFluid diff --git a/applications/solvers/incompressible/pimpleFoam/SRFPimpleFoam/Make/options b/applications/solvers/modules/fluid/incompressibleFluid/Make/options similarity index 71% rename from applications/solvers/incompressible/pimpleFoam/SRFPimpleFoam/Make/options rename to applications/solvers/modules/fluid/incompressibleFluid/Make/options index 4ba3b90d76..5697189e77 100644 --- a/applications/solvers/incompressible/pimpleFoam/SRFPimpleFoam/Make/options +++ b/applications/solvers/modules/fluid/incompressibleFluid/Make/options @@ -1,19 +1,18 @@ EXE_INC = \ - -I. \ - -I.. \ + -I$(FOAM_SOLVERS)/modules/fluid/fluidSolver/lnInclude \ -I$(LIB_SRC)/MomentumTransportModels/momentumTransportModels/lnInclude \ -I$(LIB_SRC)/MomentumTransportModels/incompressible/lnInclude \ -I$(LIB_SRC)/physicalProperties/lnInclude \ -I$(LIB_SRC)/finiteVolume/lnInclude \ - -I$(LIB_SRC)/meshTools/lnInclude \ - -I$(LIB_SRC)/sampling/lnInclude + -I$(LIB_SRC)/meshTools/lnInclude -EXE_LIBS = \ +LIB_LIBS = \ + -lfluidSolver \ -lmomentumTransportModels \ -lincompressibleMomentumTransportModels \ -lphysicalProperties \ -lfiniteVolume \ - -lmeshTools \ -lfvModels \ -lfvConstraints \ - -lsampling + -lsampling \ + -lmeshTools diff --git a/applications/solvers/modules/fluid/incompressibleFluid/correctPressure.C b/applications/solvers/modules/fluid/incompressibleFluid/correctPressure.C new file mode 100644 index 0000000000..1ca3ca3e66 --- /dev/null +++ b/applications/solvers/modules/fluid/incompressibleFluid/correctPressure.C @@ -0,0 +1,112 @@ +/*---------------------------------------------------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | Website: https://openfoam.org + \\ / A nd | Copyright (C) 2022 OpenFOAM Foundation + \\/ M anipulation | +------------------------------------------------------------------------------- +License + This file is part of OpenFOAM. + + OpenFOAM is free software: you can redistribute it and/or modify it + under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + OpenFOAM is distributed in the hope that it will be useful, but WITHOUT + ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + for more details. + + You should have received a copy of the GNU General Public License + along with OpenFOAM. If not, see . + +\*---------------------------------------------------------------------------*/ + +#include "incompressibleFluid.H" +#include "constrainHbyA.H" +#include "constrainPressure.H" +#include "adjustPhi.H" + +// * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * * // + +void Foam::solvers::incompressibleFluid::correctPressure() +{ + fvVectorMatrix& UEqn = tUEqn.ref(); + + volScalarField rAU(1.0/UEqn.A()); + volVectorField HbyA(constrainHbyA(rAU*UEqn.H(), U, p)); + surfaceScalarField phiHbyA + ( + "phiHbyA", + fvc::flux(HbyA) + + MRF.zeroFilter(fvc::interpolate(rAU)*fvc::ddtCorr(U, phi, Uf)) + ); + + MRF.makeRelative(phiHbyA); + + if (p.needReference()) + { + fvc::makeRelative(phiHbyA, U); + adjustPhi(phiHbyA, U, p); + fvc::makeAbsolute(phiHbyA, U); + } + + tmp rAtU(rAU); + + if (pimple.consistent()) + { + rAtU = 1.0/max(1.0/rAU - UEqn.H1(), 0.1/rAU); + phiHbyA += + fvc::interpolate(rAtU() - rAU)*fvc::snGrad(p)*mesh.magSf(); + HbyA -= (rAU - rAtU())*fvc::grad(p); + } + + if (pimple.nCorrPiso() <= 1) + { + tUEqn.clear(); + } + + // Update the pressure BCs to ensure flux consistency + constrainPressure(p, U, phiHbyA, rAtU(), MRF); + + // Non-orthogonal pressure corrector loop + while (pimple.correctNonOrthogonal()) + { + fvScalarMatrix pEqn + ( + fvm::laplacian(rAtU(), p) == fvc::div(phiHbyA) + ); + + pEqn.setReference + ( + pressureReference.refCell(), + pressureReference.refValue() + ); + + pEqn.solve(); + + if (pimple.finalNonOrthogonalIter()) + { + phi = phiHbyA - pEqn.flux(); + } + } + + continuityErrors(); + + // Explicitly relax pressure for momentum corrector + p.relax(); + + U = HbyA - rAtU*fvc::grad(p); + U.correctBoundaryConditions(); + fvConstraints().constrain(U); + + // Correct Uf if the mesh is moving + fvc::correctUf(Uf, U, phi, MRF); + + // Make the fluxes relative to the mesh motion + fvc::makeRelative(phi, U); +} + + +// ************************************************************************* // diff --git a/applications/solvers/modules/fluid/incompressibleFluid/incompressibleFluid.C b/applications/solvers/modules/fluid/incompressibleFluid/incompressibleFluid.C new file mode 100644 index 0000000000..2e5fa9b813 --- /dev/null +++ b/applications/solvers/modules/fluid/incompressibleFluid/incompressibleFluid.C @@ -0,0 +1,236 @@ +/*---------------------------------------------------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | Website: https://openfoam.org + \\ / A nd | Copyright (C) 2022 OpenFOAM Foundation + \\/ M anipulation | +------------------------------------------------------------------------------- +License + This file is part of OpenFOAM. + + OpenFOAM is free software: you can redistribute it and/or modify it + under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + OpenFOAM is distributed in the hope that it will be useful, but WITHOUT + ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + for more details. + + You should have received a copy of the GNU General Public License + along with OpenFOAM. If not, see . + +\*---------------------------------------------------------------------------*/ + +#include "incompressibleFluid.H" +#include "localEulerDdtScheme.H" +#include "addToRunTimeSelectionTable.H" + +// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * // + +namespace Foam +{ +namespace solvers +{ + defineTypeNameAndDebug(incompressibleFluid, 0); + addToRunTimeSelectionTable(solver, incompressibleFluid, fvMesh); +} +} + + +// * * * * * * * * * * * * * Private Member Functions * * * * * * * * * * * // + +void Foam::solvers::incompressibleFluid::correctCoNum() +{ + fluidSolver::correctCoNum(phi); +} + + +void Foam::solvers::incompressibleFluid::continuityErrors() +{ + fluidSolver::continuityErrors(phi); +} + + +// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * // + +Foam::solvers::incompressibleFluid::incompressibleFluid(fvMesh& mesh) +: + fluidSolver(mesh), + + p + ( + IOobject + ( + "p", + runTime.timeName(), + mesh, + IOobject::MUST_READ, + IOobject::AUTO_WRITE + ), + mesh + ), + + pressureReference(p, pimple.dict()), + + U + ( + IOobject + ( + "U", + runTime.timeName(), + mesh, + IOobject::MUST_READ, + IOobject::AUTO_WRITE + ), + mesh + ), + + phi + ( + IOobject + ( + "phi", + runTime.timeName(), + mesh, + IOobject::READ_IF_PRESENT, + IOobject::AUTO_WRITE + ), + linearInterpolate(U) & mesh.Sf() + ), + + viscosity(viscosityModel::New(mesh)), + + turbulence + ( + incompressible::momentumTransportModel::New + ( + U, + phi, + viscosity + ) + ), + + MRF(mesh) +{ + mesh.schemes().setFluxRequired(p.name()); + + turbulence->validate(); + + if (mesh.dynamic()) + { + Info<< "Constructing face momentum Uf" << endl; + + Uf = new surfaceVectorField + ( + IOobject + ( + "Uf", + runTime.timeName(), + mesh, + IOobject::READ_IF_PRESENT, + IOobject::AUTO_WRITE + ), + fvc::interpolate(U) + ); + } + + if (transient()) + { + correctCoNum(); + } + else if (LTS) + { + Info<< "Using LTS" << endl; + + trDeltaT = tmp + ( + new volScalarField + ( + IOobject + ( + fv::localEulerDdt::rDeltaTName, + runTime.timeName(), + mesh, + IOobject::READ_IF_PRESENT, + IOobject::AUTO_WRITE + ), + mesh, + dimensionedScalar(dimless/dimTime, 1), + extrapolatedCalculatedFvPatchScalarField::typeName + ) + ); + } +} + + +// * * * * * * * * * * * * * * * * Destructor * * * * * * * * * * * * * * * // + +Foam::solvers::incompressibleFluid::~incompressibleFluid() +{} + + +// * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * * // + +void Foam::solvers::incompressibleFluid::preSolve() +{ + // Read the controls + read(); + + fvModels().preUpdateMesh(); + + // Update the mesh for topology change, mesh to mesh mapping + mesh.update(); + + if (transient()) + { + correctCoNum(); + } + else if (LTS) + { + setRDeltaT(); + } +} + + +void Foam::solvers::incompressibleFluid::prePredictor() +{ + fvModels().correct(); +} + + +void Foam::solvers::incompressibleFluid::thermophysicalPredictor() +{} + + +void Foam::solvers::incompressibleFluid::pressureCorrector() +{ + while (pimple.correct()) + { + correctPressure(); + } + + tUEqn.clear(); +} + + +void Foam::solvers::incompressibleFluid::momentumTransportCorrector() +{ + if (pimple.transportCorr()) + { + viscosity->correct(); + turbulence->correct(); + } +} + + +void Foam::solvers::incompressibleFluid::thermophysicalTransportCorrector() +{} + + +void Foam::solvers::incompressibleFluid::postSolve() +{} + + +// ************************************************************************* // diff --git a/applications/solvers/modules/fluid/incompressibleFluid/incompressibleFluid.H b/applications/solvers/modules/fluid/incompressibleFluid/incompressibleFluid.H new file mode 100644 index 0000000000..8ea6142af3 --- /dev/null +++ b/applications/solvers/modules/fluid/incompressibleFluid/incompressibleFluid.H @@ -0,0 +1,219 @@ +/*---------------------------------------------------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | Website: https://openfoam.org + \\ / A nd | Copyright (C) 2022 OpenFOAM Foundation + \\/ M anipulation | +------------------------------------------------------------------------------- +License + This file is part of OpenFOAM. + + OpenFOAM is free software: you can redistribute it and/or modify it + under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + OpenFOAM is distributed in the hope that it will be useful, but WITHOUT + ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + for more details. + + You should have received a copy of the GNU General Public License + along with OpenFOAM. If not, see . + +Class + Foam::solvers::incompressibleFluid + +Description + Solver module for steady or transient turbulent flow of incompressible + isothermal fluids with optional mesh motion and change. + + Uses the flexible PIMPLE (PISO-SIMPLE) solution for time-resolved and + pseudo-transient and steady simulations. + + Optional fvModels and fvConstraints are provided to enhance the simulation + in many ways including adding various sources, constraining or limiting + the solution. + + Reference: + \verbatim + Greenshields, C. J., & Weller, H. G. (2022). + Notes on Computational Fluid Dynamics: General Principles. + CFD Direct Ltd.: Reading, UK. + \endverbatim + +SourceFiles + incompressibleFluid.C + +See also + Foam::solvers::fluidSolver + Foam::solvers::isothermalFluid + +\*---------------------------------------------------------------------------*/ + +#ifndef incompressibleFluid_H +#define incompressibleFluid_H + +#include "fluidSolver.H" +#include "viscosityModel.H" +#include "incompressibleMomentumTransportModels.H" +#include "pressureReference.H" + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +namespace Foam +{ +namespace solvers +{ + +/*---------------------------------------------------------------------------*\ + Class incompressibleFluid Declaration +\*---------------------------------------------------------------------------*/ + +class incompressibleFluid +: + public fluidSolver +{ + +protected: + + // Pressure + + //- Pressure field + volScalarField p; + + //- Pressure reference + Foam::pressureReference pressureReference; + + + // Kinematic properties + + //- Velocity field + volVectorField U; + + //- Mass-flux field + surfaceScalarField phi; + + + // Momentum transport + + //- Kinematic viscosity model + autoPtr viscosity; + + //- Pointer to the momentum transport model + autoPtr turbulence; + + + // Continuity properties + + //- Current cumulative continuity error + scalar cumulativeContErr; + + + // Optional models + + //- MRF zone list + IOMRFZoneList MRF; + + + // Cached temporary fields + + //- Pointer to the surface momentum field + // used to recreate the flux after mesh-change + autoPtr Uf; + + //- Optional LTS reciprocal time-step field + tmp trDeltaT; + + //- Cached momentum matrix + // shared between the momentum predictor and pressure corrector + tmp tUEqn; + + +private: + + // Private Member Functions + + //- Set rDeltaT for LTS + void setRDeltaT(); + + //- Correct the cached Courant numbers + void correctCoNum(); + + //- Calculate and print the continuity errors + void continuityErrors(); + + //- Construct the pressure equation + // and correct the pressure and velocity + void correctPressure(); + + +public: + + //- Runtime type information + TypeName("incompressibleFluid"); + + + // Constructors + + //- Construct from region mesh + incompressibleFluid(fvMesh& mesh); + + //- Disallow default bitwise copy construction + incompressibleFluid(const incompressibleFluid&) = delete; + + + //- Destructor + virtual ~incompressibleFluid(); + + + // Member Functions + + //- Called at the start of the time-step, before the PIMPLE loop + virtual void preSolve(); + + //- Called at the start of the PIMPLE loop to move the mesh + virtual bool moveMesh(); + + //- Called at the start of the PIMPLE loop + virtual void prePredictor(); + + //- Construct and optionally solve the momentum equation + virtual void momentumPredictor(); + + //- Construct and solve the energy equation, + // convert to temperature + // and update thermophysical and transport properties + virtual void thermophysicalPredictor(); + + //- Construct and solve the pressure equation in the PISO loop + virtual void pressureCorrector(); + + //- Correct the momentum transport modelling + // Newtonian, non-Newtonian or turbulent + virtual void momentumTransportCorrector(); + + //- Correct the thermophysical transport modelling + virtual void thermophysicalTransportCorrector(); + + //- Called after the PIMPLE loop at the end of the time-step + virtual void postSolve(); + + + // Member Operators + + //- Disallow default bitwise assignment + void operator=(const incompressibleFluid&) = delete; +}; + + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +} // End namespace solvers +} // End namespace Foam + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +#endif + +// ************************************************************************* // diff --git a/applications/solvers/modules/fluid/incompressibleFluid/momentumPredictor.C b/applications/solvers/modules/fluid/incompressibleFluid/momentumPredictor.C new file mode 100644 index 0000000000..76fb1750bd --- /dev/null +++ b/applications/solvers/modules/fluid/incompressibleFluid/momentumPredictor.C @@ -0,0 +1,57 @@ +/*---------------------------------------------------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | Website: https://openfoam.org + \\ / A nd | Copyright (C) 2022 OpenFOAM Foundation + \\/ M anipulation | +------------------------------------------------------------------------------- +License + This file is part of OpenFOAM. + + OpenFOAM is free software: you can redistribute it and/or modify it + under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + OpenFOAM is distributed in the hope that it will be useful, but WITHOUT + ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + for more details. + + You should have received a copy of the GNU General Public License + along with OpenFOAM. If not, see . + +\*---------------------------------------------------------------------------*/ + +#include "incompressibleFluid.H" + +// * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * * // + +void Foam::solvers::incompressibleFluid::momentumPredictor() +{ + MRF.correctBoundaryVelocity(U); + + tUEqn = + ( + fvm::ddt(U) + fvm::div(phi, U) + + MRF.DDt(U) + + turbulence->divDevSigma(U) + == + fvModels().source(U) + ); + fvVectorMatrix& UEqn = tUEqn.ref(); + + UEqn.relax(); + + fvConstraints().constrain(UEqn); + + if (pimple.momentumPredictor()) + { + solve(UEqn == -fvc::grad(p)); + + fvConstraints().constrain(U); + } +} + + +// ************************************************************************* // diff --git a/applications/solvers/modules/fluid/incompressibleFluid/moveMesh.C b/applications/solvers/modules/fluid/incompressibleFluid/moveMesh.C new file mode 100644 index 0000000000..06761f1349 --- /dev/null +++ b/applications/solvers/modules/fluid/incompressibleFluid/moveMesh.C @@ -0,0 +1,75 @@ +/*---------------------------------------------------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | Website: https://openfoam.org + \\ / A nd | Copyright (C) 2022 OpenFOAM Foundation + \\/ M anipulation | +------------------------------------------------------------------------------- +License + This file is part of OpenFOAM. + + OpenFOAM is free software: you can redistribute it and/or modify it + under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + OpenFOAM is distributed in the hope that it will be useful, but WITHOUT + ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + for more details. + + You should have received a copy of the GNU General Public License + along with OpenFOAM. If not, see . + +\*---------------------------------------------------------------------------*/ + +#include "incompressibleFluid.H" +#include "CorrectPhi.H" + +// * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * * // + +bool Foam::solvers::incompressibleFluid::moveMesh() +{ + if (pimple.firstIter() || pimple.moveMeshOuterCorrectors()) + { + // Move the mesh + mesh.move(); + + if (mesh.changing()) + { + MRF.update(); + + if (correctPhi) + { + // Calculate absolute flux + // from the mapped surface velocity + phi = mesh.Sf() & Uf(); + + correctUphiBCs(U, phi, true); + + CorrectPhi + ( + phi, + U, + p, + dimensionedScalar("rAUf", dimTime, 1), + geometricZeroField(), + pressureReference, + pimple + ); + + // Make the flux relative to the mesh motion + fvc::makeRelative(phi, U); + } + + meshCourantNo(); + + return true; + } + } + + return false; +} + + +// ************************************************************************* // diff --git a/applications/solvers/incompressible/pimpleFoam/setRDeltaT.H b/applications/solvers/modules/fluid/incompressibleFluid/setRDeltaT.C similarity index 59% rename from applications/solvers/incompressible/pimpleFoam/setRDeltaT.H rename to applications/solvers/modules/fluid/incompressibleFluid/setRDeltaT.C index 3d40b4bbee..f0289ea3ce 100644 --- a/applications/solvers/incompressible/pimpleFoam/setRDeltaT.H +++ b/applications/solvers/modules/fluid/incompressibleFluid/setRDeltaT.C @@ -1,3 +1,34 @@ +/*---------------------------------------------------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | Website: https://openfoam.org + \\ / A nd | Copyright (C) 2022 OpenFOAM Foundation + \\/ M anipulation | +------------------------------------------------------------------------------- +License + This file is part of OpenFOAM. + + OpenFOAM is free software: you can redistribute it and/or modify it + under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + OpenFOAM is distributed in the hope that it will be useful, but WITHOUT + ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + for more details. + + You should have received a copy of the GNU General Public License + along with OpenFOAM. If not, see . + +\*---------------------------------------------------------------------------*/ + +#include "incompressibleFluid.H" +#include "fvcSmooth.H" + +// * * * * * * * * * * * * * Private Member Functions * * * * * * * * * * * // + +void Foam::solvers::incompressibleFluid::setRDeltaT() { volScalarField& rDeltaT = trDeltaT.ref(); @@ -77,3 +108,6 @@ << ", " << gMax(1/rDeltaT.primitiveField()) << endl; } } + + +// ************************************************************************* // diff --git a/applications/solvers/modules/fluid/isothermalFluid/Make/options b/applications/solvers/modules/fluid/isothermalFluid/Make/options index 92c30a330b..ac5b77bedf 100644 --- a/applications/solvers/modules/fluid/isothermalFluid/Make/options +++ b/applications/solvers/modules/fluid/isothermalFluid/Make/options @@ -1,4 +1,5 @@ EXE_INC = \ + -I$(FOAM_SOLVERS)/modules/fluid/fluidSolver/lnInclude \ -I$(LIB_SRC)/physicalProperties/lnInclude \ -I$(LIB_SRC)/thermophysicalModels/basic/lnInclude \ -I$(LIB_SRC)/MomentumTransportModels/momentumTransportModels/lnInclude \ @@ -8,6 +9,7 @@ EXE_INC = \ -I$(LIB_SRC)/meshTools/lnInclude LIB_LIBS = \ + -lfluidSolver \ -lfluidThermophysicalModels \ -lmomentumTransportModels \ -lcompressibleMomentumTransportModels \ diff --git a/applications/solvers/modules/fluid/isothermalFluid/isothermalFluid.C b/applications/solvers/modules/fluid/isothermalFluid/isothermalFluid.C index 1573c55f77..5455b515c8 100644 --- a/applications/solvers/modules/fluid/isothermalFluid/isothermalFluid.C +++ b/applications/solvers/modules/fluid/isothermalFluid/isothermalFluid.C @@ -42,79 +42,15 @@ namespace solvers // * * * * * * * * * * * * * Private Member Functions * * * * * * * * * * * // -void Foam::solvers::isothermalFluid::read() -{ - maxCo = - runTime.controlDict().lookupOrDefault("maxCo", 1.0); - - maxDeltaT_ = - runTime.controlDict().lookupOrDefault("maxDeltaT", great); - - correctPhi = pimple.dict().lookupOrDefault - ( - "correctPhi", - mesh.dynamic() - ); - - checkMeshCourantNo = pimple.dict().lookupOrDefault - ( - "checkMeshCourantNo", - false - ); -} - - void Foam::solvers::isothermalFluid::correctCoNum() { - const scalarField sumPhi - ( - fvc::surfaceSum(mag(phi))().primitiveField()/rho.primitiveField() - ); - - CoNum = 0.5*gMax(sumPhi/mesh.V().field())*runTime.deltaTValue(); - - const scalar meanCoNum = - 0.5*(gSum(sumPhi)/gSum(mesh.V().field()))*runTime.deltaTValue(); - - Info<< "Courant Number mean: " << meanCoNum - << " max: " << CoNum << endl; + fluidSolver::correctCoNum(rho, phi); } void Foam::solvers::isothermalFluid::continuityErrors() { - scalar sumLocalContErr = 0; - scalar globalContErr = 0; - - if (mesh.schemes().steady()) - { - const volScalarField contErr(fvc::div(phi)); - - sumLocalContErr = - runTime.deltaTValue() - *mag(contErr)().weightedAverage(mesh.V()).value(); - - globalContErr = - runTime.deltaTValue() - *contErr.weightedAverage(mesh.V()).value(); - } - else - { - const dimensionedScalar totalMass = fvc::domainIntegrate(rho); - - sumLocalContErr = - (fvc::domainIntegrate(mag(rho - thermo.rho()))/totalMass).value(); - - globalContErr = - (fvc::domainIntegrate(rho - thermo.rho())/totalMass).value(); - } - - cumulativeContErr += globalContErr; - - Info<< "time step continuity errors : sum local = " << sumLocalContErr - << ", global = " << globalContErr - << ", cumulative = " << cumulativeContErr - << endl; + fluidSolver::continuityErrors(rho, thermo.rho(), phi); } @@ -126,7 +62,7 @@ Foam::solvers::isothermalFluid::isothermalFluid autoPtr thermoPtr ) : - solver(mesh), + fluidSolver(mesh), thermo_(thermoPtr), thermo(thermo_()), @@ -211,11 +147,7 @@ Foam::solvers::isothermalFluid::isothermalFluid initialMass(fvc::domainIntegrate(rho)), - cumulativeContErr(0), - - MRF(mesh), - - CoNum(0) + MRF(mesh) { // Read the controls read(); @@ -301,20 +233,6 @@ Foam::solvers::isothermalFluid::~isothermalFluid() // * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * * // -Foam::scalar Foam::solvers::isothermalFluid::maxDeltaT() const -{ - if (CoNum > small) - { - const scalar deltaT = maxCo*runTime.deltaTValue()/CoNum; - return min(min(deltaT, fvModels().maxDeltaT()), maxDeltaT_); - } - else - { - return runTime.deltaTValue(); - } -} - - void Foam::solvers::isothermalFluid::preSolve() { // Read the controls diff --git a/applications/solvers/modules/fluid/isothermalFluid/isothermalFluid.H b/applications/solvers/modules/fluid/isothermalFluid/isothermalFluid.H index a5442eb14b..a20550be75 100644 --- a/applications/solvers/modules/fluid/isothermalFluid/isothermalFluid.H +++ b/applications/solvers/modules/fluid/isothermalFluid/isothermalFluid.H @@ -26,11 +26,15 @@ Class Description Solver module for steady or transient turbulent flow of compressible - isothermal fluids with optional mesh motion and mesh topology changes. + isothermal fluids with optional mesh motion and change. Uses the flexible PIMPLE (PISO-SIMPLE) solution for time-resolved and pseudo-transient and steady simulations. + Optional fvModels and fvConstraints are provided to enhance the simulation + in many ways including adding various sources, Lagrangian + particles, surface film etc. and constraining or limiting the solution. + Reference: \verbatim Greenshields, C. J., & Weller, H. G. (2022). @@ -41,12 +45,16 @@ Description SourceFiles isothermalFluid.C +See also + Foam::solvers::fluidSolver + Foam::solvers::incompressibleFluid + \*---------------------------------------------------------------------------*/ #ifndef isothermalFluid_H #define isothermalFluid_H -#include "solver.H" +#include "fluidSolver.H" #include "fluidThermo.H" #include "compressibleMomentumTransportModels.H" #include "buoyancy.H" @@ -65,26 +73,11 @@ namespace solvers class isothermalFluid : - public solver + public fluidSolver { protected: - // Control parameters - - //- Maximum allowed Courant number - scalar maxCo; - - //- Maximum time-step - scalar maxDeltaT_; - - //- Switch to correct the flux after mesh change - bool correctPhi; - - //- Switch to check the mesh Courant number after mesh change - bool checkMeshCourantNo; - - // Thermophysical properties //- Pointer to the fluid thermophysical properties @@ -145,9 +138,6 @@ protected: //- Initial mass in the region dimensionedScalar initialMass; - //- Current cumulative continuity error - scalar cumulativeContErr; - // Optional models @@ -155,15 +145,6 @@ protected: IOMRFZoneList MRF; - // Time-step controls - - //- Current maximum Courant number - scalar CoNum; - - //- Current mean Courant number - scalar meanCoNum; - - // Cached temporary fields //- Pointer to the surface momentum field @@ -189,29 +170,14 @@ protected: private: - // Private Member Data - - //- Pointer to the demand driven fvModels MeshObject - mutable Foam::fvModels* fvModelsPtr; - - //- Pointer to the demand driven fvConstraints MeshObject - mutable Foam::fvConstraints* fvConstraintsPtr; - - // Private Member Functions - //- Read controls - void read(); - //- Set rDeltaT for LTS virtual void setRDeltaT(); //- Correct the cached Courant numbers void correctCoNum(); - //- Check mesh Courant numbers for moving mesh cases - void meshCourantNo() const; - //- Calculate and print the continuity errors void continuityErrors(); @@ -251,9 +217,6 @@ public: // Member Functions - //- Return the current maximum time-step for stable solution - virtual scalar maxDeltaT() const; - //- Called at the start of the time-step, before the PIMPLE loop virtual void preSolve(); diff --git a/applications/solvers/modules/fluid/isothermalFluid/moveMesh.C b/applications/solvers/modules/fluid/isothermalFluid/moveMesh.C index a5db89544b..5cdfaf71b0 100644 --- a/applications/solvers/modules/fluid/isothermalFluid/moveMesh.C +++ b/applications/solvers/modules/fluid/isothermalFluid/moveMesh.C @@ -28,31 +28,6 @@ License // * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * * // -void Foam::solvers::isothermalFluid::meshCourantNo() const -{ - if (checkMeshCourantNo) - { - const scalarField sumPhi - ( - fvc::surfaceSum(mag(mesh.phi()))().primitiveField() - ); - - const scalar meshCoNum - ( - 0.5*gMax(sumPhi/mesh.V().field())*runTime.deltaTValue() - ); - - const scalar meanMeshCoNum - ( - 0.5*(gSum(sumPhi)/gSum(mesh.V().field()))*runTime.deltaTValue() - ); - - Info<< "Mesh Courant Number mean: " << meanMeshCoNum - << " max: " << meshCoNum << endl; - } -} - - bool Foam::solvers::isothermalFluid::moveMesh() { if (pimple.firstIter() || pimple.moveMeshOuterCorrectors()) diff --git a/applications/solvers/modules/fluid/multicomponentFluid/Make/options b/applications/solvers/modules/fluid/multicomponentFluid/Make/options index fe4e0fabc3..51abc6d5ce 100644 --- a/applications/solvers/modules/fluid/multicomponentFluid/Make/options +++ b/applications/solvers/modules/fluid/multicomponentFluid/Make/options @@ -1,5 +1,6 @@ EXE_INC = \ - -I../isothermalFluid/lnInclude \ + -I$(FOAM_SOLVERS)/modules/fluid/fluidSolver/lnInclude \ + -I$(FOAM_SOLVERS)/modules/fluid/isothermalFluid/lnInclude \ -I$(LIB_SRC)/MomentumTransportModels/momentumTransportModels/lnInclude \ -I$(LIB_SRC)/MomentumTransportModels/compressible/lnInclude \ -I$(LIB_SRC)/ThermophysicalTransportModels/lnInclude \ @@ -17,6 +18,7 @@ EXE_INC = \ -I$(LIB_SRC)/sampling/lnInclude LIB_LIBS = \ + -lfluidSolver \ -lisothermalFluid \ -lfluidThermophysicalModels \ -lspecie \ diff --git a/applications/solvers/modules/fluid/multicomponentFluid/multicomponentFluid.H b/applications/solvers/modules/fluid/multicomponentFluid/multicomponentFluid.H index 09d0f9c8d4..e7b411bccb 100644 --- a/applications/solvers/modules/fluid/multicomponentFluid/multicomponentFluid.H +++ b/applications/solvers/modules/fluid/multicomponentFluid/multicomponentFluid.H @@ -26,11 +26,16 @@ Class Description Solver module for steady or transient turbulent flow of compressible - reacting fluids with optional mesh motion and mesh topology changes. + multicomponent fluids with optional mesh motion and change. Uses the flexible PIMPLE (PISO-SIMPLE) solution for time-resolved and pseudo-transient and steady simulations. + Optional fvModels and fvConstraints are provided to enhance the simulation + in many ways including adding various sources, chemical reactions, + combustion, Lagrangian particles, radiation, surface film etc. and + constraining or limiting the solution. + Reference: \verbatim Greenshields, C. J., & Weller, H. G. (2022). @@ -41,6 +46,10 @@ Description SourceFiles multicomponentFluid.C +See also + Foam::solvers::fluidSolver + Foam::solvers::isothermalFluid + \*---------------------------------------------------------------------------*/ #ifndef multicomponentFluid_H @@ -70,12 +79,19 @@ class multicomponentFluid protected: - // Compositon + // Thermophysical properties fluidMulticomponentThermo& thermo; + + // Compositon + basicSpecieMixture& composition; PtrList& Y; + + + // Reactions + autoPtr reaction; multivariateSurfaceInterpolationScheme::fieldTable fields; diff --git a/bin/buoyantFoam b/bin/buoyantFoam index 7603f8c851..3db815a2db 100755 --- a/bin/buoyantFoam +++ b/bin/buoyantFoam @@ -27,14 +27,15 @@ # # Description # Script to inform the user that buoyantFoam has been superseded -# and replaced by the more general foamMultiRun solver. +# and replaced by the more general fluid solver module executed by the +# foamRun application. # #------------------------------------------------------------------------------ cat <. +# +# Script +# pimpleFoam +# +# Description +# Script to inform the user that pimpleFoam has been superseded +# and replaced by the more general incompressibleFluid solver module +# executed by the foamRun application. +# +#------------------------------------------------------------------------------ + +cat <. +# +# Script +# pisoFoam +# +# Description +# Script to inform the user that pisoFoam has been superseded +# and replaced by the more general incompressibleFluid solver module +# executed by the foamRun application. +# +#------------------------------------------------------------------------------ + +cat <. +# +# Script +# simpleFoam +# +# Description +# Script to inform the user that simpleFoam has been superseded +# and replaced by the more general incompressibleFluid solver module +# executed by the foamRun application. +# +#------------------------------------------------------------------------------ + +cat <