# US 9,436,658 B2 · Systems and methods for creating a surface in a faulted space

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 9,436,658 B2
- Document ID: US9436658B2
- Status: Granted
- Kind: B2
- Application number: 13/816,450
- Filed: 2010-08-09
- Published: 2013-05-30
- Granted: 2016-09-06
- Earliest claimed: 2010-08-09
- Assignees: Landmark Graphics Corporation
- Applicants: Genbao Shi; Zitao Xu; Jeffrey Yarus; Richard L. Chambers; Randy Guetter
- Inventors: Genbao Shi; Zitao Xu; Jeffrey Yarus; Richard L. Chambers; Randy Guetter
- Web page: https://patentgrep.com/patent/US9436658B2

## CPC

- G06F 17/17: Function evaluation by approximation methods, e.g. inter- or extrapolation, smoothing, least mean square method ({G06F17/18 takes precedence } ; interpolation for numerical control G05B19/18)
- G01V 1/302: {in 3D data cubes}
- G01V 20/00: Geomodelling in general
- G06T 17/05: Geographic models
- G06T 17/20: Finite element generation, e.g. wire-frame surface description, {tesselation}
- G01V 2210/641: Continuity of geobodies
- G01V 2210/642: Faults
- G01V 2210/665: using geostatistical modeling
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)
- G01V: GEOPHYSICS; GRAVITATIONAL MEASUREMENTS; DETECTING MASSES OR OBJECTS; TAGS (means for indicating the location of accidentally buried, e.g. snow-buried, persons A63B29/02)
- G06T: IMAGE DATA PROCESSING OR GENERATION, IN GENERAL

## Abstract

Systems and methods for creating a surface in a faulted space, which includes using interpolation techniques.

## Claims

### Claim 1

A method for creating a surface having one or more faults, comprising:
a) estimating a surface level on each side of each fault, an elevation difference between the estimated surface levels on each side of a respective fault representing a respective fault throw value;
b) adjusting each fault throw value using a computer processor;
c) locating each local well top within a predefined search neighborhood from a grid node within a grid on the surface;
d) identifying each fault that crosses a vector between the grid node and each respective local well top, each vector between the grid node and each respective local well top representing an intersecting vector;
e) accumulating each adjusted fault throw value along each respective intersecting vector, which represents an accumulated fault throw value for each respective intersecting vector;
f) adjusting a value for each local well top based on a respective accumulated fault throw value;
g) performing interpolation at the grid node using the adjusted value for each local well top; and
h) repeating steps c)-g) for each grid node within the grid.

### Claim 2 (depends on 1)

The method of claim 1, further comprising storing input data comprising well tops and faults, each fault comprising one or more fault segments, each well top being stored in a KD tree data structure and each fault segment being stored in a Quad tree data structure.

### Claim 3 (depends on 1)

The method of claim 1, wherein the surface level on each side of each fault is estimated by finding each well top in each fault block and interpolating the surface level along each side of each fault using one or more of the well tops found in each respective fault block.

### Claim 4 (depends on 3)

The method of claim 3, wherein the interpolation is performed by kriging, collocated cokriging, simulation or collocated cosimulation.

### Claim 5 (depends on 1)

The method of claim 1, wherein each fault throw value is adjusted by smoothing the estimated surface levels along each side of each fault that belong to the same fault block and tapering each fault throw value to zero at each distal end of each fault.

### Claim 6 (depends on 1)

The method of claim 1, wherein the predefined search neighborhood forms a circular search neighborhood with a radius from the grid node.

### Claim 7 (depends on 1)

The method of claim 1, wherein each adjusted fault throw value is accumulated by adding each fault throw value along each respective intersecting vector.

### Claim 8 (depends on 1)

The method of claim 1, wherein the value for each local well top is adjusted by adding the value of each local well top to the respective accumulated fault throw value.

### Claim 9 (depends on 8)

The method of claim 8, wherein the respective accumulated fault throw value is the accumulated fault throw value for the intersecting vector that intersects the respective well top.

### Claim 10 (depends on 1)

The method of claim 1, wherein performing interpolation at the grid node comprises kriging, collocated cokriging, simulation or collocated cosimulation at the grid node using the adjusted value for each local well top.

### Claim 11

A non-transitory program carrier device tangibly carrying computer executable instructions for creating a surface having one or more faults, the instructions being executable to implement:
a) estimating a surface level on each side of each fault, an elevation difference between the estimated surface levels on each side of a respective fault representing a respective fault throw value;
b) adjusting each fault throw value using a computer processor;
c) locating each local well top within a predefined search neighborhood from a grid node within a grid on the surface;
d) identifying each fault that crosses a vector between the grid node and each respective local well top, each vector between the grid node and each respective local well top representing an intersecting vector;
e) accumulating each adjusted fault throw value along each respective intersecting vector, which represents an accumulated fault throw value for each respective intersecting vector;
f) adjusting a value for each local well top based on a corresponding accumulated fault throw value;
g) performing interpolation at the grid node using the adjusted value for each local well top; and
h) repeating steps c)-g) for each grid node within the grid.

### Claim 12 (depends on 11)

The program carrier device of claim 11, further comprising storing input data comprising well tops and faults, each fault comprising one or more fault segments, each well top being stored in a KD tree data structure and each fault segment being stored in a Quad tree data structure.

### Claim 13 (depends on 11)

The program carrier device of claim 11, wherein the surface level on each side of each fault is estimated by finding each well top in each fault block and interpolating the surface level along each side of each fault using one or more of the well tops found in each respective fault block.

### Claim 14 (depends on 13)

The program carrier device of claim 13, wherein the interpolation is performed by kriging, collocated cokriging, simulation or collocated cosimulation.

### Claim 15 (depends on 11)

The program carrier device of claim 11, wherein each fault throw value is adjusted by smoothing the estimated surface levels along each side of each fault that belong to the same fault block and tapering each fault throw value to zero at each distal end of each fault.

### Claim 16 (depends on 11)

The program carrier device of claim 11, wherein the predefined search neighborhood forms a circular search neighborhood with a radius from the grid node.

### Claim 17 (depends on 11)

The program carrier device of claim 11, wherein each adjusted fault throw value is accumulated by adding each fault throw value along each respective intersecting vector.

### Claim 18 (depends on 11)

The program carrier device of claim 11, wherein the value for each local well top is adjusted by adding the value of each local well top to the respective accumulated fault throw value.

### Claim 19 (depends on 18)

The program carrier device of claim 18, wherein the respective accumulated fault throw value is the accumulated fault throw value for the intersecting vector that intersects the respective well top.

### Claim 20 (depends on 11)

The program carrier device of claim 11, wherein performing interpolation at the grid node comprises kriging, collocated cokriging, simulation or collocated cosimulation at the grid node using the adjusted value for each local well top.
