View Issue Details

IDProjectCategoryView StatusLast Update
0000604OpenFOAM[All Projects] Bugpublic2012-07-30 10:17
Reporteruser484Assigned Tohenry 
PrioritynormalSeveritymajorReproducibilityalways
Status resolvedResolutionno change required 
PlatformLinuxOSUbuntuOS Version10.04
Product Version 
Fixed in Version 
Summary0000604: pimple.turbCorr(): turbulence won't correct when outer iteration converged in a few iterations less than the specified number
DescriptionThe pimple method used by most solvers of OpenFOAM-2.0.1, e.g. pimpleFoam, reactingFoam, has a step in its outer loop like this:

            if (pimple.turbCorr())
            {
                turbulence->correct();
            }
Its function is to determine whether to correct turbulence at every outer iteration or only at the last iteration, because the function turbCorr() returns a value like this:

    return !turbOnFinalIterOnly_ || finalIter();

However, this won't function if the outer iteration converged before the final iteration is reached. For example, we specify turbOnFinalIterOnly as true and specify an outer iteration number as 5. If the outer iteration converged within 3 iterations, both "!turbOnFinalIterOnly_" and "finalIter()" will be false and the turbulence will be not correted within this time step because pimple.loop() is sure to stop once "criteriaSatisfied".

Steps To Reproduce1. Prepare a converged turbulent flow simulation using e.g. pimpleFoam.
2. specify turbOnFinalIterOnly as true and specify an large outer iteration number such as 10.
3. run it by foamJob and in the log file you will see very little information on solving turbulence, e.g. "Solving for k" during k-epsilson modeling.
TagsNo tags attached.

Activities

albertop

2012-07-30 02:02

reporter   ~0001511

Could you please try to reproduce this with OpenFOAM 2.1.1 or 2.1.x. since it is the latest version?

albertop

2012-07-30 02:22

reporter   ~0001512

Last edited: 2012-07-30 02:22

View 2 revisions

I have just verified the behavior of pimpleFoam in OpenFOAM 2.1.x using the TJunction tutorial, and it works correctly. For the purpose of the test I set nOuterCorrector to 20, and required a convergence criterion of 1.0e-2, high on purpose, for all variables.

As you can see below, k and epsilon are solved, even if the solution converges in 3 iterations.

PIMPLE: iteration 1
DILUPBiCG: Solving for Ux, Initial residual = 0.00316427, Final residual = 1.49954e-06, No Iterations 2
DILUPBiCG: Solving for Uy, Initial residual = 0.00327658, Final residual = 1.60154e-06, No Iterations 2
DILUPBiCG: Solving for Uz, Initial residual = 0.0149168, Final residual = 0.000350191, No Iterations 1
GAMG: Solving for p, Initial residual = 0.0149693, Final residual = 0.000132282, No Iterations 4
time step continuity errors : sum local = 9.25369e-06, global = -1.89273e-06, cumulative = 0.000338456
GAMG: Solving for p, Initial residual = 0.0103122, Final residual = 8.93249e-05, No Iterations 4
time step continuity errors : sum local = 6.24946e-06, global = -1.29489e-06, cumulative = 0.000337161
PIMPLE: iteration 2
DILUPBiCG: Solving for Ux, Initial residual = 0.00227282, Final residual = 1.21694e-06, No Iterations 2
DILUPBiCG: Solving for Uy, Initial residual = 0.00230468, Final residual = 1.46212e-06, No Iterations 2
DILUPBiCG: Solving for Uz, Initial residual = 0.00969703, Final residual = 0.000171532, No Iterations 1
GAMG: Solving for p, Initial residual = 0.0109956, Final residual = 9.51854e-05, No Iterations 5
time step continuity errors : sum local = 6.45981e-06, global = 2.20463e-06, cumulative = 0.000339366
GAMG: Solving for p, Initial residual = 0.00756189, Final residual = 6.21099e-05, No Iterations 5
time step continuity errors : sum local = 4.21921e-06, global = 1.45637e-06, cumulative = 0.000340822
PIMPLE: iteration 3
DILUPBiCG: Solving for Ux, Initial residual = 0.00167373, Final residual = 8.79086e-07, No Iterations 2
DILUPBiCG: Solving for Uy, Initial residual = 0.00174211, Final residual = 9.14473e-07, No Iterations 2
DILUPBiCG: Solving for Uz, Initial residual = 0.0075689, Final residual = 5.53124e-06, No Iterations 2
GAMG: Solving for p, Initial residual = 0.0118443, Final residual = 7.99277e-05, No Iterations 4
time step continuity errors : sum local = 5.48091e-06, global = 2.1269e-07, cumulative = 0.000341035
GAMG: Solving for p, Initial residual = 0.00235304, Final residual = 5.02443e-07, No Iterations 9
time step continuity errors : sum local = 3.45971e-08, global = -1.23694e-08, cumulative = 0.000341023
DILUPBiCG: Solving for epsilon, Initial residual = 0.0105702, Final residual = 3.47151e-07, No Iterations 2
DILUPBiCG: Solving for k, Initial residual = 0.0192725, Final residual = 5.3084e-07, No Iterations 2
PIMPLE: converged in 3 iterations
ExecutionTime = 5.03 s ClockTime = 5 s

user484

2012-07-30 10:06

  ~0001513

I have just checked the source files of OpenFOAM 2.1.0. There are substantial modifications on the pimple algorithm. It seems the problem has been solved.

I am sorry for being too busy to check it with OpenFOAM 2.1.x.

Issue History

Date Modified Username Field Change
2012-07-28 14:49 user484 New Issue
2012-07-30 02:02 albertop Note Added: 0001511
2012-07-30 02:22 albertop Note Added: 0001512
2012-07-30 02:22 albertop Note Edited: 0001512 View Revisions
2012-07-30 10:06 user484 Note Added: 0001513
2012-07-30 10:17 henry Status new => resolved
2012-07-30 10:17 henry Resolution open => no change required
2012-07-30 10:17 henry Assigned To => henry