CFD Online Discussion Forums

CFD Online Discussion Forums (
-   OpenFOAM (
-   -   oldTime() outputting current time value: (

gtg258f August 9, 2012 10:33

oldTime() outputting current time value:
1 Attachment(s)
Dear all,

I have a solver with an outer time loop, and inner loop with sub-iterations. In order to check the convergence of the outer and inner iterations, I wanted to access my field values at the
- previous time step: p.oldTime()
- previous inner iteration: p.prevIter()

While prev.Iter() seems to work fine, I am encountering issues with oldTime() and was wondering if I was doing something wrong.

I am storing values with storePrevIter(), should I use something else for oldTime()?

Another option is that there may be a memory issue with oldTime:
when one adds print statements before modifying a field value, then oldTime() is stored properly whereas it is not without the print statement (which seems fishy)

Playing around with the problem, I wrote a very simple code (attached) with the following algorithm, and a set-up ready to run (though the example code really can run on any case)

for( time )
    //comment 1: print DP.oldTime()
    for( innerIteration<2 )
    //comment 2: print p.oldTime()
    p = DP

without any print statement, the values at the end of the first time steps are:
p[0] oldTime, prevIter, current = 4 1 4
DP[0] oldTime, prevIter, current = 4 2 4

with the print statements in comment 1 and 2, the values are properly stored and read as:
p[0] oldTime, prevIter, current = 1 1 4
DP[0] oldTime, prevIter, current = 1 2 4

Any help on that problem would be great,

All times are GMT -4. The time now is 23:02.