In the process of reservoir development, we always wish to drill wells at optimal locations so that more hydrocarbons can be extracted at a lower cost. Because well locations in a reservoir simulator are commonly treated as discrete variables, standard implementations of gradient based optimization is difficult so the optimization for this problem is normally done with a non-gradient based method such as the genetic algorithm. Here, we present a novel idea to convert the problem of optimizing on discrete variables into an optimization problem on continuous variables for the optimal well placement. The idea is to initialize the problem by putting a well in every gridblock and then optimize NPV. As the cost of "drilling a well" detracts from the NPV, when NPV is optimized some wells will be shutin (eliminated). For two very simple cases where the problem is to determine the optimal location of a water injection well, we show this problem formulation yields good results with a single injection well remaining after the optimization process.
Gradient based optimization algorithms, with the gradient of a functional or objective function to be optimized most commonly computed by the adjoint (optimal control) method, have been used in both automatic history matching 1,2,3,4,5,6,7,8,9,10 and production optimization 11,12,13,14,15,16. However, to the best of our knowledge, the only work other than the current paper that uses the gradient directly to solve the optimal well placement problem is the recent paper of Handels et al.17 Although the method can be applied to the simultaneous placement of several wells, the method of Handels et al. is explained most simply by considering the problem of determining the optimal location of a single infill well, e.g., the location of a new water injection well in a reservoir that already has completely-penetrating production and injection wells. Assume flow is only in the x - y plane so we use a 2D simulation grid. In this case, given the current proposed (initial condition) placement of the injection well, which is not in a gridblock adjacent to the reservoir boundary, a "pseudo-well" produced at a low rate is placed in each of the eight "neighboring" gridblocks.
Then the gradient of net present value (NPV) over the reservoir life with respect to the rate at each pseudowell is computed. The largest positive value among these eight gradient values determines the direction in which we should move the actual well to increase NPV the fastest, i.e., we should move the injection well in the direction defined by the line segment connecting the (x, y) coordinates of the center of the current well gridblock to the (x, y) coordinates of the pseudo-well gridblock corresponding to the largest gradient value.