View Issue Details

IDProjectCategoryView StatusLast Update
0000862OpenFOAMBugpublic2013-05-21 11:07
Reporteruser369Assigned Touser2 
PrioritynormalSeverityminorReproducibilityalways
Status resolvedResolutionno change required 
PlatformLinuxOSOpenSuseOS Version11.3
Summary0000862: Intermediate phi, U fields cause pressure boundaries that depend on phi, U to behave incorrectly with nonOrth correctors.
DescriptionIf the pressure boundary condition depend on phi or U (e.g. totalPressure) then the correctBoundaryConditions called at the end of the pressure solve will result in the pressure boundaries being evaluated incorrectly since the phi and U fields at that stage are intermediate.

I.e. during the pressure evaluation for example U = UEqn.H()/UEqn.A() and phi = fvc::interpolate(U) & mesh.Sf().

If these value are then used to calculate totalPressure (or other boundaries that depend on the true velocity/flux) their evaluation will result in an incorrect pressure boundary. The problem is more pronounced when nonOrthogonal correctors are used and less pronounced when a PIMPLE solver with a large number of outer iterations is used.

The problem can be addressed by defining new intermediate variables for U and phi, e.g. phiStar, Ustar, so that U and phi always refer to the latest velocity and flux fields. Storage is increased by an insignificant amount.
Steps To ReproduceAny case using a totalPressure boundary on an inflow condition.
TagsNo tags attached.

Activities

user2

2013-05-21 10:54

  ~0002224

This is already handled in 2.2.x, e.g. see the simpleFoam pEqn where we no longer update phi and U until the end of the pressure solve:

    volVectorField HbyA("HbyA", U); // note copy of U field
    HbyA = rAU*UEqn().H();
    UEqn.clear();

    // not updating phi, but phiHbyA
    surfaceScalarField phiHbyA("phiHbyA", fvc::interpolate(HbyA) & mesh.Sf());

Issue History

Date Modified Username Field Change
2013-05-21 10:37 user369 New Issue
2013-05-21 10:54 user2 Note Added: 0002224
2013-05-21 11:07 user2 Status new => resolved
2013-05-21 11:07 user2 Resolution open => no change required
2013-05-21 11:07 user2 Assigned To => user2