diff --git a/applications/solvers/heatTransfer/solidFoam/Make/files b/applications/solvers/heatTransfer/solidFoam/Make/files index 5e2a2eeaf0db485ea80226a75ee7674ab13edae3..1d73069718cf40ddb9ac1157b383b161ec3b5dc2 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 5236743418f12889c30271484946c58270d83f32..ab6d205602b9f48cc2d24ffa5bda5b7101167801 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 0000000000000000000000000000000000000000..af0ee9af056a48e19269df60a1c6e498d125f72d --- /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 <http://www.gnu.org/licenses/>. + +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 0000000000000000000000000000000000000000..90317f67c612fe56779a24b3a858362b377d78a3 --- /dev/null +++ b/applications/solvers/heatTransfer/solidFoam/solidDiffusionNo.H @@ -0,0 +1,31 @@ +scalar DiNum = -GREAT; + +{ + tmp<volScalarField> magKappa; + if (thermo.isotropic()) + { + magKappa = thermo.kappa(); + } + else + { + magKappa = mag(thermo.Kappa()); + } + + tmp<volScalarField> tcp = thermo.Cp(); + const volScalarField& cp = tcp(); + + tmp<volScalarField> 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 ccf2bef50416bcbef859c1b431e5d14181dcd536..6b75bf7c4dddbd1cecbb04b8362b39608de3a4ab 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 0000000000000000000000000000000000000000..55bd862448620dcbaf9dfdcdf05d65b15f1453af --- /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 0000000000000000000000000000000000000000..d565f760b4fa6196177fdb8aea25027da35ce491 --- /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 43dc6aac73fc996e72eb9836f7b78fe03c29472b..70a7fcb1af5c73797d3b7ea763a799b69ca60817 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; // ************************************************************************* //