From 48973bad83535ae43195488a6d8cf0ef26572359 Mon Sep 17 00:00:00 2001 From: Andrew Heather <> Date: Tue, 18 Oct 2022 14:27:51 +0100 Subject: [PATCH] ENH: chtMultiRegionFoam - add frozenFlow option Also for 'chtMultiRegionSimpleFoam' and 'chtMultiRegionTwoPhaseEulerFoam'. --- .../chtMultiRegionFoam/chtMultiRegionFoam.C | 26 +++++++++++++------ .../chtMultiRegionSimpleFoam.C | 26 +++++++++++++------ .../readFluidMultiRegionSIMPLEControls.H | 2 ++ .../fluid/setRegionFluidFields.H | 2 -- .../chtMultiRegionTwoPhaseEulerFoam.C | 24 +++++++++++------ .../readFluidMultiRegionPIMPLEControls.H | 2 ++ .../fluid/setRegionFluidFields.H | 2 -- .../readFluidMultiRegionPIMPLEControls.H | 2 ++ .../fluid/setRegionFluidFields.H | 2 -- .../solid/setRegionSolidFields.H | 1 - 10 files changed, 58 insertions(+), 31 deletions(-) diff --git a/applications/solvers/heatTransfer/chtMultiRegionFoam/chtMultiRegionFoam.C b/applications/solvers/heatTransfer/chtMultiRegionFoam/chtMultiRegionFoam.C index ea6760482a7..2c89e817fe9 100644 --- a/applications/solvers/heatTransfer/chtMultiRegionFoam/chtMultiRegionFoam.C +++ b/applications/solvers/heatTransfer/chtMultiRegionFoam/chtMultiRegionFoam.C @@ -113,15 +113,19 @@ int main(int argc, char *argv[]) forAll(fluidRegions, i) { - #include "setRegionFluidFields.H" + fvMesh& mesh = fluidRegions[i]; + #include "readFluidMultiRegionPIMPLEControls.H" + #include "setRegionFluidFields.H" #include "solveFluid.H" } forAll(solidRegions, i) { - #include "setRegionSolidFields.H" + fvMesh& mesh = solidRegions[i]; + #include "readSolidMultiRegionPIMPLEControls.H" + #include "setRegionSolidFields.H" #include "solveSolid.H" } @@ -133,8 +137,10 @@ int main(int argc, char *argv[]) forAll(fluidRegions, i) { - #include "setRegionFluidFields.H" + fvMesh& mesh = fluidRegions[i]; + #include "readFluidMultiRegionPIMPLEControls.H" + #include "setRegionFluidFields.H" if (!frozenFlow) { Info<< "\nSolving for fluid region " @@ -166,20 +172,24 @@ int main(int argc, char *argv[]) forAll(fluidRegions, i) { + fvMesh& mesh = fluidRegions[i]; + Info<< "\nSolving for fluid region " << fluidRegions[i].name() << endl; - #include "setRegionFluidFields.H" - #include "readFluidMultiRegionPIMPLEControls.H" - frozenFlow = true; - #include "solveFluid.H" + #include "readFluidMultiRegionPIMPLEControls.H" + #include "setRegionFluidFields.H" + frozenFlow = true; + #include "solveFluid.H" } forAll(solidRegions, i) { + fvMesh& mesh = solidRegions[i]; + Info<< "\nSolving for solid region " << solidRegions[i].name() << endl; - #include "setRegionSolidFields.H" #include "readSolidMultiRegionPIMPLEControls.H" + #include "setRegionSolidFields.H" #include "solveSolid.H" } diff --git a/applications/solvers/heatTransfer/chtMultiRegionFoam/chtMultiRegionSimpleFoam/chtMultiRegionSimpleFoam.C b/applications/solvers/heatTransfer/chtMultiRegionFoam/chtMultiRegionSimpleFoam/chtMultiRegionSimpleFoam.C index 21a452df9f8..bc802e0265d 100644 --- a/applications/solvers/heatTransfer/chtMultiRegionFoam/chtMultiRegionSimpleFoam/chtMultiRegionSimpleFoam.C +++ b/applications/solvers/heatTransfer/chtMultiRegionFoam/chtMultiRegionSimpleFoam/chtMultiRegionSimpleFoam.C @@ -76,17 +76,21 @@ int main(int argc, char *argv[]) forAll(fluidRegions, i) { + fvMesh& mesh = fluidRegions[i]; + Info<< "\nSolving for fluid region " << fluidRegions[i].name() << endl; - #include "setRegionFluidFields.H" #include "readFluidMultiRegionSIMPLEControls.H" + #include "setRegionFluidFields.H" #include "solveFluid.H" } forAll(solidRegions, i) { - #include "setRegionSolidFields.H" + fvMesh& mesh = solidRegions[i]; + #include "readSolidMultiRegionSIMPLEControls.H" + #include "setRegionSolidFields.H" #include "solveSolid.H" } @@ -99,8 +103,10 @@ int main(int argc, char *argv[]) forAll(fluidRegions, i) { - #include "setRegionFluidFields.H" + fvMesh& mesh = fluidRegions[i]; + #include "readSolidMultiRegionSIMPLEControls.H" + #include "setRegionFluidFields.H" if (!frozenFlow) { #include "pEqn.H" @@ -121,20 +127,24 @@ int main(int argc, char *argv[]) forAll(fluidRegions, i) { + fvMesh& mesh = fluidRegions[i]; + Info<< "\nSolving for fluid region " << fluidRegions[i].name() << endl; - #include "setRegionFluidFields.H" - #include "readFluidMultiRegionSIMPLEControls.H" - frozenFlow = true; - #include "solveFluid.H" + #include "readFluidMultiRegionSIMPLEControls.H" + #include "setRegionFluidFields.H" + frozenFlow = true; + #include "solveFluid.H" } forAll(solidRegions, i) { + fvMesh& mesh = solidRegions[i]; + Info<< "\nSolving for solid region " << solidRegions[i].name() << endl; - #include "setRegionSolidFields.H" #include "readSolidMultiRegionSIMPLEControls.H" + #include "setRegionSolidFields.H" #include "solveSolid.H" } diff --git a/applications/solvers/heatTransfer/chtMultiRegionFoam/chtMultiRegionSimpleFoam/fluid/readFluidMultiRegionSIMPLEControls.H b/applications/solvers/heatTransfer/chtMultiRegionFoam/chtMultiRegionSimpleFoam/fluid/readFluidMultiRegionSIMPLEControls.H index 332001c2945..94558641738 100644 --- a/applications/solvers/heatTransfer/chtMultiRegionFoam/chtMultiRegionSimpleFoam/fluid/readFluidMultiRegionSIMPLEControls.H +++ b/applications/solvers/heatTransfer/chtMultiRegionFoam/chtMultiRegionSimpleFoam/fluid/readFluidMultiRegionSIMPLEControls.H @@ -5,3 +5,5 @@ const bool momentumPredictor = simple.getOrDefault("momentumPredictor", true); + + simple.readIfPresent("frozenFlow", frozenFlowFluid[i]); diff --git a/applications/solvers/heatTransfer/chtMultiRegionFoam/chtMultiRegionSimpleFoam/fluid/setRegionFluidFields.H b/applications/solvers/heatTransfer/chtMultiRegionFoam/chtMultiRegionSimpleFoam/fluid/setRegionFluidFields.H index 28c4418da82..783ebfd1da3 100644 --- a/applications/solvers/heatTransfer/chtMultiRegionFoam/chtMultiRegionSimpleFoam/fluid/setRegionFluidFields.H +++ b/applications/solvers/heatTransfer/chtMultiRegionFoam/chtMultiRegionSimpleFoam/fluid/setRegionFluidFields.H @@ -1,5 +1,3 @@ - const fvMesh& mesh = fluidRegions[i]; - rhoThermo& thermo = thermoFluid[i]; thermo.validate(args.executable(), "h", "e"); diff --git a/applications/solvers/heatTransfer/chtMultiRegionFoam/chtMultiRegionTwoPhaseEulerFoam/chtMultiRegionTwoPhaseEulerFoam.C b/applications/solvers/heatTransfer/chtMultiRegionFoam/chtMultiRegionTwoPhaseEulerFoam/chtMultiRegionTwoPhaseEulerFoam.C index 0da321d1886..abc0f5f6ac2 100644 --- a/applications/solvers/heatTransfer/chtMultiRegionFoam/chtMultiRegionTwoPhaseEulerFoam/chtMultiRegionTwoPhaseEulerFoam.C +++ b/applications/solvers/heatTransfer/chtMultiRegionFoam/chtMultiRegionTwoPhaseEulerFoam/chtMultiRegionTwoPhaseEulerFoam.C @@ -5,7 +5,7 @@ \\ / A nd | www.openfoam.com \\/ M anipulation | ------------------------------------------------------------------------------- - Copyright (C) 2018 OpenCFD Ltd. + Copyright (C) 2018-2022 OpenCFD Ltd. ------------------------------------------------------------------------------- License This file is part of OpenFOAM. @@ -108,19 +108,23 @@ int main(int argc, char *argv[]) forAll(fluidRegions, i) { + fvMesh& mesh = fluidRegions[i]; + Info<< "\nSolving for fluid region " << fluidRegions[i].name() << endl; - #include "setRegionFluidFields.H" #include "readFluidMultiRegionPIMPLEControls.H" + #include "setRegionFluidFields.H" #include "solveFluid.H" } forAll(solidRegions, i) { + fvMesh& mesh = solidRegions[i]; + Info<< "\nSolving for solid region " << solidRegions[i].name() << endl; - #include "setRegionSolidFields.H" #include "readSolidMultiRegionPIMPLEControls.H" + #include "setRegionSolidFields.H" #include "solveSolid.H" } @@ -135,20 +139,24 @@ int main(int argc, char *argv[]) forAll(fluidRegions, i) { + fvMesh& mesh = fluidRegions[i]; + Info<< "\nSolving for fluid region " << fluidRegions[i].name() << endl; - #include "setRegionFluidFields.H" - #include "readFluidMultiRegionPIMPLEControls.H" - frozenFlow = true; - #include "solveFluid.H" + #include "readFluidMultiRegionPIMPLEControls.H" + #include "setRegionFluidFields.H" + frozenFlow = true; + #include "solveFluid.H" } forAll(solidRegions, i) { + fvMesh& mesh = solidRegions[i]; + Info<< "\nSolving for solid region " << solidRegions[i].name() << endl; - #include "setRegionSolidFields.H" #include "readSolidMultiRegionPIMPLEControls.H" + #include "setRegionSolidFields.H" #include "solveSolid.H" } } diff --git a/applications/solvers/heatTransfer/chtMultiRegionFoam/chtMultiRegionTwoPhaseEulerFoam/fluid/readFluidMultiRegionPIMPLEControls.H b/applications/solvers/heatTransfer/chtMultiRegionFoam/chtMultiRegionTwoPhaseEulerFoam/fluid/readFluidMultiRegionPIMPLEControls.H index 7238b5a67a9..9e76ce95743 100644 --- a/applications/solvers/heatTransfer/chtMultiRegionFoam/chtMultiRegionTwoPhaseEulerFoam/fluid/readFluidMultiRegionPIMPLEControls.H +++ b/applications/solvers/heatTransfer/chtMultiRegionFoam/chtMultiRegionTwoPhaseEulerFoam/fluid/readFluidMultiRegionPIMPLEControls.H @@ -9,3 +9,5 @@ ( pimpleDict.getOrDefault<int>("nEnergyCorrectors", 1) ); + + pimpleDict.readIfPresent("frozenFlow", frozenFlowFluid[i]); diff --git a/applications/solvers/heatTransfer/chtMultiRegionFoam/chtMultiRegionTwoPhaseEulerFoam/fluid/setRegionFluidFields.H b/applications/solvers/heatTransfer/chtMultiRegionFoam/chtMultiRegionTwoPhaseEulerFoam/fluid/setRegionFluidFields.H index 75432934920..c11535179be 100644 --- a/applications/solvers/heatTransfer/chtMultiRegionFoam/chtMultiRegionTwoPhaseEulerFoam/fluid/setRegionFluidFields.H +++ b/applications/solvers/heatTransfer/chtMultiRegionFoam/chtMultiRegionTwoPhaseEulerFoam/fluid/setRegionFluidFields.H @@ -1,5 +1,3 @@ - fvMesh& mesh = fluidRegions[i]; - twoPhaseSystem& fluid = phaseSystemFluid[i]; phaseModel& phase1 = fluid.phase1(); diff --git a/applications/solvers/heatTransfer/chtMultiRegionFoam/fluid/readFluidMultiRegionPIMPLEControls.H b/applications/solvers/heatTransfer/chtMultiRegionFoam/fluid/readFluidMultiRegionPIMPLEControls.H index af3cbe03c59..d477e4992fe 100644 --- a/applications/solvers/heatTransfer/chtMultiRegionFoam/fluid/readFluidMultiRegionPIMPLEControls.H +++ b/applications/solvers/heatTransfer/chtMultiRegionFoam/fluid/readFluidMultiRegionPIMPLEControls.H @@ -8,3 +8,5 @@ const bool momentumPredictor = pimple.getOrDefault("momentumPredictor", true); + + pimple.readIfPresent("frozenFlow", frozenFlowFluid[i]); diff --git a/applications/solvers/heatTransfer/chtMultiRegionFoam/fluid/setRegionFluidFields.H b/applications/solvers/heatTransfer/chtMultiRegionFoam/fluid/setRegionFluidFields.H index a35a63d52b9..7647af9bd7d 100644 --- a/applications/solvers/heatTransfer/chtMultiRegionFoam/fluid/setRegionFluidFields.H +++ b/applications/solvers/heatTransfer/chtMultiRegionFoam/fluid/setRegionFluidFields.H @@ -1,5 +1,3 @@ - fvMesh& mesh = fluidRegions[i]; - CombustionModel<rhoReactionThermo>& reaction = reactionFluid[i]; rhoReactionThermo& thermo = reaction.thermo(); diff --git a/applications/solvers/heatTransfer/chtMultiRegionFoam/solid/setRegionSolidFields.H b/applications/solvers/heatTransfer/chtMultiRegionFoam/solid/setRegionSolidFields.H index 7790ac9659a..55032570851 100644 --- a/applications/solvers/heatTransfer/chtMultiRegionFoam/solid/setRegionSolidFields.H +++ b/applications/solvers/heatTransfer/chtMultiRegionFoam/solid/setRegionSolidFields.H @@ -1,4 +1,3 @@ -fvMesh& mesh = solidRegions[i]; solidThermo& thermo = thermos[i]; tmp<volScalarField> trho = thermo.rho(); -- GitLab