Bugfix in solutionControl

I made a mistake previously: in attempting to make the BC's fully consistent, I
completely messed up the faceU field which is needed for all transient moving
mesh simulations.
This commit is contained in:
Vuko Vukcevic 2019-07-18 15:23:59 +02:00
parent cac07ccaed
commit c762381f90

View file

@ -1019,19 +1019,12 @@ void Foam::solutionControl::reconstructTransientVelocity
const volScalarField& p
) const
{
// If the mesh is moving, flux needs to be relative before boundary
// conditions for velocity are corrected. VV and IG, 4/Jan/2016.
fvc::makeRelative(phi, U);
// Reconstruct the velocity using all the components from original equation
U = 1.0/(1.0/rAU + ddtUEqn.A())*
(
U/rAU + ddtUEqn.H() - fvc::grad(p)
);
// Correct boundary conditions with relative flux
U.correctBoundaryConditions();
// Get name and the corresponding index
const word& UName = U.name();
const label i = indices_[UName];
@ -1074,6 +1067,13 @@ void Foam::solutionControl::reconstructTransientVelocity
// Now that the normal component is zero, add the normal component from
// conservative flux
faceU += phi*rSf;
// If the mesh is moving, flux needs to be relative before boundary
// conditions for velocity are corrected. VV and IG, 4/Jan/2016.
fvc::makeRelative(phi, U);
// Correct boundary conditions with relative flux
U.correctBoundaryConditions();
}