# US 12,222,967 B2 · Graph framework (database methods) to analyze trillion cell reservoir and basin simulation results

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

- Number: US 12,222,967 B2
- Document ID: US12222967B2
- Status: Granted
- Kind: B2
- Application number: 17/466,293
- Filed: 2021-09-03
- Published: 2022-03-10
- Granted: 2025-02-11
- Earliest claimed: 2020-09-04
- Assignees: Saudi Arabian Oil Company
- Applicants: Saudi Arabian Oil Company
- Inventors: Florian Mannuss; Thomas James Byer; Ali H. Dogru
- Web page: https://patentgrep.com/patent/US12222967B2

## CPC

- G06F 16/285: {Clustering or classification}
- G06F 30/12: characterised by design entry means specially adapted for CAD, e.g. graphical user interfaces [GUI] specially adapted for CAD
- E21B 41/00: Equipment or details not covered by groups E21B15/00 - E21B40/00
- G01V 20/00: Geomodelling in general
- G06F 16/245: Query processing
- G06F 16/9024: {Graphs; Linked lists (G06F16/9027 takes precedence)}
- G06F 30/20: Design optimisation, verification or simulation (optimisation, verification or simulation of circuit designs G06F30/30)
- E21B 2200/20: Computer models or simulations, e.g. for reservoirs under production, drill bits
- G01V 2210/624: Reservoir parameters
- G01V 2210/663: Modeling production-induced effects
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)
- E21B: EARTH OR ROCK DRILLING; OBTAINING OIL, GAS, WATER, SOLUBLE OR MELTABLE MATERIALS OR A SLURRY OF MINERALS FROM WELLS
- G01V: GEOPHYSICS; GRAVITATIONAL MEASUREMENTS; DETECTING MASSES OR OBJECTS; TAGS (means for indicating the location of accidentally buried, e.g. snow-buried, persons A63B29/02)

## Abstract

Systems and methods include a computer-implemented method for generating and using a graph/document structure to store reservoir simulation results. A graph is generated that represents reservoir simulation results of a reservoir simulation performed on a reservoir using a reservoir simulation model. The graph represents a full set of relational data and non-relational data included in the reservoir simulation results. The graph stores graph information and relational data in a graph/document structure. Objects of the reservoir, elements of the reservoir simulation results, and inputs of the reservoir simulation model are represented as vertices in the graph. Relationships between vertices are represented as edges in the graph. An edge is defined by a pair of vertices in the graph.

## Claims

### Claim 1

A computer-implemented method, comprising:
storing a multi-relational graph of vertices and edges representing, as the vertices of the multi-relational graph, reservoir simulation inputs, objects, outputs, and reservoir simulation results of a reservoir simulation performed on a reservoir using a reservoir simulation model, wherein the multi-relational graph represents a full set of relational data and non-relational data included in the reservoir simulation results, and wherein the multi-relational graph stores graph information and relational data in a graph/document structure;
storing, as vertices in the multi-relational graph, objects of the reservoir, elements of the reservoir simulation results, and inputs of the reservoir simulation model; and
storing, as edges in the multi-relational graph, relationships between vertices, wherein an edge is defined by a pair of vertices in the multi-relational graph, wherein each edge comprises a label defining a dynamic relationship between two vertices connected by a respective edge, the dynamic relationship between two vertices varying relative to a total number of vertices in the multi-relational graph, wherein the dynamic relationship between two vertices changes over time as new vertices are added to the reservoir simulation wherein each edge defines a ternary relationship comprising an operation allowing an edge to have a plurality of time values, wherein the multi-relational graph is a graph G of vertices V and edges E defined as G=(V, E), wherein each edge E=(i, j) is an edge connecting vertices i and j with i, j∈V, wherein each E⊆(V×V), wherein each E⊆(V×Ω×V), with Ω describing the set of edge labels, wherein E⊆(V×Ω×T*×V), wherein T∈{t|tstart≤t≤tend} in which tstart and tend are simulation begin and end dates, respectively.

