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;
// ************************************************************************* //