Blog | Tools | Glossary | Search

Share:   |  feedback   |  Join us  

Background to timesteps and iterations

From petrofaq
Jump to navigation Jump to search
Reservoir simulation steps and iterations


  • An ECLIPSE simulation is made up of one or more report steps.
  • A report step is made up of one or more time steps.
  • A time step is made up of one or more non-linear iterations.
  • A non-linear iteration is made up of one or more linear iterations.


When you set up the data model to run ECLIPSE, you are asked to specify the report steps that you want. You therefore have direct control of the number of report steps and the time gap between them. Reducing the number of report steps can sometimes reduce the cpu time.

ECLIPSE has default values that control how many timesteps will be used to reach the next report that you have asked for. These default values will work well in most cases, but there are times when you may need to adjust some of the defaults so that the simulation takes fewer timesteps. In many (but not all) cases, fewer time steps will lead to less cpu time. In some difficult cases, reducing the maximum timestep may speed up the run.

Different default values also control how many non-linear iterations will be used to solve each timestep. These values should normally be left unchanged. In a few cases, adjustments to the convergence criteria can improve the performance of the simulator. In most cases however the greatest improvements in performance are obtained by identifying the cause of the non-linear problem and changing the data model to reduce the non-linearity. The major part of this document will explain how to avoid problems of this type, and how to find and fix the problems if they do occur.

By the time problems occur in the linear iterations, it is usually too late to fix them by adjusting the linear convergence control. Some controls can be changed in extreme circumstances, but the best advice is to avoid such problems by controlling the timestepping and the non-linear iterations.

Reports of timesteps and iterations

The number of report steps, time steps and non-linear iterations can be found in both the PRT file and the LOG file - the shorter form of output. Details are reported in a different way in ECLIPSE 100 and ECLIPSE 300.

ECLIPSE 100

For an ECLIPSE 100 log file called <model name>.LOG that contains one line for each timestep. Each line will be of the form:

 STEP 15 TIME= 400.00 DAYS ( +30.0 DAYS REPT 3 ITS) (4-FEB-2022) 

"STEP 15" means this is the 15th timestep.
"TIME= 400.00 DAYS" means there have been 400 simulated days since the beginning of the simulation.
"+30.0 DAYS" shows that the latest timestep was of 30 days.
"REPT" is a mnemonic explaining why 30 days were chosen. "REPT" means that a report step has been reached.
"3 ITS" mean 3 non-linear iterations were needed to solve the 30 day timestep.
"(4-FEB-2022)" is the current simulation date.

Number of non-linear iterations demostrates how well the model is converging to a solution:

  • 1 non-linear per timestep means the step was very easy to converge
  • 2 to 3 non-linears per timestep means the step was easy to converge
  • 4 to 9 non-linears per timestep shows an increasingly difficult problem
  • > 10 non-linears per timestep can mean a problem with the model

See more: Eclipse Run Problems And Errors


For a number of timesteps, the file will look like this:

STEP 1 TIME= 2.40 HOURS ( +2.40 HOURS INIT 4 ITS) (19-OCT-1982)
STEP 2 TIME= 9.60 HOURS ( +7.20 HOURS MAXF 2 ITS) (19-OCT-1982)
STEP 3 TIME= 1.30 DAYS (+21.60 HOURS MAXF 2 ITS) (20-OCT-1982)
STEP 4 TIME= 4.00 DAYS ( +2.7 DAYS MAXF 3 ITS) (23-OCT-1982)
STEP 5 TIME= 12.10 DAYS ( +8.1 DAYS MAXF 3 ITS) (31-OCT-1982)
STEP 6 TIME= 29.22 DAYS ( +17.1 DAYS TRNC 4 ITS) (17-NOV-1982)
STEP 7 TIME= 49.63 DAYS ( +20.4 DAYS TRNC 4 ITS) (7-DEC-1982)
STEP 8 TIME= 81.72 DAYS ( +32.1 DAYS TRNC 4 ITS) (8-JAN-1983)
STEP 9 TIME= 130.36 DAYS ( +48.6 DAYS TRNC 5 ITS) (26-FEB-1983)
STEP 10 TIME= 205.31 DAYS ( +75.0 DAYS TRNC 3 ITS) (12-MAY-1983)
STEP 11 TIME= 285.16 DAYS ( +79.8 DAYS HALF 3 ITS) (31-JLY-1983)
STEP 12 TIME= 365.00 DAYS ( +79.8 DAYS REPT 3 ITS) (19-OCT-1983)