### Claim 2 (depends on 1)

The computer-implemented method of claim 1, wherein a vertex in the multi-relational graph can represent an entity selected from a group comprising a reservoir simulation, a field, an input model, a reservoir, a surface network, a grid, a group, a well, an event, a branch, one or more devices, and a perforation.

### Claim 3 (depends on 1)

The computer-implemented method of claim 1, further comprising:
importing data into a vertex of the multi-relational graph from different data sources; and
performing, using each data source, an operation selected from a group comprising a calculation and a filter and join query.

### Claim 4 (depends on 3)

The computer-implemented method of claim 3, wherein the data source decides to load data into the multi-relational graph in total or on demand.

### Claim 5 (depends on 3)

The computer-implemented method of claim 3, wherein the data source is a file or a database.

### Claim 6 (depends on 3)

The computer-implemented method of claim 3, wherein one or more data sources form a call graph for the vertex of the multi-relational graph.

### Claim 7 (depends on 1)

The computer-implemented method of claim 1, further comprising:
receiving a query that includes functional programming domain-specific-language (DSL) for graph queries; and
executing the query on the graph/document structure of the multi-relational graph, including graph aspects of the graph/document structure and on documents in the graph/document structure.

### Claim 8

A computer-implemented system, comprising:
a graph/document structure configured to store graph information and relational data in a multi-relational graph of vertices and edges, wherein the multi-relational graph represents, using the vertices of the multi-relational graph, reservoir simulation inputs, objects, outputs, and reservoir simulation results of a reservoir simulation performed on a reservoir using a reservoir simulation model, and wherein the multi-relational graph represents a full set of the relational data and non-relational data included in the reservoir simulation results;
one or more processors; and
a non-transitory computer-readable storage medium coupled to the one or more processors and storing programming instructions for execution by the one or more processors, the programming instructions instructing the one or more processors to perform operations comprising:
storing the multi-relational graph from the reservoir simulation results, including generating the relational data and non-relational data in the graph/document structure;
storing, as vertices in the multi-relational graph, objects of the reservoir, elements of the reservoir simulation results, and inputs of the reservoir simulation model; and
storing, as edges in the multi-relational graph, relationships between vertices, wherein an edge is defined by a pair of vertices in the multi-relational graph, wherein each edge comprises a label defining a dynamic relationship between two vertices connected by a respective edge, the dynamic relationship between two vertices varying relative to a total number of vertices in the multi-relational graph, wherein the dynamic relationship between two vertices changes over time as new vertices are added to the reservoir simulation wherein each edge defines a ternary relationship comprising an operation allowing an edge to have a plurality of time values, wherein the multi-relational graph is a graph G of vertices V and edges E defined as G=(V, E), wherein each edge E=(i, j) is an edge connecting vertices i and j with i, j∈V, wherein each E⊆(V×V), wherein each E⊆(V×Ω×V), with Ω describing the set of edge labels, wherein E⊆(V×Ω×T*×V), wherein T∈{t|tstart≤t≤tend} in which tstart and tend are simulation begin and end dates, respectively.

### Claim 9 (depends on 8)

The computer-implemented system of claim 8, wherein a vertex in the multi-relational graph can represent an entity selected from a group comprising a reservoir simulation, a field, an input model, a reservoir, a surface network, a grid, a group, a well, an event, a branch, one or more devices, and a perforation.

### Claim 10 (depends on 8)

The computer-implemented system of claim 8, the operations further comprising:
importing data into a vertex of the multi-relational graph from different data sources; and
performing, using each data source, an operation selected from a group comprising a calculation and a filter and join query.

### Claim 11 (depends on 10)

The computer-implemented system of claim 10, wherein the data source decides to load data into the multi-relational graph in total or on demand.

### Claim 12 (depends on 10)

The computer-implemented system of claim 10, wherein the data source is a file or a database.

### Claim 13 (depends on 10)

