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,18 +1019,11 @@ void Foam::solutionControl::reconstructTransientVelocity
const volScalarField& p const volScalarField& p
) const ) 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 // Reconstruct the velocity using all the components from original equation
U = 1.0/(1.0/rAU + ddtUEqn.A())* U = 1.0/(1.0/rAU + ddtUEqn.A())*
( (
U/rAU + ddtUEqn.H() - fvc::grad(p) U/rAU + ddtUEqn.H() - fvc::grad(p)
); );
// Correct boundary conditions with relative flux
U.correctBoundaryConditions();
// Get name and the corresponding index // Get name and the corresponding index
const word& UName = U.name(); const word& UName = U.name();
@ -1074,6 +1067,13 @@ void Foam::solutionControl::reconstructTransientVelocity
// Now that the normal component is zero, add the normal component from // Now that the normal component is zero, add the normal component from
// conservative flux // conservative flux
faceU += phi*rSf; 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();
} }