Skip to content

pimpleFoam and pisoFoam deltaT not respecting controlDict value when running SPDP (but does for DP)

Summary

deltaT is not being respected by pimpleFoam and pisoFoam when in SPDP. This is for a deltaT of 7.5e-05, so not an issue of being too small for single precision. When solving in DP, deltaT is as expected.

Steps to reproduce

Simply run pimpleFoam, both in SPDP and DP to see how DP respects the deltaT prescribed in controlDict, while SPDP generates a random value. The random value is not even very close to the controlDict deltaT (it's off by ~20%), and it varies with each iteration. This prevents endTime writing on the last iteration, makes results processing difficult, etc.

Example case

https://www.dropbox.com/s/bmfxslcx7lj3wec/issue2227_deltaT_SPDP.tar.xz?dl=0 I have a solved (steady state) 500k cell case which is about ~50Mb. I can send it through another channel if you prefer.

What is the current bug behaviour?

Random deltaT - differing from controlDict value by up to 20% - being applied to each iteration when running SPDP

What is the expected correct behavior?

deltaT per controlDict, as is the case when running DP

Relevant logs and/or images

controlDict

startFrom         startTime;
**startTime         400;**
stopAt            endTime;
endTime           400.20025;
**deltaT            7.5e-05;**
writeControl      timeStep;
writeInterval     267;
monStart          400.1002;
purgeWrite        100;
writeFormat       ascii;
writeCompression  on;
writePrecision    7;
timeFormat        general;
timePrecision     11;
runTimeModifiable yes;

DP - expected behavior

Build  : f4ccdec894-20210902 OPENFOAM=2012 patch=210618
Arch   : "LSB;label=32;scalar=64"

Starting time loop

Courant Number mean: 0.007378641 max: 2.702994
**Time = 400.000075**

PIMPLE: iteration 1
velocityDampingConstraint damp damped 3 (0.000564893%) of cells
smoothSolver:  Solving for Ux, Initial residual = 4.640301e-07, Final residual = 1.441689e-08, No Iterations 1
smoothSolver:  Solving for Uy, Initial residual = 4.99919e-05, Final residual = 5.043536e-08, No Iterations 3
smoothSolver:  Solving for Uz, Initial residual = 6.165809e-06, Final residual = 1.953994e-08, No Iterations 2
GAMG:  Solving for p, Initial residual = 0.3755113, Final residual = 0.02669367, No Iterations 1
GAMG:  Solving for p, Initial residual = 0.02671251, Final residual = 0.001826018, No Iterations 3
time step continuity errors : sum local = 1.271702e-09, global = 1.048906e-11, cumulative = 1.048906e-11
GAMG:  Solving for p, Initial residual = 0.01341298, Final residual = 0.000939755, No Iterations 2
GAMG:  Solving for p, Initial residual = 0.001842091, Final residual = 9.379453e-07, No Iterations 28
time step continuity errors : sum local = 6.500214e-13, global = 2.663773e-17, cumulative = 1.048909e-11
smoothSolver:  Solving for omega, Initial residual = 2.509855e-07, Final residual = 1.21354e-08, No Iterations 1
bounding omega, min: -5721.012 max: 283395.7 average: 3373.21
smoothSolver:  Solving for k, Initial residual = 7.494289e-06, Final residual = 1.253224e-08, No Iterations 2
bounding k, min: -36.23042 max: 384.4423 average: 11.56855
ExecutionTime = 2.98 s  ClockTime = 3 s

Courant Number mean: 0.007378645 max: 2.242397
**Time = 400.00015**

SPDP - strange time step which is different from DP and controlDict specification

Build  : 4245909efb-20210203 OPENFOAM=2012
Arch   : "LSB;label=32;scalar=32;solveScalar=64"

Starting time loop

Courant Number mean: 0.007378641 max: 2.703078
**Time = 400.00006104**

PIMPLE: iteration 1
velocityDampingConstraint damp damped 3 (0.000564893%) of cells
smoothSolver:  Solving for Ux, Initial residual = 5.07782e-07, Final residual = 1.456293e-08, No Iterations 1
smoothSolver:  Solving for Uy, Initial residual = 4.999212e-05, Final residual = 5.043533e-08, No Iterations 3
smoothSolver:  Solving for Uz, Initial residual = 6.165838e-06, Final residual = 1.953989e-08, No Iterations 2
GAMG:  Solving for p, Initial residual = 0.3754919, Final residual = 0.02666569, No Iterations 1
GAMG:  Solving for p, Initial residual = 0.02669024, Final residual = 0.00183339, No Iterations 3
time step continuity errors : sum local = 1.534634e-09, global = 7.045955e-12, cumulative = 7.045955e-12
GAMG:  Solving for p, Initial residual = 0.01344812, Final residual = 0.0009438513, No Iterations 2
GAMG:  Solving for p, Initial residual = 0.001842122, Final residual = 9.032984e-07, No Iterations 29
time step continuity errors : sum local = 3.146365e-10, global = 1.095093e-12, cumulative = 8.141048e-12
smoothSolver:  Solving for omega, Initial residual = 2.511907e-07, Final residual = 1.21357e-08, No Iterations 1
bounding omega, min: -5721.12 max: 283415 average: 3373.219
smoothSolver:  Solving for k, Initial residual = 7.494291e-06, Final residual = 1.253221e-08, No Iterations 2
bounding k, min: -36.23087 max: 384.4427 average: 11.56855
ExecutionTime = 2.36 s  ClockTime = 3 s

Courant Number mean: 0.007378645 max: 2.242493
**Time = 400.00012207**

Environment information

  • OpenFOAM version : v2012 & v2106
  • Operating system : ubuntu1804
  • Hardware info : x86
  • Compiler : gcc
Edited by Aaron