ECLIPSE 300

The file contains one line for each timestep of the form:

 Rep ; 400.0 30.0 8.7838 .19498 1.4E05 32884. 1.2E06 4843.6 .00000 1.3E06 3 

"Rep" is the mnemonic that shows that a report step has been reached,
"30.0" shows that the latest timestep was of 30 days,
the next 8 numbers show the GOR, water cut, oil/gas/water production rates, average field pressure, and gas and water injection rates,
"3" at the end of the line means that 3 non-linear iterations were needed to solve the 30-day timestep.

If the AIM option is used then the line will have and extra number at the end:

Rep ; 400.0 30.0 8.7838 .19498 1.4E05 32884. 1.2E06 4843.6 .00000 1.3E06 3 2% 

"2%" shows the percentage of the cells that was solved fully implicitly.

For a number of timesteps, the file will look like this:

Init ; 1.0 1.0 484.94 .01293 2.2E06 29221. 1.1E09 224.40 0.0 0.0 3 3%
MIF ; 3.0 2.0 484.94 .01459 1.9E06 28463. 9.3E08 224.36 0.0 0.0 3 3%
MIF ; 7.0 4.0 484.94 .01857 1.5E06 28320. 7.3E08 224.29 0.0 0.0 2 3%
MIF ; 15.0 8.0 484.94 .02635 1.0E06 28039. 5.0E08 224.20 0.0 0.0 3 3%
Rep ; 31.0 16.0 484.94 .04014 6.6E05 27512. 3.2E08 224.08 0.0 0.0 3 3%
Rep ; 59.0 28.0 484.94 .05838 4.3E05 26824. 2.1E08 223.94 0.0 0.0 3 3%
Rep ; 90.0 31.0 484.94 .07354 3.3E05 26277. 1.6E08 223.81 0.0 0.0 4 3%
Rep ; 120.0 30.0 484.94 .08489 2.8E05 25872. 1.4E08 223.70 0.0 0.0 3 3%
Rep ; 151.0 31.0 484.94 .09449 2.4E05 25539. 1.2E08 223.59 0.0 0.0 3 3%
Rep ; 181.0 30.0 484.94 .10268 2.2E05 25271. 1.1E08 223.50 0.0 0.0 3 3%
Rep ; 212.0 31.0 484.94 .11039 2.0E05 25037. 9.8E07 223.40 0.0 0.0 3 3%
Rep ; 243.0 31.0 484.94 .11760 1.9E05 24834. 9.0E07 223.32 0.0 0.0 3 3%
Rep ; 273.0 30.0 484.94 .12423 1.7E05 24658. 8.4E07 223.23 0.0 0.0 3 3%
Rep ; 304.0 31.0 484.94 .13075 1.6E05 24494. 7.9E07 223.15 0.0 0.0 3 3%
Rep ; 334.0 30.0 484.94 .13683 1.5E05 24350. 7.4E07 223.08 0.0 0.0 3 3%
Rep ; 365.0 31.0 484.94 .14290 1.5E05 24213. 7.0E07 223.00 0.0 0.0 3 3%


A more complete list is available in the ECLIPSE Technical Description manual, in the section on Convergence.

Timestep Reason

Some of the more common reasons for timestep selection are:

Mnemonic Mnemonic Explanation
E100 E300
INIT Init first timestep
MAXF MIF maximum increase factor
REPT Rep report step
HREP Hrep half step to report
CHOP Redu timestep chopped
DIFF follows CHOP
TRNC TTE TTE limit
SCT Solution Change
TPT Throughput Limit


Report Steps

