Patent EA-004217-B1 (EA)
Title: Method for determining well locations from 3d reservoir model
Inventor: CULLICK ALVIN STANLEY
IPC: E21B49/00
Filed: 2000-09-20
Abstract: 1. A method to determine locations for a plurality of wells, wherein the method comprises: receiving a well productivity proxy value for each voxel of a seismic derived property data volume; processing the well productivity proxy values to identify geobodies; computing a reservoir quality value for each voxel in the geobodies; and using integer programming to locate completion point voxels that maximize a sum of associated reservoir quality values subject to specified constraints. 2. The method of claim 1, wherein the seismic derived property data volume is a three-dimensional data volume for a petroleum geologic formation having heterogeneous geologic properties and heterogeneous fluid distributions. 3. The method of claim 1, wherein the three-dimensional volume is a property volume derived from mapping or geostatistical modeling from existing well data. 4. The method of claim 1, wherein the well productivity proxy value is one of a set of proxy values, the set including porosity, net pay, permeability, permeability thickness, and pore volume. 5. The method of claim 1, wherein said processing of well productivity proxy values includes: reassigning all well productivity proxy values below a selected minimum cutoff value to 0; determining geobody volumes by slimming volumes of connected voxels having nonzero well productivity proxy values; and assigning index values to geobodies in order of decreasing geobody volume. 6. The method of claim 1, wherein said processing of well productivity proxy values includes: designating all voxels having a well productivity proxy values below a selected minimum cutoff value as inactive, and all voxels having a well productivity proxy value equal to or greater than the selected minimum cutoff value as active; determining geobody volumes by summing volumes of connected active voxels; and assigning index values to geobodies in order of decreasing geobody volume. 7. The method of claim 6, wherein said computing a reservoir quality value of a given voxel includes: summing well productivity proxy values of all active voxels connected to the given voxel that are within a well drainage radius of the given voxel. 8. The method of claim 1, wherein computing a reservoir quality value of a given voxel includes: simulating three-dimensional paths of a random walker from the given voxel to a boundary, wherein the boundary is determined by any one of a set including a drainage radius, a geobody boundary, and a no-flow boundary; and summing well productivity proxy values of all voxels touched by at least one random walker path. 9. The method of claim 1, wherein using integer, programming involves a set of constraints that includes: a maximum number of wells; a minimal distance between wells completed in a shared geobody; a maximum distance from an offshore platform; a maximum capital drilling cost; and a minimum distance from water-oil contacts, gas-oil interface contacts, faults, and other reservoir formation boundaries. 10. The method of claim 1, wherein using integer programming to locate completion point voxels includes: subject to the following constraints: where: W represents a set of potential surface well sites, G represents a set of geobody voxels, (W,G) represents all valid completions, Q,(W,G) represents a quality value associated with each such valid completion, Y,(W,G) represents a binary variable having values to indicate the presence or absence of a completion, X(W) represents a variable defined to indicate the presence or absence of a well in the set of potential well surface sites W, alpha represents a cost of a well, and beta represents a cost of completion. 11. The method of claim 1, further comprising: finding an unexploited voxel having a maximum quality value; randomly selecting a predetermined number of voxels within a predetermined radius of the unexploited voxel; calculating arc lengths between all pairs of selected voxels; calculating angles between all pairs of connected arcs; and using integer programming to determine a deviated well completion path. 12. The method of claim 11, further comprising: repeating said finding, selecting, calculating, and integer programming steps if unexploited voxels remain, and if a maximum number of deviated wells is not exceeded. 13. The method of claim 11, wherein using integer programming to determine a deviated well completion path includes: subject to the following constraints: where W and W' both represent a set of potential completion points in a space around a completed vertical well, Q(W) represents a quality value associated with each completion point, X(W) represents a variable array defined to indicate the presence or absence of each completion, (W,W') represents all connections between possible completion points in W and W', Y(W,W') represents a binary-variable array that indicates selected connections between possible completion points, L(W,W') represents a length associated with each of the connections, Lmax represents a predetermined maximum length, and tol represents a predetermined angular tolerance. 14. A method for calculating a reservoir quality value for a cell in a three-dimensional seismic volume, wherein the method comprises: simulating a predetermined number of three-dimensional random walks from the cell to a boundary, wherein the boundary is determined by limits that include a drainage radius and a geobody boundary; and summing well productivity proxy values of all cells included in at least one random walker path. 15. The method of claim 14, wherein the well productivity proxy value is one of a set of proxy values, the set including porosity, net pay, permeability, permeability thickness, and pore volume. 16. A method for identifying geobodies from a data volume, wherein the method comprises: selecting from the data volume a property as a proxy for well productivity; generating a geobody number array with elements that correspond to cells in the data volume, wherein elements that correspond to data volume cells having property values below a chosen cutoff are assigned a first flag value and all remaining cells are assigned a second flag value; systematically searching the geobody number array for elements having the second flag value, and for any current element found having the second flag value: incrementing a geobody counter; assigning the current element the geobody counter value; and performing a loop to assign all elements connected to the current element the geobody counter value. 17. The method of claim 16, wherein said performing a loop includes: initializing a visited element array to zero; initializing a first visited element counter and a second visited element counter; assigning a first member of the visited element array a location of the current element; setting a present location equal to a member of the visited element array indicated by the second visited element counter; for each neighboring element of the present location that has the second flag value:; assigning the neighboring element the geobody counter value; incrementing the first visited element counter; assigning a location of the neighboring element to a member of the visited element array indicated by the first visited element counter; and incrementing the second visited element counter. 18. The method of claim 17, wherein the neighboring elements include all elements sharing a face with the element at the present location. 19. The method of claim 18, wherein the neighboring elements further include all elements sharing an edge with the element at the present location. 20. The method of claim 19, wherein the neighboring elements further include all elements sharing a vertex with the element at the present location. 21. The method of claim 16, further comprising: determining a size for each geobody; and indexing the geobodies in order of decreasing size. 22. The method of claim 16, wherein the property is one of a set of properties that includes porosity, net pay, permeability, permeability-thickness, and pore volume. 23. A method to determine a path for a deviated well, wherein the method comprises: receiving a well productivity proxy value for each voxel of a seismic data volume; processing the well productivity proxy values to identify geobodies; computing a reservoir quality value for each voxel in the geobodies; and finding an unexploited voxel having a maximum quality value below a selected well site; randomly selecting a predetermined number of voxels within a predetermined radius of the unexploited voxel; calculating arc lengths between all pairs of selected voxels; calculating angles between all pairs of connected arcs; and using integer programming to determine a deviated well completion path that maximizes a sum of quality values. 24. The method of claim 23, wherein using integer programming to determine a deviated well completion path involves a set of constraints that includes: a minimum distance between completions in a shared geobody; a maximum deviation from linear over a specified distance; a maximum well length; and a minimum distance from water-oil contacts, gas-oil interface contacts, faults, and other reservoir formation boundaries. 25. The method of claim 22, wherein using integer programming to determine a deviated well completion path includes: subject to the following constraints: where:W and W' both represent a set of potential completion points in a space around a completed vertical well, Q(W) represents a quality value associated with each completion point, X(W) represents a variable array defined to indicate the presence or absence of each completion, (W,W') represents all connections between possible completion points in W and W', Y(W,W') represents a binary-variable array that indicates selected connections between possible completion points, L(W,W') represents a length associated with each of the connections, Lmax represents a predetermined maximum length, and tol represents a predetermined angu