OPM/opm-core — pull request #662 by dr-robertk (2014-10-06 13:52:36+00:00)
Title: Timestepcontrol

This PR includes all utility classes needed to enable the Blackoil simulator with adaptive time stepping.

The AdaptiveSimulatorTimer implements a class for handling the time steps. The API follows that of SimulatorTimer closely.

TimeStepControlInterface describes the interface for a time step control method. Currently, there are two implementations, the PID and the PID + target iterations. The PID is described in the literature links given in the documentation.

AdaptiveTimeStepping implements the adaptive sub cycling for a given time interval, in case of the Blackoil simulator this is a report time step.

Parameters to be chosen are:
timestep.adaptive=true (default is false)
timestep.control=pid or pid+iteration
timestep.control.targetiteration=50 (default is 25)
solver.verbose=true
solver.restartfactor=0.2 (default is 0.1)
solver.restart=2 (default is 3)

The solver.* parameters are basically to manage the restart of the solver when convergence failed.
The timestep.* parameters are for managing the time step control. These parameters are to be added to the .param file. I'll try to upload a SPE9 example without pre-described time steps.