The computer-implemented system of claim 10, wherein one or more data sources form a call graph for the vertex of the multi-relational graph.

### Claim 14 (depends on 8)

The computer-implemented system of claim 8, the operations further comprising:
receiving a query that includes functional programming domain-specific-language (DSL) for graph queries; and
executing the query on the graph/document structure of the multi-relational graph, including graph aspects of the graph/document structure and on documents in the graph/document structure.

### Claim 15

A non-transitory, computer-readable medium storing one or more instructions executable by a computer system to perform operations comprising:
storing a multi-relational graph of vertices and edges representing, as the vertices of the multi-relational graph, reservoir simulation inputs, objects, outputs, and reservoir simulation results of a reservoir simulation performed on a reservoir using a reservoir simulation model, wherein the multi-relational graph represents a full set of relational data and non-relational data included in the reservoir simulation results, and wherein the multi-relational graph stores graph information and relational data in a graph/document structure;
storing, as vertices in the multi-relational graph, objects of the reservoir, elements of the reservoir simulation results, and inputs of the reservoir simulation model; and
storing, as edges in the multi-relational graph, relationships between vertices, wherein an edge is defined by a pair of vertices in the multi-relational graph, wherein each edge comprises a label defining a dynamic relationship between two vertices connected by a respective edge, the dynamic relationship between two vertices varying relative to a total number of vertices in the multi-relational graph, wherein the dynamic relationship between two vertices changes over time as new vertices are added to the reservoir simulation wherein each edge defines a ternary relationship comprising an operation allowing an edge to have a plurality of time values, wherein the multi-relational graph is a graph G of vertices V and edges E defined as G=(V, E), wherein each edge E=(i, j) is an edge connecting vertices i and j with i, j∈V, wherein each E⊆(V×V), wherein each E⊆(V×Ω×V), with Ω describing the set of edge labels, wherein E⊆(V×Ω×T*×V), wherein T∈{t|tstart≤t≤tend} in which tstart and tend are simulation begin and end dates, respectively.

### Claim 16 (depends on 15)

The non-transitory, computer-readable medium of claim 15, wherein a vertex in the multi-relational graph can represent an entity selected from a group comprising a reservoir simulation, a field, an input model, a reservoir, a surface network, a grid, a group, a well, an event, a branch, one or more devices, and a perforation.

### Claim 17 (depends on 15)

The non-transitory, computer-readable medium of claim 15, the operations further comprising:
importing data into a vertex of the multi-relational graph from different data sources; and
performing, using each data source, an operation selected from a group comprising a calculation and a filter and join query.

### Claim 18 (depends on 17)

The non-transitory, computer-readable medium of claim 17,
wherein the data source decides to load data into the multi-relational graph in total or on demand.

### Claim 19 (depends on 17)

The non-transitory, computer-readable medium of claim 17, wherein the data source is a file or a database.

### Claim 20 (depends on 17)

The non-transitory, computer-readable medium of claim 17, wherein one or more data sources form a call graph for the vertex of the multi-relational graph.

### Claim 21 (depends on 1)

The computer-implemented method of claim 1, wherein the dynamic relationship between two vertices is selected from a group of a set of edge labels comprising is_grid, is_network, in_group, is_input, is_well, in_well, is_group, is_res (reservoir), nested_branch, is_perf (perforation), and is_specific_event.

### Claim 22 (depends on 8)

The computer-implemented system of claim 8, wherein the dynamic relationship between two vertices is selected from a group of a set of edge labels comprising is_grid, is_network, in_group, is_input, is_well, in_well, is_group, is_res (reservoir), nested_branch, is_perf (perforation), and is_specific_event.

### Claim 23 (depends on 15)

The non-transitory, computer-readable medium of claim 15, wherein the dynamic relationship between two vertices is selected from a group of a set of edge labels comprising is_grid, is_network, in_group, is_input, is_well, in_well, is_group, is_res (reservoir), nested_branch, is_perf (perforation), and is_specific_event.
