Machine, computer program product and method to carry out parallel reservoir simulation
AssigneeSaudi Arabian Oil Company
InventorsLarry S. K. Fung, Mokhles M. Mezghani
Life of this patent
Estimating the term…
Abstract
A machine, computer program product, and method to enable scalable parallel reservoir simulations for a variety of simulation model sizes are described herein. Some embodiments of the disclosed invention include a machine, methods, and implemented software for performing parallel processing of a grid defining a reservoir or oil/gas field using a plurality of sub-domains for the reservoir simulation, a parallel process of re-ordering a local cell index for each of the plurality of cells using characteristics of the cell and location within the at least one sub-domain and a parallel process of simulating at least one production characteristic of the reservoir.
Claims20
A machine for simulating a production characteristic of an oil or gas reservoir, the oil and gas reservoir being defined by a plurality of grid cells, the plurality of grids cells being partitioned into a plurality of sub-domains, each sub-domain containing at least a portion of the plurality of grid cells, the machine comprising:
- a plurality of application servers having a processor and a non-transitory memory, each of the plurality of application servers being assigned one or more sub-domains;
- and
- a computer-readable medium, operable on the memory of the plurality of application servers, the computer-readable medium storing instructions that when executed cause the applications servers to perform a process of re-ordering a local cell identification reference for each of the plurality of grid cells using characteristics of each of the plurality of grid cell and a location of each of the plurality of grid cells within the one or more sub-domains and a process of simulating at least one production characteristic of the reservoir;
- the applications servers, when executing the instructions, performing the steps of:
- creating an initial local cell identification reference for each of the plurality of grid cells in the one or more sub-domains, each local cell identification reference being mapped to an original index for each of the plurality of cells,
- generating transmissibility characteristics between each of the plurality of grid cells in the one or more sub-domains using grid data, well data and permeability data read into the memory of the application server using the initial local cell identification reference,
- determining at least one other sub-domain adjacent to the one or more sub-domains, the at least one other sub-domain being stored on an adjacent application server, and which of the plurality of grid cells in each sub-domain share at least one face with at least one of the plurality of grid cells in the at least one other sub-domain,
- re-indexing the plurality of grid cells according to whether each of the plurality of grid cells shares at least one face with at least one of the plurality of grid cells of the at least one other sub-domain,
- re-indexing each of the plurality of grid cells according to the transmissibility of each of the plurality of grid cells, and
- simulating, responsive to reindexing the plurality of grid cells according to whether each of the plurality of grid cells shares at least one face, the at least one production characteristic in the one or more sub-domains using at least a portion of data transmitted to each of the plurality of grid cells sharing at least one face with at least one of the plurality of grid cells of the at least one other sub-domain from the other sub-domain stored in the adjacent application server.
A non-transitory computer readable medium storing instructions that when executed by a computing system cause the computing system to perform a process of re-ordering a local cell identification reference for each of a plurality of grid cells using characteristics of each of the plurality of grid cells and a location of each of the plurality of grid cells within one or more sub-domains of a reservoir and a process of simulating at least one production characteristic of the reservoir;
- the instructions, when executed, causing the computing system to perform the steps of:
- creating an initial local cell identification reference for each of the plurality of grid cells in the one or more sub-domains domain, each local cell identification reference being mapped to an original index for each of the plurality of cells,
- generating transmissibility characteristics between each of the plurality of grid cells in the one or more sub-domains using grid data, well data and permeability data read into the memory of the application server using the initial local cell identification reference,
- determining at least one other sub-domain adjacent to the one or more sub-domains, the at least one other sub-domain being stored on an adjacent application server, and which of the plurality of grid cells in each sub-domain share at least one face with at least one of the plurality of grid cells in the at least one other sub-domain,
- re-indexing the plurality of grid cells according to whether each of the plurality of grid cells shares at least one face with at least one of the plurality of grid cells of the at least one other sub-domain,
- re-indexing each of the plurality of grid cells according to the transmissibility of each of the plurality of grid cells, and
- simulating, responsive to reindexing the plurality of grid cells according to whether each of the plurality of grid cells shares at least one face, the at least one production characteristic in the one or more sub-domains using at least a portion of data transmitted to each of the plurality of grid cells sharing at least one face with at least one of the plurality of grid cells of the at least one other sub-domain from the other sub-domain stored in the adjacent application server.
A computer-implemented method operable on a computer defining a plurality of application servers, the computer-implemented method performing a process of re-ordering a local cell identification reference for each of a plurality of three dimensional grid cells using characteristics of each of the plurality of three dimensional grid cells and a location of each of the plurality of grid cells within one or more sub-domains of a reservoir and a process of simulating at least one production characteristic of the reservoir;
- the computer implemented method comprising the steps of:
- creating an initial local cell identification reference for each of the plurality of grid cells in the one or more sub-domains, each local cell identification reference being mapped to an original index for each of the plurality of cells,
- generating transmissibility characteristics between each of the plurality of grid cells in the one or more sub-domains using grid data, well data and permeability data read into the memory of the application server using the initial local cell identification reference,
- determining at least one other sub-domain adjacent to the one or more sub-domains, the at least one other sub-domain being stored on an adjacent application server, and which of the plurality of grid cells in each sub-domain share at least one face with at least one of the plurality of grid cells in the at least one other sub-domain,
- re-indexing the plurality of grid cells according to whether each of the plurality of grid cells shares at least one face with at least one of the plurality of grid cells of the at least one other sub-domain,
- re-indexing each of the plurality of grid cells according to the transmissibility of each of the plurality of grid cells, and
- simulating, responsive to reindexing the plurality of grid cells according to whether each of the plurality of grid cells shares at least one face, the at least one production characteristic in the one or more sub-domains using at least a portion of data transmitted to each of the plurality of grid cells sharing at least one face with at least one of the plurality of grid cells of the at least one other sub-domain from the other sub-domain stored in the adjacent application server.
Dependencies are inferred from the claim text.