Default numerical settings (RESERVOIR_DEFAULTS)

Here, we list the defaults used by Cirrus (or RESERVOIR_DEFAULTS keyword for versions before 1.9) for each input card, unless overridden. For more information see each respective card and keyword.

An input example of RESERVOIR_DEFAULTS is as follows:

SIMULATION
  SIMULATION_TYPE SUBSURFACE
  PROCESS_MODELS
    SUBSURFACE_FLOW Flow
      MODE GAS_WATER
      OPTIONS
        ISOTHERMAL
        RESERVOIR_DEFAULTS
      /
    / ! end of subsurface_flow
  / ! end of process models
END  !! end simulation block

Note that the keyword RESERVOIR_DEFAULTS is DEPRECATED since Cirrus version 1.9 and it is no longer required.

SIMULATION

Card: SIMULATION.

  • ANALYTICAL_JACOBIAN: this is automatically selected. Analytical Jacobian increases the accuracy and convergence of the nonlinear solver. The opposite is NUMERICAL_JACOBIAN, whichuses numerical differences to find the Jacobian and is usually less accurate.

  • MAX_PRESSURE_CHANGE: this is set to 5.5d6 Pa. This value has been observed to provide a good balance of safety and timestep acceleration for reservoir models under test.

TIMESTEPPER FLOW

Card: TIMESTEPPER FLOW.

  • TS_ACCELERATION: this is set to 100. This value has been observed to provide a good balance of safety and timestep acceleration for reservoir models under test.

LINEAR_SOLVER

Card: LINEAR_SOLVER.

  • PC_TYPE: this is set to CPR, the constrained pressure residual, a multigrid based preconditioner. CPR is generally required for most difficult reservoir models.

  • KSP_TYPE: this is set to FGMRES, the flexible gmres linear solver is a common solver and works well with the CPR preconditioner.

  • GMRES_MODIFIED_GRAMSCHMIDT: this is automatically selected. A reliable setting for FGMRES for our purposes.

  • GMRES_RESTART: this is set to 100. A reliable setting for FGMRES for our purposes.

  • MAXIT: this is set to 80. Higher than this indicates the linear solver would benefit more from a timestep cut than more iterations.

NEWTON_SOLVER

Card NEWTON_SOLVER.

  • STOL: set to 1.0D-16. STOL is not often a reliable convergence measure so in most cases a step should converge by some other criterion.

  • MAXIT: set to 15. A healthy Newton convergence is usually up to about 10 iterations. More than this and it is often inefficient to force it to converge at the given timestep length.

  • ITOL: set to 1.0D-8. A reliable absolute convergence tolerance. Works well with the RTOL default already in place.

  • ITOL_S: set to 1.0D-8. Also the computation of scaled norms is activated.