diff --git a/applications/solvers/heatTransfer/solidFoam/createFields.H b/applications/solvers/heatTransfer/solidFoam/createFields.H index 3d77757e46..85942bc625 100644 --- a/applications/solvers/heatTransfer/solidFoam/createFields.H +++ b/applications/solvers/heatTransfer/solidFoam/createFields.H @@ -90,5 +90,24 @@ else ); } +// Consider mesh flux to correct for mesh deformation +bool meshFluxCorr(false); +if (mesh.solutionDict().found("SIMPLE")) +{ + meshFluxCorr = + mesh.solutionDict().subDict("SIMPLE").getOrDefault + ( + "meshFluxCorrection", false + ); +} +else if (mesh.solutionDict().found("PIMPLE")) +{ + meshFluxCorr = + mesh.solutionDict().subDict("PIMPLE").getOrDefault + ( + "meshFluxCorrection", false + ); +} + #include "createRadiationModel.H" #include "createFvOptions.H" diff --git a/applications/solvers/heatTransfer/solidFoam/hEqn.H b/applications/solvers/heatTransfer/solidFoam/hEqn.H index cef7cd7705..e5ad2fd8ad 100644 --- a/applications/solvers/heatTransfer/solidFoam/hEqn.H +++ b/applications/solvers/heatTransfer/solidFoam/hEqn.H @@ -11,14 +11,14 @@ fvOptions(rho, h) ); - if (mesh.changing()) + if (meshFluxCorr) { surfaceScalarField phihMesh ( fvc::interpolate(betav*rho*h)*mesh.phi() ); - hEqn -= fvc::div(phihMesh); + hEqn -= fvc::div(phihMesh); } hEqn.relax(); diff --git a/tutorials/heatTransfer/solidFoam/movingCone/system/fvSolution b/tutorials/heatTransfer/solidFoam/movingCone/system/fvSolution index 5a325225bd..ed0f32f505 100644 --- a/tutorials/heatTransfer/solidFoam/movingCone/system/fvSolution +++ b/tutorials/heatTransfer/solidFoam/movingCone/system/fvSolution @@ -46,6 +46,7 @@ PIMPLE nOuterCorrectors 2; nCorrectors 1; nNonOrthogonalCorrectors 0; + meshFluxCorrection true; } relaxationFactors