diff --git a/applications/solvers/heatTransfer/solidFoam/Make/files b/applications/solvers/heatTransfer/solidFoam/Make/files index 5e2a2eeaf0..1d73069718 100644 --- a/applications/solvers/heatTransfer/solidFoam/Make/files +++ b/applications/solvers/heatTransfer/solidFoam/Make/files @@ -1,3 +1,4 @@ +solidRegionDiffNo.C solidFoam.C EXE = $(FOAM_APPBIN)/solidFoam diff --git a/applications/solvers/heatTransfer/solidFoam/Make/options b/applications/solvers/heatTransfer/solidFoam/Make/options index 5236743418..ab6d205602 100644 --- a/applications/solvers/heatTransfer/solidFoam/Make/options +++ b/applications/solvers/heatTransfer/solidFoam/Make/options @@ -1,4 +1,6 @@ EXE_INC = \ + -I../chtMultiRegionFoam/include \ + -I../chtMultiRegionFoam/solid \ -I$(LIB_SRC)/finiteVolume/lnInclude \ -I$(LIB_SRC)/meshTools/lnInclude \ -I$(LIB_SRC)/dynamicMesh/lnInclude \ diff --git a/applications/solvers/heatTransfer/solidFoam/dummyCourantNo.H b/applications/solvers/heatTransfer/solidFoam/dummyCourantNo.H new file mode 100644 index 0000000000..af0ee9af05 --- /dev/null +++ b/applications/solvers/heatTransfer/solidFoam/dummyCourantNo.H @@ -0,0 +1,36 @@ +/*---------------------------------------------------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | + \\ / A nd | www.openfoam.com + \\/ M anipulation | +------------------------------------------------------------------------------- + Copyright (C) 2022 OpenCFD Ltd. +------------------------------------------------------------------------------- +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 . + +Global + CourantNo + +Description + Dummy (fluid) Courant number. + +\*---------------------------------------------------------------------------*/ + +scalar CoNum = 0.0; + +// ************************************************************************* // diff --git a/applications/solvers/heatTransfer/solidFoam/solidDiffusionNo.H b/applications/solvers/heatTransfer/solidFoam/solidDiffusionNo.H new file mode 100644 index 0000000000..90317f67c6 --- /dev/null +++ b/applications/solvers/heatTransfer/solidFoam/solidDiffusionNo.H @@ -0,0 +1,31 @@ +scalar DiNum = -GREAT; + +{ + tmp magKappa; + if (thermo.isotropic()) + { + magKappa = thermo.kappa(); + } + else + { + magKappa = mag(thermo.Kappa()); + } + + tmp tcp = thermo.Cp(); + const volScalarField& cp = tcp(); + + tmp trho = thermo.rho(); + const volScalarField& rho = trho(); + + DiNum = max + ( + solidRegionDiffNo + ( + mesh, + runTime, + rho*cp, + magKappa() + ), + DiNum + ); +} diff --git a/applications/solvers/heatTransfer/solidFoam/solidFoam.C b/applications/solvers/heatTransfer/solidFoam/solidFoam.C index ccf2bef504..6b75bf7c4d 100644 --- a/applications/solvers/heatTransfer/solidFoam/solidFoam.C +++ b/applications/solvers/heatTransfer/solidFoam/solidFoam.C @@ -41,6 +41,8 @@ Description #include "fvOptions.H" #include "simpleControl.H" #include "pimpleControl.H" +#include "dummyCourantNo.H" +#include "solidRegionDiffNo.H" #include "coordinateSystem.H" // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // @@ -88,17 +90,31 @@ int main(int argc, char *argv[]) { pimpleControl pimple(mesh); + #include "createDyMControls.H" + while (runTime.run()) { + #include "readDyMControls.H" + #include "readSolidTimeControls.H" + + #include "solidDiffusionNo.H" + #include "setMultiRegionDeltaT.H" + ++runTime; Info<< "Time = " << runTime.timeName() << nl << endl; while (pimple.loop()) { - if (pimple.firstIter()) + if (pimple.firstIter() || moveMeshOuterCorrectors) { - mesh.update(); + // Do any mesh changes + mesh.controlledUpdate(); + + if (mesh.changing() && checkMeshCourantNo) + { + #include "meshCourantNo.H" + } } while (pimple.correct()) diff --git a/applications/solvers/heatTransfer/solidFoam/solidRegionDiffNo.C b/applications/solvers/heatTransfer/solidFoam/solidRegionDiffNo.C new file mode 120000 index 0000000000..55bd862448 --- /dev/null +++ b/applications/solvers/heatTransfer/solidFoam/solidRegionDiffNo.C @@ -0,0 +1 @@ +../chtMultiRegionFoam/solid/solidRegionDiffNo.C \ No newline at end of file diff --git a/applications/solvers/heatTransfer/solidFoam/solidRegionDiffNo.H b/applications/solvers/heatTransfer/solidFoam/solidRegionDiffNo.H new file mode 120000 index 0000000000..d565f760b4 --- /dev/null +++ b/applications/solvers/heatTransfer/solidFoam/solidRegionDiffNo.H @@ -0,0 +1 @@ +../chtMultiRegionFoam/solid/solidRegionDiffNo.H \ No newline at end of file diff --git a/tutorials/heatTransfer/solidFoam/movingCone/system/controlDict b/tutorials/heatTransfer/solidFoam/movingCone/system/controlDict index 43dc6aac73..70a7fcb1af 100644 --- a/tutorials/heatTransfer/solidFoam/movingCone/system/controlDict +++ b/tutorials/heatTransfer/solidFoam/movingCone/system/controlDict @@ -44,9 +44,9 @@ timePrecision 6; runTimeModifiable true; -adjustTimeStep no; +adjustTimeStep yes; -maxCo 0.2; +maxDi 10; // ************************************************************************* //