Systems and methods for computed resource hydrocarbon reservoir simulation and development
AssigneeSaudi Arabian Oil Company
InventorSuha Naim Kayum
Life of this patent
Estimating the term…
Abstract
Provided are systems and method for computed resource hydrocarbon reservoir simulation that include, after processing the domain of a model to a point sufficient to determine an initial set of domain decomposition (DD) characteristics (for example, after preliminary grid calculations and initial DD operations), determining the DD characteristics of the initial DD, comparing the DD characteristics to a domain target defined by target DD parameters, and if needed, iteratively repartitioning the domain across a decreasing number of processors and reshuffling the associated weight array to achieve the domain target defined by the target DD parameters.
Claims21
A method comprising:
- determining a model of a hydrocarbon reservoir;
- determining target domain decomposition parameters for a simulation of the hydrocarbon reservoir;
- determining an initial number of processing cores for processing the simulation of the hydrocarbon reservoir;
- conducting a preliminary grid calculation of the model of the hydrocarbon reservoir to determine a domain of the model of the hydrocarbon reservoir, the domain comprising grid cells representing a portion of the hydrocarbon reservoir, where each of the grid cells of the domain has a global cell identifier that uniquely identifies the grid cell from the other grid cells of the domain;
- determining a weight array for the domain, the weight array comprising, for each grid cell of the domain:
- a weight indicative of a physical property of the portion of the hydrocarbon reservoir corresponding to the grid cell;
- and
- an index that uniquely identifies the grid cell from the other grid cells of the domain;
- determining a connectivity graph that corresponds to the weight array;
- conducting, based the weight array and the connectivity graph, a DD of the domain to identify subdomains of the domain, the number of subdomains corresponding to the number of processing cores, and each of the grid cells of each subdomain being assigned a local cell identifier that uniquely identifies the grid cell from the other grid cells of the subdomain;
- determining, based on the subdomains identified, domain decomposition characteristics indicative of processing overhead attributable to computations and communications for the grid cells of the subdomains;
- comparing the domain decomposition characteristics to the target domain decomposition parameters to determine that at least one of the of the target domain decomposition parameters is not satisfied by the domain decomposition characteristics;
- and
- in response to determining that at least one of the domain decomposition parameters is not satisfied by the domain decomposition characteristics, conducting a dynamic repartitioning operation comprising:
- determining a domain decomposition snapshot comprising the weight array and a global-to-local mapping, the global-to-local mapping comprising, for each of the grid cells of the domain, a mapping of the global cell identifier for the grid cell to the local cell identifier associated with the grid cell;
- determining data exchange processes of the domain decomposition;
- determining a reduced number of processing cores;
- determining, based on the data exchange processes, regrouped data exchange processes;
- conducting, based on the weight array, the regrouped data exchange processes and the reduced number of processing cores, an updated domain decomposition to identify updated subdomains, the number of updated subdomains corresponding to the reduced number of processing cores;
- distributing, based on the updated subdomains and the global-to-local mapping, weight array indices to processors of processing cores associated with the updated subdomains;
- determining, based on the distribution of the weight array indices, an updated connectivity graph for the domain;
- determining, based on the updated subdomains and the updated connectivity graph for the domain, updated domain decomposition characteristics of the update subdomains, the updated domain decomposition characteristics being indicative of processing overhead attributable to computations and communications for the grid cells of the updated subdomains;
- comparing the updated domain decomposition characteristics of the updated subdomains to the target domain decomposition parameters to determine that the target domain decomposition parameters are satisfied by the updated domain decomposition characteristics;
- and
- in response to determining that the domain decomposition parameters are satisfied by the updated domain decomposition characteristics, conducting the simulation of the hydrocarbon reservoir using the updated subdomains identified and the reduced number of processing cores identified, to generate a simulation of the hydrocarbon reservoir.
A non-transitory computer readable storage medium comprising program instructions stored thereon that are executable by a processor to perform the following operations:
- determining a model of a hydrocarbon reservoir;
- determining target domain decomposition parameters for a simulation of the hydrocarbon reservoir;
- determining an initial number of processing cores for processing the simulation of the hydrocarbon reservoir;
- conducting a preliminary grid calculation of the model of the hydrocarbon reservoir to determine a domain of the model of the hydrocarbon reservoir, the domain comprising grid cells representing a portion of the hydrocarbon reservoir, where each of the grid cells of the domain has a global cell identifier that uniquely identifies the grid cell from the other grid cells of the domain;
- determining a weight array for the domain, the weight array comprising, for each grid cell of the domain:
- a weight indicative of a physical property of the portion of the hydrocarbon reservoir corresponding to the grid cell;
- and
- an index that uniquely identifies the grid cell from the other grid cells of the domain;
- determining a connectivity graph that corresponds to the weight array;
- conducting, based the weight array and the connectivity graph, a DD of the domain to identify subdomains of the domain, the number of subdomains corresponding to the number of processing cores, and each of the grid cells of each subdomain being assigned a local cell identifier that uniquely identifies the grid cell from the other grid cells of the subdomain;
- determining, based on the subdomains identified, domain decomposition characteristics indicative of processing overhead attributable to computations and communications for the grid cells of the subdomains;
- comparing the domain decomposition characteristics to the target domain decomposition parameters to determine that at least one of the of the target domain decomposition parameters is not satisfied by the domain decomposition characteristics;
- and
- in response to determining that at least one of the domain decomposition parameters is not satisfied by the domain decomposition characteristics, conducting a dynamic repartitioning operation comprising:
- determining a domain decomposition snapshot comprising the weight array and a global-to-local mapping, the global-to-local mapping comprising, for each of the grid cells of the domain, a mapping of the global cell identifier for the grid cell to the local cell identifier associated with the grid cell;
- determining data exchange processes of the domain decomposition;
- determining a reduced number of processing cores;
- determining, based on the data exchange processes, regrouped data exchange processes;
- conducting, based on the weight array, the regrouped data exchange processes and the reduced number of processing cores, an updated domain decomposition to identify updated subdomains, the number of updated subdomains corresponding to the reduced number of processing cores;
- distributing, based on the updated subdomains and the global-to-local mapping, weight array indices to processors of processing cores associated with the updated subdomains;
- determining, based on the distribution of the weight array indices, an updated connectivity graph for the domain;
- determining, based on the updated subdomains and the updated connectivity graph for the domain, updated domain decomposition characteristics of the update subdomains, the updated domain decomposition characteristics being indicative of processing overhead attributable to computations and communications for the grid cells of the updated subdomains;
- comparing the updated domain decomposition characteristics of the updated subdomains to the target domain decomposition parameters to determine that the target domain decomposition parameters are satisfied by the updated domain decomposition characteristics;
- and
- in response to determining that the domain decomposition parameters are satisfied by the updated domain decomposition characteristics, conducting the simulation of the hydrocarbon reservoir using the updated subdomains identified and the reduced number of processing cores identified, to generate a simulation of the hydrocarbon reservoir.
A hydrocarbon reservoir development system comprising:
- a hydrocarbon reservoir control system non-transitory computer readable storage medium comprising program instructions stored thereon that are executable by a processor to perform the following operations:
- determining a model of a hydrocarbon reservoir;
- determining target domain decomposition parameters for a simulation of the hydrocarbon reservoir;
- determining an initial number of processing cores for processing the simulation of the hydrocarbon reservoir;
- conducting a preliminary grid calculation of the model of the hydrocarbon reservoir to determine a domain of the model of the hydrocarbon reservoir, the domain comprising grid cells representing a portion of the hydrocarbon reservoir, where each of the grid cells of the domain has a global cell identifier that uniquely identifies the grid cell from the other grid cells of the domain;
- determining a weight array for the domain, the weight array comprising, for each grid cell of the domain:
- a weight indicative of a physical property of the portion of the hydrocarbon reservoir corresponding to the grid cell;
- and
- an index that uniquely identifies the grid cell from the other grid cells of the domain;
- determining a connectivity graph that corresponds to the weight array;
- conducting, based the weight array and the connectivity graph, a DD of the domain to identify subdomains of the domain, the number of subdomains corresponding to the number of processing cores, and each of the grid cells of each subdomain being assigned a local cell identifier that uniquely identifies the grid cell from the other grid cells of the subdomain;
- determining, based on the subdomains identified, domain decomposition characteristics indicative of processing overhead attributable to computations and communications for the grid cells of the subdomains;
- comparing the domain decomposition characteristics to the target domain decomposition parameters to determine that at least one of the of the target domain decomposition parameters is not satisfied by the domain decomposition characteristics;
- and
- in response to determining that at least one of the domain decomposition parameters is not satisfied by the domain decomposition characteristics, conducting a dynamic repartitioning operation comprising:
- determining a domain decomposition snapshot comprising the weight array and a global-to-local mapping, the global-to-local mapping comprising, for each of the grid cells of the domain, a mapping of the global cell identifier for the grid cell to the local cell identifier associated with the grid cell;
- determining data exchange processes of the domain decomposition;
- determining a reduced number of processing cores;
- determining, based on the data exchange processes, regrouped data exchange processes;
- conducting, based on the weight array, the regrouped data exchange processes and the reduced number of processing cores, an updated domain decomposition to identify updated subdomains, the number of updated subdomains corresponding to the reduced number of processing cores;
- distributing, based on the updated subdomains and the global-to-local mapping, weight array indices to processors of processing cores associated with the updated subdomains;
- determining, based on the distribution of the weight array indices, an updated connectivity graph for the domain;
- determining, based on the updated subdomains and the updated connectivity graph for the domain, updated domain decomposition characteristics of the update subdomains, the updated domain decomposition characteristics being indicative of processing overhead attributable to computations and communications for the grid cells of the updated subdomains;
- comparing the updated domain decomposition characteristics of the updated subdomains to the target domain decomposition parameters to determine that the target domain decomposition parameters are satisfied by the updated domain decomposition characteristics;
- and
- in response to determining that the domain decomposition parameters are satisfied by the updated domain decomposition characteristics, conducting the simulation of the hydrocarbon reservoir using the updated subdomains identified and the reduced number of processing cores identified, to generate a simulation of the hydrocarbon reservoir.
Dependencies are inferred from the claim text.