It is well known that the adjoint approach is the most efficient approach for gradient calculation, which can be used with gradient-based optimization techniques to solve various optimization problems such as the production optimization problem, history-matching problem, etc. The adjoint equation to be solved in the approach is a linear equation formed with the "transpose" of the Jacobian matrix from a fully implicit reservoir simulator. For a large and/or complex reservoir model, generalized preconditioners often prove impractical for solving the adjoint equation. Preconditioned specialized for reservoir simulation such as Constrained Pressure Residual (CPR) exploit properties of the Jacobian matrix in order to accelerate convergence, so they cannot be directly applied to the adjoint equation. To overcome this challenge, we have developed a new two-stage preconditioner for efficient solution of the adjoint equation (named CPRA).
The CPRA preconditioner has been coupled with an Algebraic Multi Grid (AMG) linear solver and implemented in Chevron's in-house reservoir simulator. The AMG solver is well known for its outstanding capability to solve the pressure equation of complex reservoir models; and solving the linear system with the "transpose" of pressure matrix is one of the two-stages of construction of the CPRA preconditioner.
Through test cases, we have confirmed that the CPRA/AMG solver with GMRES acceleration solves the adjoint equation very efficiently with reasonable number of linear solver iterations. Adjoint simulations to calculate the gradients with the CPRA/AMG solver take about the same time at most as corresponding CPR/AMG forward simulations. Accuracy of the solutions has also been confirmed by verifying the gradients against solutions with a direct solver. A production optimization case study for a real field using the CPRA/AMG solver has further validated its accuracy, efficiency, and the capability to perform long term optimization for large, complex reservoir models at low computational cost.