The number of report steps and the time between report steps will depend on the type of model that you are simulating:

  • For a prediction or forecasting run lasting for instance 30 years you may for instance ask for monthly reports for the first year, quarterly reports for the next 5 years, and yearly reports for the rest of the simulation.
  • For history matching you may ask for weekly reports for the first year and for monthly reports for remainder of the history match, to test the validity of your model on a finer time scale.
  • For slim-tube experiments, reporting intervals are likely to be minutes and hours

Computing time may be reduced by changing the requested reports if the following three conditions apply:

  1. You are asking for more reports than you actually need
  2. Each report step is being reached in just a single timestep
  3. Each time step is being solved in a small number of non-linear iterations. By small we ideally mean one, but savings could also be made if the timestep is taking 2 or 3 iterations.

If you find that it mainly contains lines of the form:

STEP 40 TIME= 400.00 DAYS ( +10.0 DAYS REPT 1 ITS) (4-FEB-2003)
STEP 41 TIME= 410.00 DAYS ( +10.0 DAYS REPT 1 ITS) (14-FEB-2003)
STEP 42 TIME= 420.00 DAYS ( +10.0 DAYS REPT 1 ITS) (24-FEB-2003)
STEP 43 TIME= 430.00 DAYS ( +10.0 DAYS REPT 1 ITS) (6-MAR-2003)

so that each timestep is a report step, and each timestep is solved in one iteration, then the run may go 2 or 3 times faster if you allow the simulator to produce report steps once a month instead of once every 10 days.
The example above was for an ECLIPSE 100 run. The same applies for an ECLIPSE 300 or 500 run with:

Rep ; 400.0 10.0 8.7838 .19498 1.4E05 32884. 1.2E06 4843.6 .00000 1.3E06 1
Rep ; 410.0 10.0 8.7838 .19498 1.4E05 32884. 1.2E06 4843.5 .00000 1.3E06 1
Rep ; 420.0 10.0 8.7838 .19498 1.4E05 32884. 1.2E06 4843.4 .00000 1.3E06 1
Rep ; 430.0 10.0 8.7838 .19498 1.4E05 32884. 1.2E06 4843.3 .00000 1.3E06 1

Timesteps

Having reached one report step, ECLIPSE will decide what timestep to take next according to:

  • how easy or difficult the previous timestep was
  • how the convergence of the previous time step compared with the convergence targets
  • how much simulation time is left until the next report step
  • whether either you or the default limits forced it to take a particular time step

One can set the timestep limits by using the TUNING keyword in any of the ECLIPSE simulators, or by using the TSCRIT keyword in ECLIPSE 300

Maximum Timestep

The first example of how a run can be speeded-up is similar to the report step example already given. If you find that it mainly contains lines of the form:

STEP 40 TIME= 400.00 DAYS ( +10.0 DAYS MAXS 1 ITS) (4-FEB-2003)
STEP 41 TIME= 410.00 DAYS ( +10.0 DAYS MAXS 1 ITS) (14-FEB-2003)
STEP 42 TIME= 420.00 DAYS ( +10.0 DAYS MAXS 1 ITS) (24-FEB-2003)
STEP 43 TIME= 430.00 DAYS ( +10.0 DAYS MAXS 1 ITS) (6-MAR-2003)

The mnemonic MAXS means that this timestep is the maximum allowed according to the TUNING keyword. Again we see that each timestep is a report step, and each timestep is solved in one iteration, and the run may go 2 or 3 times faster if you allow the simulator to produce report steps once a month instead of once every 10 days. For ECLIPSE 300 the mnemonic is Max, and you can set the maximum timestep either using the TUNING or the TSCRIT keyword. The syntax to set the maximum timestep to 30 days using the TUNING keyword is:

TUNING
1* 30 /
/

The TUNING keyword is available in both ECLIPSE 100 and in ECLIPSE 300. ECLIPSE 300 also has the TSCRIT and CVCRIT keywords; TSCRIT is timestep control and CVCRIT is convergence control. Approximately, TSCRIT + CVCRIT = TUNING.
To set the maximum timestep to 30 days using TSCRIT:

TSCRIT
2* 30 /

Note that the default maximum timestep in ECLIPSE 100 is 365 days and in ECLIPSE 300 is 50 days. The limit will only be 10 days if it has been set to 10 in a TUNING or TSCRIT keyword.

The maximum timestep should be compatible with the report step interval. If you are asking for a report at the beginning of each month and have a timestep limit of 30 days, then those months with 31 days will need at least two timesteps. Increasing the timestep limit to 31 days would allow every month to be covered in one timestep if there were no other limitations. If you are asking for reports every 3 months, the maximum timestep should be at least 92 days.

You may sometimes help the non-linear solver by setting a lower value for the maximum timestep size. If the simulator is frequently chopping timesteps and you cannot find the cause, then reducing the maximum timestep can speed up the run. For instance if the simulator converges all steps less than 20 days but chops steps over 20 days, then a 20 day limit will reduce computing time. You can always allow the timesteps to increase later in the simulation, after a difficult modelling problem has been overcome. You should however always first try to fix the cause of the problem before fixing the symptom.

Maximum Timestep after a well change

A similar inefficiency can arise with the maximum step after a well change. There is a default limit of how big a timestep can be taken immediately after any well keyword has been used. The default value for ECLIPSE 300 is 20 days, and the default for ECLIPSE 100 is “unlimited”. If you are history matching and setting new well rates at the beginning of each month, then ECLIPSE 300 will be unable to take any timestep greater than 20 days. Rather than simulate January for example with a 20-day timestep followed by an 11-day timestep, ECLIPSE will even-out the timesteps by having two 15.5-day timesteps. The mnemonic for this choice of timestep is HALF in ECLIPSE 100 and HRep in ECLIPSE 300. The timestep summary will then be:

STEP 1 TIME= 15.50 DAYS ( +15.5 DAYS HALF 1 ITS) (15-JAN-2002)
STEP 2 TIME= 15.50 DAYS ( +15.5 DAYS REPT 1 ITS) ( 1-FEB-2002)
STEP 3 TIME= 14.00 DAYS ( +14.0 DAYS HALF 1 ITS) (14-FEB-2002)
STEP 4 TIME= 14.00 DAYS ( +14.0 DAYS REPT 1 ITS) ( 1-MAR-2002)
STEP 5 TIME= 15.50 DAYS ( +15.5 DAYS HALF 1 ITS) (15-MAR-2002)
STEP 6 TIME= 15.50 DAYS ( +15.5 DAYS REPT 1 ITS) ( 1-APR-2002)
STEP 7 TIME= 15.00 DAYS ( +15.0 DAYS HALF 1 ITS) (15-APR-2002)

Increasing the maximum step after a well change to be more than 31 days could improve the timestepping to be:

STEP 1 TIME= 31.00 DAYS ( +31.0 DAYS REPT 1 ITS) ( 1-FEB-2002)
STEP 2 TIME= 28.00 DAYS ( +28.0 DAYS REPT 1 ITS) ( 1-MAR-2002)
STEP 3 TIME= 31.00 DAYS ( +31.0 DAYS REPT 1 ITS) ( 1-APR-2002)

You may want to reduce the maximum timestep after a well change. If for instance you expect a major change in reservoir behaviour every time you change the well controls, then you can save cpu time by setting this value to for instance 1 day, using:

TUNING
9* 1 /
/

or:

TSCRIT
10* 1 /

Summary: Using TUNING

Rule 1
Try to avoid using TUNING (or TSCRIT or CVCRIT). Remove these keywords if they are already there.

Rule 2
If you have to use TUNING (or TSCRIT or CVCRIT):

  • You can change the initial, minimum, or maximum timestep
  • If you change the minimum, remember to also change the minimum choppable step
  • If you change the maximum, make it consistent with report steps (for instance have a maximum of 31 days not a maximum of 30 days)


Rule 3
Convergence controls: remember rule 1

  • Look for most common reason for the selection of the timestep size
  • Look for most common reason for a chopped timestep
  • If you have poor convergence, it is sometimes better to tighten convergence controls than to weaken them.