diff --git a/applications/solvers/modules/compressibleMultiphaseVoF/compressibleMultiphaseVoF.C b/applications/solvers/modules/compressibleMultiphaseVoF/compressibleMultiphaseVoF.C index f9bdab5580..00cdaa7e09 100644 --- a/applications/solvers/modules/compressibleMultiphaseVoF/compressibleMultiphaseVoF.C +++ b/applications/solvers/modules/compressibleMultiphaseVoF/compressibleMultiphaseVoF.C @@ -102,7 +102,7 @@ Foam::solvers::compressibleMultiphaseVoF::compressibleMultiphaseVoF // Read the controls readControls(); - if (correctPhi) + if (correctPhi || mesh.topoChanging()) { rAU = new volScalarField ( diff --git a/applications/solvers/modules/compressibleVoF/compressibleVoF.C b/applications/solvers/modules/compressibleVoF/compressibleVoF.C index 960bb5730a..54e1c4c878 100644 --- a/applications/solvers/modules/compressibleVoF/compressibleVoF.C +++ b/applications/solvers/modules/compressibleVoF/compressibleVoF.C @@ -119,7 +119,7 @@ Foam::solvers::compressibleVoF::compressibleVoF(fvMesh& mesh) // Read the controls readControls(); - if (correctPhi) + if (correctPhi || mesh.topoChanging()) { rAU = new volScalarField ( diff --git a/applications/solvers/modules/incompressibleMultiphaseVoF/incompressibleMultiphaseVoF.C b/applications/solvers/modules/incompressibleMultiphaseVoF/incompressibleMultiphaseVoF.C index 4540f8bc93..4abf5d8958 100644 --- a/applications/solvers/modules/incompressibleMultiphaseVoF/incompressibleMultiphaseVoF.C +++ b/applications/solvers/modules/incompressibleMultiphaseVoF/incompressibleMultiphaseVoF.C @@ -102,26 +102,29 @@ Foam::solvers::incompressibleMultiphaseVoF::incompressibleMultiphaseVoF // Read the controls readControls(); + if (correctPhi || mesh.topoChanging()) + { + rAU = new volScalarField + ( + IOobject + ( + "rAU", + runTime.name(), + mesh, + IOobject::READ_IF_PRESENT, + IOobject::AUTO_WRITE + ), + mesh, + dimensionedScalar(dimTime/dimDensity, 1) + ); + } + if (!runTime.restart() || !divergent()) { + correctUphiBCs(U_, phi, true); + if (correctPhi) { - rAU = new volScalarField - ( - IOobject - ( - "rAU", - runTime.name(), - mesh, - IOobject::READ_IF_PRESENT, - IOobject::AUTO_WRITE - ), - mesh, - dimensionedScalar(dimTime/dimDensity, 1) - ); - - correctUphiBCs(U_, phi, true); - CorrectPhi ( phi, @@ -135,8 +138,6 @@ Foam::solvers::incompressibleMultiphaseVoF::incompressibleMultiphaseVoF } else { - correctUphiBCs(U_, phi, true); - CorrectPhi ( phi, diff --git a/applications/solvers/modules/incompressibleVoF/incompressibleVoF.C b/applications/solvers/modules/incompressibleVoF/incompressibleVoF.C index a953e5cad5..5ce3910ca6 100644 --- a/applications/solvers/modules/incompressibleVoF/incompressibleVoF.C +++ b/applications/solvers/modules/incompressibleVoF/incompressibleVoF.C @@ -87,26 +87,29 @@ Foam::solvers::incompressibleVoF::incompressibleVoF(fvMesh& mesh) // Read the controls readControls(); + if (correctPhi || mesh.topoChanging()) + { + rAU = new volScalarField + ( + IOobject + ( + "rAU", + runTime.name(), + mesh, + IOobject::READ_IF_PRESENT, + IOobject::AUTO_WRITE + ), + mesh, + dimensionedScalar(dimTime/dimDensity, 1) + ); + } + if (!runTime.restart() || !divergent()) { + correctUphiBCs(U_, phi, true); + if (correctPhi) { - rAU = new volScalarField - ( - IOobject - ( - "rAU", - runTime.name(), - mesh, - IOobject::READ_IF_PRESENT, - IOobject::AUTO_WRITE - ), - mesh, - dimensionedScalar(dimTime/dimDensity, 1) - ); - - correctUphiBCs(U_, phi, true); - CorrectPhi ( phi, @@ -120,8 +123,6 @@ Foam::solvers::incompressibleVoF::incompressibleVoF(fvMesh& mesh) } else { - correctUphiBCs(U_, phi, true); - CorrectPhi ( phi, diff --git a/applications/solvers/modules/isothermalFluid/isothermalFluid.C b/applications/solvers/modules/isothermalFluid/isothermalFluid.C index dcd921a99e..89a9d0415f 100644 --- a/applications/solvers/modules/isothermalFluid/isothermalFluid.C +++ b/applications/solvers/modules/isothermalFluid/isothermalFluid.C @@ -298,7 +298,7 @@ void Foam::solvers::isothermalFluid::preSolve() // Store divrhoU from the previous mesh so that it can be mapped // and used in correctPhi to ensure the corrected phi has the // same divergence - if (correctPhi) + if (correctPhi || mesh.topoChanging()) { divrhoU = new volScalarField ( diff --git a/applications/solvers/modules/multiphaseEuler/multiphaseEuler/multiphaseEuler.C b/applications/solvers/modules/multiphaseEuler/multiphaseEuler/multiphaseEuler.C index c653cd3388..1b1e0fb408 100644 --- a/applications/solvers/modules/multiphaseEuler/multiphaseEuler/multiphaseEuler.C +++ b/applications/solvers/modules/multiphaseEuler/multiphaseEuler/multiphaseEuler.C @@ -215,7 +215,7 @@ void Foam::solvers::multiphaseEuler::preSolve() // Store divU from the previous mesh so that it can be // mapped and used in correctPhi to ensure the corrected phi // has the same divergence - if (correctPhi) + if (correctPhi || mesh.topoChanging()) { // Construct and register divU for mapping divU = new volScalarField