Login| Sign Up| Help| Contact|

Patent Searching and Data


Title:
AUTOMATIC TIMESTEP ADJUSTMENT FOR RESERVOIR SIMULATION
Document Type and Number:
WIPO Patent Application WO/2016/115004
Kind Code:
A1
Abstract:
Systems and methods are described for performing a reservoir simulation by obtaining initial reservoir measurements and performing a reservoir simulation in multiple timesteps using the reservoir measurements. The timesteps can be performed by obtaining, at a start of the timestep, reservoir measurements, a timestep length, a parameter selection rate, and an iteration target, performing the reservoir simulation for the timestep to determine projected reservoir measurements at an end of the timestep, determining whether to adjust the parameter selection rate based on a difference between an amount of iterations used to determine the projected reservoir measurements and the iteration target, determining whether to adjust the timestep length based on timestep length selection parameters, and adjusting the timestep length selection parameters based on the parameter selection rate and the difference between the amount of iterations and the iteration target. The reservoir simulation can result in outputting projected reservoir measurements.

Inventors:
PRIESTLEY ANDREW (GB)
Application Number:
PCT/US2016/012790
Publication Date:
July 21, 2016
Filing Date:
January 11, 2016
Export Citation:
Click for automatic bibliography generation   Help
Assignee:
SCHLUMBERGER CA LTD (CA)
SCHLUMBERGER SERVICES PETROL (FR)
GEOQUEST SYSTEMS BV (NL)
SCHLUMBERGER TECHNOLOGY CORP (US)
International Classes:
E21B47/00; G05B17/02; G06F9/455
Foreign References:
US8401832B22013-03-19
US20130338985A12013-12-19
US20120143577A12012-06-07
US20110077922A12011-03-31
US20100305866A12010-12-02
Attorney, Agent or Firm:
WIER, Colin et al. (IP Administration Center of ExcellenceRoom 472, Houston Texas, US)
Download PDF:
Claims:
Claims

What is claimed is:

1. A method, comprising:

obtaining initial reservoir measurements;

performing, using one or more processors, a reservoir simulation in a plurality of timesteps using the reservoir measurements, wherein for each timestep of the plurality of timesteps the method further comprises:

obtaining, at a start of the timestep, reservoir measurements, a timestep length, a parameter selection rate, and an iteration target;

performing the reservoir simulation for the timestep in one or more iterations to determine projected reservoir measurements at an end of the timestep;

determining whether to adjust the parameter selection rate based on a difference between an amount of the one or more iterations and the iteration target;

determining whether to adjust the timestep length based on one or more timestep length selection parameters; and

adjusting the one or more timestep length selection parameters based on the parameter selection rate and the difference between the amount of the one or more iterations and the iteration target; and

outputting projected reservoir measurements determined based on the reservoir simulation.

2. The method of claim 1, wherein the initial reservoir measurements comprise one or more measurements selected from the group consisting of: a well extraction rate, a volumetric flow rate, a well pressure, a gas/oil ratio, and a composition of fluid in a reservoir.

3. The method of claim 1, further comprising obtaining at least one of a reservoir simulation length or a starting timestep length, wherein lengths of the plurality of timesteps are determined based on the at least one of the reservoir simulation length or the starting timestep length.

4. The method of claim 1, wherein the reservoir simulation comprises generating models of a reservoir to simulate behavior of the reservoir and determine expected measurements within the reservoir at each timestep of the plurality of timesteps.

5. The method of claim 1, wherein for each timestep of the plurality of timesteps the method further comprises solving a system of non-linear equations.

6. The method of claim 5, wherein the one or more iterations are Newton iterations to solve the system of non-linear equations.

7. The method of claim 5, wherein performing the reservoir simulation for a timestep results in a failure to converge to a root of the system of non-linear equations, the method further comprising re-performing the reservoir simulation for the timestep with a shorter timestep length.

8. The method of claim 1, wherein determining whether to adjust the parameter selection rate is further based on an amount of iterations to determine projected reservoir measurements of a previous timestep.

9. The method of claim 1, wherein for each timestep of the plurality of timesteps the method further comprises determining whether to adjust the iteration target based an efficiency of the timestep.

10. The method of claim 1, wherein the projected reservoir measurements are used for at least one of determining a well extraction rate, selecting a reservoir to expend resources on, determining a well location, or determining when to terminate reservoir extraction.

11. A computing system comprising:

one or more processors; and a memory system comprising one or more non-transitory, computer-readable media storing instructions that, when executed by at least one of the one or more processors, cause the computing system to perform operations, the operations comprising:

obtaining initial reservoir measurements;

performing a reservoir simulation in a plurality of timesteps using the reservoir measurements, wherein for each timestep of the plurality of timesteps the operations further comprise:

obtaining, at a start of the timestep, reservoir measurements, a timestep length, a parameter selection rate, and an iteration target;

performing the reservoir simulation for the timestep in one or more iterations to determine projected reservoir measurements at an end of the timestep;

determining whether to adjust the parameter selection rate based on a difference between an amount of the one or more iterations and the iteration target;

determining whether to adjust the timestep length based on one or more timestep length selection parameters; and

adjusting the one or more timestep length selection parameters based on the parameter selection rate and the difference between the amount of the one or more iterations and the iteration target; and

outputting projected reservoir measurements determined based on the reservoir simulation.

12. The system of claim 1 1, wherein the initial reservoir measurements comprise one or more measurements selected from the group consisting of: a well extraction rate, a volumetric flow rate, a well pressure, a gas/oil ratio, and a composition of fluid in a reservoir.

13. The system of claim 11, the operations further comprising obtaining at least one of a reservoir simulation length or a starting timestep length, wherein lengths of the plurality of timesteps are determined based on the at least one of the reservoir simulation length or the starting timestep length.

14. The system of claim 1 1, wherein the reservoir simulation comprises generating models of a reservoir to simulate behavior of the reservoir and determine expected measurements within the reservoir at each timestep of the plurality of timesteps.

15. The system of claim 11, wherein for each timestep of the plurality of timesteps the operations further comprise solving a system of non-linear equations.

16. The system of claim 15, wherein the one or more iterations are Newton iterations to solve the system of non-linear equations.

17. The system of claim 15, wherein performing the reservoir simulation for a timestep results in a failure to converge to a root of the system of non-linear equations, the operations further comprising re-performing the reservoir simulation for the timestep with a shorter timestep length.

18. The system of claim 11, wherein determining whether to adjust the parameter selection rate is further based on an amount of iterations to determine projected reservoir measurements of a previous timestep.

19. The system of claim 1 1, wherein for each timestep of the plurality of timesteps the operations further comprise determining whether to adjust the iteration target based an efficiency of the timestep.

20. A non-transitory, computer-readable medium storing instructions that, when executed by one or more processors of a computing system, cause the computing system to perform operations, the operations comprising:

obtaining initial reservoir measurements;

performing a reservoir simulation in a plurality of timesteps using the reservoir measurements, wherein for each timestep of the plurality of timesteps the operations further comprise: obtaining, at a start of the timestep, reservoir measurements, a timestep length, a parameter selection rate, and an iteration target;

performing the reservoir simulation for the timestep in one or more iterations to determine projected reservoir measurements at an end of the timestep;

determining whether to adjust the parameter selection rate based on a difference between an amount of the one or more iterations and the iteration target;

determining whether to adjust the timestep length based on one or more timestep length selection parameters; and

adjusting the one or more timestep length selection parameters based on the parameter selection rate and the difference between the amount of the one or more iterations and the iteration target; and

outputting projected reservoir measurements determined based on the reservoir simulation.

Description:
AUTOMATIC TIMESTEP ADJUSTMENT FOR RESERVOIR SIMULATION

Cross-Reference to Related Applications

[0001] This application claims priority to U.S. Provisional Patent Application having serial no. 62/102,159, which was filed on January 12, 2015 and is incorporated herein by reference in its entirety.

Background

[0002] In the numerical simulation of time-dependent problems, such as, for example, reservoir simulation, the simulation can run in multiple iterations or steps (hereinafter, "timesteps"), where a timestep starts with values (estimated or actual) at a first time and estimates new values at a second time. The difference in time between the first time and the second time is the timestep length. For example, if a timestep length is one hour, then the simulation will use determined values from a previous timestep to determine the expected values one hour later, the expected values can then be used for the next timestep of the simulation.

[0003] The choice of timestep length can affect the time it takes to process a timestep, the processing resources needed to perform the entire simulation, and/or the total amount of time to perform the entire simulation. Small timestep lengths may be inefficient due to there being a minimum amount of work needed to perform a timestep of a simulation, regardless of the timestep length. Thus, the total amount of time to perform multiple timesteps of the simulation using small timestep lengths may not be efficient. Large timestep lengths could result in a lesser total amount of time, but can be computationally expensive and, thus, use more processing resources and/or can result in a simulation failure that results in repeated attempts to perform a timestep. Accordingly, using large timestep lengths may result in a greater total amount of time to perform multiple iterations due to overburdened processing resources, processing inefficacies, and/or simulation failures due to failures to converge to the root when calculating or solving a system of non-linear equations. Accordingly, selection of an appropriate timestep length is a useful step in performing simulations.

[0004] Additionally, the conditions that affect the efficiency of a given timestep length can vary between timesteps in the simulation. For instance, a first timestep length may be efficient for some values, but may result in a simulation failure with other values. [0005] Variable timesteps can be selected using certain parameters. However, the parameters can have similar drawbacks to the timestep lengths, and the parameters that may result in choosing efficient timesteps in certain situations, may result in inappropriate timesteps in other situations, which can impact the performance of the simulation

Summary

[0006] Systems, apparatus, computer-readable media, and methods are disclosed for performing a reservoir simulation by obtaining initial reservoir measurements and performing a reservoir simulation in multiple timesteps using the reservoir measurements. Based on the reservoir simulation, projected reservoir measurements can be determined and output.

[0007] In an embodiment, a timestep can be performed by obtaining, at a start of the timestep, reservoir measurements, a timestep length, a parameter selection rate, and an iteration target and then performing the reservoir simulation for the timestep to determine projected reservoir measurements at an end of the timestep.

[0008] In an embodiment, the parameter selection rate can be adjusted based on a difference between an amount of iterations used to determine the projected reservoir measurements and the iteration target.

[0009] In an embodiment, a timestep length of the next timestep can be determined based on timestep length selection parameters.

[0010] In an embodiment, the timestep length selection parameters can be adjusted based on the parameter selection rate and the difference between the amount of iterations and the iteration target.

[0011] It will be appreciated that this summary is intended merely to introduce some aspects of the present methods, systems, and media, which are more fully described and/or claimed below. Accordingly, this summary is not intended to be limiting.

Brief Description of the Drawings

[0012] The accompanying drawings, which are incorporated in and constitute a part of this specification, illustrate embodiments of the present teachings and together with the description, serve to explain the principles of the present teachings. In the figures: [0013] Figure 1 illustrates an example of a system that includes various management components to manage various aspects of a geologic environment, according to an embodiment.

[0014] Figure 2 illustrates an example of a method for performing a reservoir simulation, according to an embodiment.

[0015] Figure 3 illustrates an example of a method for performing a reservoir simulation in multiple timesteps, according to an embodiment.

[0016] Figure 4 illustrates an example showing variable parameter values during multiple timesteps of a simulation, according to an embodiment.

[0017] Figure 5 illustrates a computing system, according to an embodiment. Detailed Description

[0018] Reference will now be made in detail to embodiments, examples of which are illustrated in the accompanying drawings and figures. In the following detailed description, numerous specific details are set forth in order to provide a thorough understanding of the disclosure. However, it will be apparent to one of ordinary skill in the art that certain embodiments of the disclosure may be practiced without these specific details. In other instances, well-known methods, procedures, components, circuits, and networks have not been described in detail so as not to unnecessarily obscure aspects of the embodiments.

[0019] It will also be understood that, although the terms first, second, etc. may be used herein to describe various elements, these elements should not be limited by these terms. These terms are used to distinguish one element from another. For example, a first object or step could be termed a second object or step, and, similarly, a second object or step could be termed a first object or step, without departing from the scope of the disclosure. The first object or step, and the second object or step, are both, objects or steps, respectively, but they are not to be considered the same object or step.

[0020] The terminology used in the description herein is for the purpose of describing particular embodiments and is not intended to be limiting. As used in the description and the appended claims, the singular forms "a," "an" and "the" are intended to include the plural forms as well, unless the context clearly indicates otherwise. It will also be understood that the term "and/or" as used herein refers to and encompasses any possible combinations of one or more of the associated listed items. It will be further understood that the terms "includes," "including," "comprises" and/or "comprising," when used in this specification, specify the presence of stated features, integers, steps, operations, elements, and/or components, but do not preclude the presence or addition of one or more other features, integers, steps, operations, elements, components, and/or groups thereof. Further, as used herein, the term "if may be construed to mean "when" or "upon" or "in response to determining" or "in response to detecting," depending on the context.

[0021] Attention is now directed to processing procedures, methods, techniques, and workflows that are in accordance with some embodiments. Some operations in the processing procedures, methods, techniques, and workflows disclosed herein may be combined and/or the order of some operations may be changed.

[0022] Figure 1 illustrates an example of a system 100 that includes various management components 1 10 to manage various aspects of a geologic environment 150 (e.g., an environment that includes a sedimentary basin, a reservoir 151, one or more faults 153-1, one or more geobodies 153-2, etc.). For example, the management components 110 may allow for direct or indirect management of sensing, drilling, injecting, extracting, etc., with respect to the geologic environment 150. In turn, further information about the geologic environment 150 may become available as feedback 160 (e.g., optionally as input to one or more of the management components 110).

[0023] In the example of Figure 1, the management components 110 include a seismic data component 112, an additional information component 1 14 (e.g., well/logging data), a processing component 116, a simulation component 120, an attribute component 130, an analysis/visualization component 142 and a workflow component 144. In operation, seismic data and other information provided per the components 112 and 114 may be input to the simulation component 120.

[0024] In an example embodiment, the simulation component 120 may rely on entities 122. Entities 122 may include earth entities or geological objects such as wells, surfaces, bodies, reservoirs, etc. In the system 100, the entities 122 can include virtual representations of actual physical entities that are reconstructed for purposes of simulation. The entities 122 may include entities based on data acquired via sensing, observation, etc. (e.g., the seismic data 112 and other information 114). An entity may be characterized by one or more properties (e.g., a geometrical pillar grid entity of an earth model may be characterized by a porosity property). Such properties may represent one or more measurements (e.g., acquired data), calculations, etc.

[0025] In an example embodiment, the simulation component 120 may operate in conjunction with a software framework such as an object-based framework. In such a framework, entities may include entities based on pre-defined classes to facilitate modeling and simulation. A commercially available example of an object-based framework is the MICROSOFT ® .NET ® framework (Redmond, Washington), which provides a set of extensible object classes. In the .NET ® framework, an object class encapsulates a module of reusable code and associated data structures. Object classes can be used to instantiate object instances for use in by a program, script, etc. For example, borehole classes may define objects for representing boreholes based on well data.

[0026] In the example of Figure 1, the simulation component 120 may process information to conform to one or more attributes specified by the attribute component 130, which may include a library of attributes. Such processing may occur prior to input to the simulation component 120 (e.g., consider the processing component 116). As an example, the simulation component 120 may perform operations on input information based on one or more attributes specified by the attribute component 130. In an example embodiment, the simulation component 120 may construct one or more models of the geologic environment 150, which may be relied on to simulate behavior of the geologic environment 150 (e.g., responsive to one or more acts, whether natural or artificial). In the example of Figure 1, the analysis/visualization component 142 may allow for interaction with a model or model-based results (e.g., simulation results, etc.). As an example, output from the simulation component 120 may be input to one or more other workflows, as indicated by a workflow component 144.

[0027] As an example, the simulation component 120 may include one or more features of a simulator such as the ECLIPSE™ reservoir simulator (Schlumberger Limited, Houston Texas), the INTERSECT™ reservoir simulator (Schlumberger Limited, Houston Texas), etc. As an example, a simulation component, a simulator, etc. may include features to implement one or more meshless techniques (e.g., to solve one or more equations, etc.). As an example, a reservoir or reservoirs may be simulated with respect to one or more enhanced recovery techniques (e.g., consider a thermal process such as SAGD, etc.). [0028] In an example embodiment, the management components 110 may include features of a commercially available framework such as the PETREL ® seismic to simulation software framework (Schlumberger Limited, Houston, Texas). The PETREL ® framework provides components that allow for optimization of exploration and development operations. The PETREL ® framework includes seismic to simulation software components that can output information for use in increasing reservoir performance, for example, by improving asset team productivity. Through use of such a framework, various professionals (e.g., geophysicists, geologists, and reservoir engineers) can develop collaborative workflows and integrate operations to streamline processes. Such a framework may be considered an application and may be considered a data-driven application (e.g., where data is input for purposes of modeling, simulating, etc.).

[0029] In an example embodiment, various aspects of the management components 110 may include add-ons or plug-ins that operate according to specifications of a framework environment. For example, a commercially available framework environment marketed as the OCEAN ® framework environment (Schlumberger Limited, Houston, Texas) allows for integration of addons (or plug-ins) into a PETREL ® framework workflow. The OCEAN ® framework environment leverages .NET ® tools (Microsoft Corporation, Redmond, Washington) and offers stable, user- friendly interfaces for efficient development. In an example embodiment, various components may be implemented as add-ons (or plug-ins) that conform to and operate according to specifications of a framework environment (e.g., according to application programming interface (API) specifications, etc.).

[0030] Figure 1 also shows an example of a framework 170 that includes a model simulation layer 180 along with a framework services layer 190, a framework core layer 195 and a modules layer 175. The framework 170 may include the commercially available OCEAN ® framework where the model simulation layer 180 is the commercially available PETREL ® model-centric software package that hosts OCEAN ® framework applications. In an example embodiment, the PETREL ® software may be considered a data-driven application. The PETREL ® software can include a framework for model building and visualization.

[0031] As an example, a framework may include features for implementing one or more mesh generation techniques. For example, a framework may include an input component for receipt of information from interpretation of seismic data, one or more attributes based at least in part on seismic data, log data, image data, etc. Such a framework may include a mesh generation component that processes input information, optionally in conjunction with other information, to generate a mesh.

[0032] In the example of Figure 1, the model simulation layer 180 may provide domain objects 182, act as a data source 184, provide for rendering 186 and provide for various user interfaces 188. Rendering 186 may provide a graphical environment in which applications can display their data while the user interfaces 188 may provide a common look and feel for application user interface components.

[0033] As an example, the domain objects 182 can include entity objects, property objects and optionally other objects. Entity objects may be used to geometrically represent wells, surfaces, bodies, reservoirs, etc., while property objects may be used to provide property values as well as data versions and display parameters. For example, an entity object may represent a well where a property object provides log information as well as version information and display information (e.g., to display the well as part of a model).

[0034] In the example of Figure 1, data may be stored in one or more data sources (or data stores, generally physical data storage devices), which may be at the same or different physical sites and accessible via one or more networks. The model simulation layer 180 may be configured to model projects. As such, a particular project may be stored where stored project information may include inputs, models, results and cases. Thus, upon completion of a modeling session, a user may store a project. At a later time, the project can be accessed and restored using the model simulation layer 180, which can recreate instances of the relevant domain objects.

[0035] In the example of Figure 1, the geologic environment 150 may include layers (e.g., stratification) that include a reservoir 151 and one or more other features such as the fault 153-1, the geobody 153-2, etc. As an example, the geologic environment 150 may be outfitted with any of a variety of sensors, detectors, actuators, etc. For example, equipment 152 may include communication circuitry to receive and to transmit information with respect to one or more networks 155. Such information may include information associated with downhole equipment 154, which may be equipment to acquire information, to assist with resource recovery, etc. Other equipment 156 may be located remote from a well site and include sensing, detecting, emitting or other circuitry. Such equipment may include storage and communication circuitry to store and to communicate data, instructions, etc. As an example, one or more satellites may be provided for purposes of communications, data acquisition, etc. For example, Figure 1 shows a satellite in communication with the network 155 that may be configured for communications, noting that the satellite may additionally or alternatively include circuitry for imagery (e.g., spatial, spectral, temporal, radiometric, etc.).

[0036] Figure 1 also shows the geologic environment 150 as optionally including equipment 157 and 158 associated with a well that includes a substantially horizontal portion that may intersect with one or more fractures 159. For example, consider a well in a shale formation that may include natural fractures, artificial fractures (e.g., hydraulic fractures) or a combination of natural and artificial fractures. As an example, a well may be drilled for a reservoir that is laterally extensive. In such an example, lateral variations in properties, stresses, etc. may exist where an assessment of such variations may assist with planning, operations, etc. to develop a laterally extensive reservoir (e.g., via fracturing, injecting, extracting, etc.). As an example, the equipment 157 and/or 158 may include components, a system, systems, etc. for fracturing, seismic sensing, analysis of seismic data, assessment of one or more fractures, etc.

[0037] As mentioned, the system 100 may be used to perform one or more workflows. A workflow may be a process that includes a number of worksteps. A workstep may operate on data, for example, to create new data, to update existing data, etc. As an example, a workstep may operate on one or more inputs and create one or more results, for example, based on one or more algorithms. As an example, a system may include a workflow editor for creation, editing, executing, etc. of a workflow. In such an example, the workflow editor may provide for selection of one or more pre-defined worksteps, one or more customized worksteps, etc. As an example, a workflow may be a workflow implementable in the PETREL ® software, for example, that operates on seismic data, seismic attribute(s), etc. As an example, a workflow may be a process implementable in the OCEAN ® framework. As an example, a workflow may include one or more worksteps that access a module such as a plug-in (e.g., external executable code, etc.).

[0038] In some embodiments, system 100 and/or simulation component 120 may be used for reservoir simulation. For example, current measurements of a reservoir (e.g., measurements extracted during a well test of an oil, gas, or water reservoir) can be input into system 100 and/or simulation component 120, and system 100 and/or simulation component 120 can perform a simulation to determine expected measurements in the future. The expected measurements can be used to, for example, determine well extraction rates, determine which reservoirs to expend resources on, determine well locations, determine when to terminate reservoir extraction, etc. Examples of reservoir measurements include well extraction rates, volumetric flow rates, well pressure, gas/oil ratio, composition of fluid in reservoir, etc.

[0039] Embodiments of the disclosure may provide systems, methods, and computer-readable media for performing reservoir simulation using dynamic timestep lengths determined using dynamic timestep length selection parameters. In an embodiment, the method may adjust the timestep lengths and/or parameters in order to make the simulation run more efficiently, even if the nature of the problem changes during the simulation. Thus inefficiencies caused by using inappropriate default timestep lengths and/or timestep length selection parameters can be avoided, and the simulation can be efficiently performed using the processing resources available, even if the nature of the problem changes during the simulation.

[0040] Figure 2 illustrates an example of a method for performing a reservoir simulation. In some embodiments, the example method illustrated in Figure 2 can be performed using a computing device that includes the framework (e.g., framework 170) and the management components (e.g., management components 110) described above with reference to Figure 1.

[0041] The example method can begin in 200, when the computing device receives or obtains current measurements of the reservoir. For example, the measurements can be input manually by a user or received via one or more measurement devices. Example measurements include a current well extraction rate(s), a current volumetric flow rate(s), well pressure(s), gas/oil ratio(s), composition of fluid(s) in reservoir, etc.

[0042] In 210, the computing device can receive or obtain a simulation length. For example, the simulation length can be received from a user or can be a predetermined default value. Shorter simulation lengths can be measured in, for example, seconds, minutes, and/or hours, while longer simulation lengths can be measured in, for example, years, decades, and beyond.

[0043] In some embodiments, the simulation length can be selected based on an expected remaining lifetime of the reservoir, which can vary based on when extraction began at the reservoir, the size of the reservoir, the amount of fluid in the reservoir, the extraction rate of the reservoir, etc. Often, reservoirs have an expected total lifetime of between 10 to 40 years. [0044] In 220, the computing device can receive or obtain a starting timestep length. In some embodiments, the starting timestep length can be received from a user. In other embodiments, the starting timestep length can be a predetermined default value.

[0045] In 230, the computing device can perform the reservoir simulation in multiple timesteps using variable timestep lengths, variable timestep length selection parameters, variable parameter selection rates, and/or variable iteration targets, as discussed in further detail below with regard to Figure 3. In an example embodiment, the computing device may construct one or more models of the reservoir, which may be relied on to simulate behavior of the reservoir and/or determine expected measurements within the reservoir at a timestep.

[0046] In 240, the computing device can determine projected measurements of the reservoir based on the simulation. For example, the reservoir simulation can be used to determine expected well extraction rates at the end of a timestep and at the end of the simulation based on changing expected well pressures and/or volumetric flow rates. Additionally, for example, the reservoir simulation can be used to determine expected gas/oil ratios and compositions of fluids at the end of a timestep and at the end of the simulation based on changing well extraction rates.

[0047] In 250, the computing device can output the projected measurements. For example, the projected measurements can be output using the analysis/visualization component 142 described with reference to Figure 1, and the analysis/visualization component 142 may allow for interaction with a model and/or the projected measurements. As another example, the projected measurements may be input into one or more other workflows (e.g., as indicated by a workflow component 144 in Figure 1).

[0048] In further embodiments, the projected measurements can be used to, for example, determine well extraction rates, determine which reservoirs to expend resources on, determine well locations, determine when to terminate reservoir extraction, etc.

[0049] Figure 3 illustrates an example of a method for performing a reservoir simulation in multiple timesteps using variable timestep lengths, variable timestep length selection parameters, variable parameter selection rates, and/or variable iteration targets. In some embodiments, the example method illustrated in Figure 3 can be performed using a computing device that includes the framework (e.g., framework 170) and the management components (e.g., management components 110) described above with reference to Figure 1. [0050] In some embodiments, the method described with regard to Figure 3 can represent the process performed in 230 as described with regard to Figure 2.

[0051] The example method can begin in 300, when the computing device obtains measurements, a timestep length, a parameter selection rate, and an iteration target number to perform a new timestep of a reservoir simulation. The obtained measurements can represent the measurements at the start of the timestep.

[0052] In some embodiments, the obtained measurements can be current measurements of the reservoir (e.g., as obtained in 200 as described with regard to Figure 2). When the obtained measurements in 300 are the current or initial measurements of the reservoir, the timestep of the reservoir simulation can be the first timestep of the reservoir simulation. In other embodiments, the obtained measurements can be projected measurements determined in the previous timestep of the simulation.

[0053] In various embodiments, when the timestep of the reservoir simulation is the first timestep of the reservoir simulation, the parameter selection rate and the iteration target number, both described in further detail below, can be default values or can be received from a user. In other embodiments, the parameter selection rate and the iteration target number can be the same values from a previous timestep or can be adjusted values based on results of the timestep.

[0054] Example measurements that can be obtained include a well extraction rate(s), a volumetric flow rate(s), well pressure(s), gas/oil ratio(s), composition of fluid(s) in reservoir, etc.

[0055] In 310, the computing device can perform the reservoir simulation for the timestep using the measurements obtained in 300 to attempt to determine projected measurements at the end of the timestep. For example, the computing device may construct one or more models of the reservoir, which may be relied on to simulate behavior of the reservoir and/or determine expected measurements within the reservoir at the end of the timestep.

[0056] In some embodiments, to simulate behavior of the reservoir and/or determine expected measurements within the reservoir, non-linear equations may be produced and solved. In an example embodiment, the non-linear equations may be solved using Newton's method in a first Newton iteration, which can produce additional non-linear equations to be solved in a second Newton iteration. The additional non-linear equations can be solved in the second Newton iteration, and may produce additional linear equations to be solved in a third Newton iteration, etc. Generally, the larger the timestep, the greater the number of Newton iterations needed to converge to the root. Thus, the number of Newton iterations can be used to determine the efficiency of the timestep, as discussed in further detail below.

[0057] In various embodiments, the iteration target can represent a number of Newton iterations that is considered efficient for the simulation and/or the iteration target number can be an indication of how well the simulation is performing. For example, a user can set the iteration target number at five and/or the default value can be five. The iteration target number can be a dynamic value that can be changed based on various factors during the simulation, as described below.

[0058] In 320, the computing device can determine whether there was a failure to converge to the root. If there is a failure to converge to the root (Yes in 320), the timestep length is too large and the method proceeds to 330, where a new timestep length is determined.

[0059] In various embodiments, the new timestep length can be determined using one or more parameters. As an example, a parameter can be a chop parameter, which determines a factor by which the timestep length is reduced in the event of a failure to converge to the root. For example, the chop parameter can be set at a value of 0.1 and the current timestep length can be one hour. Accordingly, in the event of a failure, the timestep length can be adjusted based on the chop parameter to 0.1 hours.

[0060] In further embodiments, the parameter(s) used to determine the new timestep length can also be adjusted using a parameter selection rate, which can be a dynamic value. The rate can increased or decreased, as described below. For example, the rate can be increased if there is a failure to converge to the root (e.g., Yes in 320).

[0061] In some embodiments, the parameters can be adjusted based on the rate, the actual number of Newton iterations, the iteration target and the current value of the parameter. For example, the parameters can be adjusted based on the following formula:

New parameter = old parameter (1 + rate(target— actual)).

[0062] In embodiments where there is a failure to converge to the root, a maximum value can be used as the actual number of Newton iterations (e.g., ten).

[0063] Once the timestep length and rate are adjusted, the process can return to 310 and the computing device can perform the reservoir simulation for the timestep using the measurements obtained in 300 to attempt to determine projected measurements at the end of the new, smaller, timestep. [0064] If there is no failure to converge to the root in 320 (No in 320), the method can proceed to 340 where the number of iterations is determined based on the number of Newton iterations performed to converge to the root.

[0065] In 350, the computing device can determine the difference between the actual number of Newton iterations performed and the iteration target. In various embodiments, the difference between the actual number of Newton iterations performed and the iteration target can be used to determine whether to adjust the parameter selection rate, to determine whether to adjust the timestep length, and to adjust parameters.

[0066] For example, in 360, the computing device can determine whether to adjust the parameter selection rate. For example, the rate can be increased if the difference between the number of Newton iterations performed and the iteration target is greater than a threshold amount, the rate can be increased if the last two timesteps were performed in a number of Newton iterations that were both above or both below the iteration target, the rate can be decreased if the last two timesteps were performed in a number of Newton iterations that were at or near (e.g. a difference of one) the iteration target, and/or the rate can be decreased if, in the last two timesteps, one was performed in a number of Newton iterations that was less than the iteration target number and the other was performed in a number of Newton iterations that was greater than the iteration target number.

[0067] In some implementations, a single rate can be used for the parameters, while, in further embodiments, multiple rates can be used, and multiple the rates can be used to adjust one or more parameters. The examples described below may refer to a single rate, but similar principles can be applied to implementations where multiple rates are used.

[0068] As another example, in 370, the computing device can determine whether to adjust the timestep length. In some embodiments, the computing device can determine whether to adjust the timestep length based on a parameter or parameters. As an example, a parameter can be a time truncation error parameter, which determines a factor by which the timestep length is reduced or increased. For example, if the rate that measurements are changing is increasing between timesteps, the timestep length can be reduced based on the time truncation error parameter. Otherwise, if the rate that measurements are changing is decreasing between timesteps, the timestep length can be increased based on the time truncation error parameter. For example, the time truncation error parameter can be set at a value of 0.1 and the current timestep length can be one hour. Accordingly, in the event of measurements changing at an increasing rate, the timestep length can be adjusted based on the time truncation error parameter to 0.1 hours. Alternatively, in the event of measurements changing at a decreasing rate, the timestep length can be adjusted based on the time truncation error parameter to 10 hours.

[0069] In 380, the computing device can determine whether to adjust the iteration target. In some embodiments, the computing device can determine the efficiency of previously performed timesteps. In some embodiments, the determined efficiency of a timestep can be determined based on cost of the timestep divided by the timestep length. For example, the cost can be the amount of time the computing device spent calculating that timestep (processing time). In some implementations, due to potential variability in the reported processing time, the cost can be determined using proxies for the processing time. For example, the number of Newton iterations used can be a proxy for the processing time. In such embodiments, the efficiency of the timestep can be the number of Newton iterations taken divided by the timestep length. In other implementations, other types of proxies can be used, such as proxies that take in to account the total amount of linear iterations used.

[0070] Additionally, in some embodiments, the efficiency of timesteps that are performed in a number of iterations that are above the iteration target can be compared to the efficiency of timesteps that are performed in a number of iterations that are below the iteration target. If either the timesteps that are performed in a number of iterations that are above the iteration target or the timesteps that are performed in a number of iterations that are below the iteration target are determined to be more efficient, then the iteration target number can be increased or decreased, respectively.

[0071] In other embodiments, if the current timestep had a timestep length larger than a previous timestep or previous timesteps, then the computing device can determine the amount of resources used by the current timestep and the previous timestep. If the current timestep used fewer resources than the previous timestep or the previous timesteps, the iteration target can be increased.

[0072] In 390, the computing device can adjust the parameters based on the rate, the actual number of iterations, the iteration target, and the current value of the parameter, as discussed above. [0073] Once the new parameters are determined, the process can return to 300 and proceed with the next timestep. For example, the timestep can have an adjusted timestep length if the timestep length was adjusted in 370 or can have the same timestep length of the previous timestep if the timestep length was not adjusted in 370.

[0074] Figure 4 illustrates an example showing variable parameter values during multiple timesteps of a simulation with variable timestep lengths, variable parameter selection rates, and variable iteration targets.

[0075] The first and second columns of table 400 represent the time that a timestep starts and the time that a timestep ends, respectively. As shown in Figure 4, for the sake of example, the time is represented using Unix timestamps.

[0076] The third column of table 400 represents the timestep length, which, in this example, ranges from .5 hours to 2.1 hours. The time ranges are merely an example and are not intended to be limiting.

[0077] The fourth and fifth columns of table 400 represent timestep length selection parameters such as, for example, a chop parameter and a time truncation error parameter. Additional or fewer parameters can be used, consistent with disclosed embodiments.

[0078] The sixth column of table 400 represents the parameter selection rate, which, in this example, ranges from .1 to .4. The parameter selection rates are merely an example and are not intended to be limiting.

[0079] The seventh column of table 400 represents the current iteration target, and the eighth column of table 400 represents the actual number of iterations performed for the timestep (e.g., Newton iterations). The iteration target and the actual number of iterations performed are merely examples and are not intended to be limiting.

[0080] The ninth, tenth, and eleventh columns of table 400 indicate whether the timestep results in an adjusted timestep length, an adjusted parameter selection rate, and/or an adjusted iteration target, respectively.

[0081] The first row of table 400 depicts a timestep that is one hour in length. The timestep takes one iteration, which is four iterations below the current iteration target of five. Accordingly, consistent with certain disclosed embodiments, a computing device can determine to adjust the timestep length and the parameter selection rate based on the difference between the current iteration target and the actual number of iterations being greater than predetermined thresholds. Additionally, the computing device may determine to not adjust the current iteration target.

[0082] The second row of table 400 depicts a timestep where the timestep length has been increased to two hours and the parameter selection rate has been increased to 0.2, based on the difference between the current iteration target and the actual number of iterations in the previous timestep. The timestep takes three iterations, which is two iterations below the current iteration target of five. Accordingly, consistent with certain disclosed embodiments, a computing device can determine to adjust the timestep length based on the difference between the current iteration target and the actual number of iterations being greater than a predetermined threshold (e.g., one). Additionally, consistent with certain disclosed embodiments, the computing device can determine to adjust the parameter selection rate based on two consecutive timesteps (first row and second row) where the actual number of iterations is less than the current iteration target. Additionally, the computing device may determine to not adjust the current iteration target.

[0083] The third row of table 400 depicts a timestep where the timestep length has been increased to 2.1 hours and the parameter selection rate has been increased to 0.3. The timestep takes five iterations, which is the current iteration target. Accordingly, consistent with certain disclosed embodiments, a computing device can determine not to adjust the timestep length, the parameter section rate, or the current iteration target.

[0084] The fourth row of table 400 depicts a timestep where the timestep length remains at 2.1 hours and the parameter selection rate remains at 0.3. The timestep takes five iterations, which is the current iteration target. Accordingly, consistent with certain disclosed embodiments, a computing device can determine not to adjust the timestep length or the current iteration target. However, consistent with certain disclosed embodiments, the computing device can determine to adjust the parameter selection rate based on two consecutive timesteps (third row and fourth row) where the actual number of iterations is at or near the current iteration target.

[0085] The fifth row of table 400 depicts a timestep where the timestep length remains at 2.1 hours and the parameter selection rate has decreased to 0.2. The timestep takes six iterations, which is one more than the current iteration target. Accordingly, consistent with certain disclosed embodiments, a computing device can determine not to adjust the timestep length or the current iteration target. However, consistent with certain disclosed embodiments, the computing device can determine to adjust the parameter selection rate based on two consecutive timesteps (fourth row and fifth row) where the actual number of iterations is at or near the current iteration target.

[0086] The sixth row of table 400 depicts a timestep where the timestep length remains at 2.1 hours and the parameter selection rate has decreased to 0.1. The timestep takes seven iterations, which is two more than the current iteration target. Accordingly, consistent with certain disclosed embodiments, a computing device can determine to adjust the timestep length. Additionally, consistent with certain disclosed embodiments, the computing device can determine to adjust the parameter selection rate based on two consecutive timesteps (fifth row and sixth row) where the actual number of iterations is greater than the current iteration target. However, the computing device may determine to not adjust the current iteration target.

[0087] The seventh row of table 400 depicts a timestep where the timestep length has decreased to two hours and the parameter selection rate has increased to 0.3. The timestep takes five iterations, which is the current iteration target. Accordingly, consistent with certain disclosed embodiments, the computing device can determine not to adjust the timestep length, the parameter section rate, or the current iteration target.

[0088] The eighth row of table 400 depicts a timestep where the timestep length remains at two hours and the parameter selection rate remains at 0.3. The timestep fails because, for example, there is a failure in converging to the root when solving or calculating a system of non-linear equations. Accordingly, consistent with certain disclosed embodiments, a computing device can determine to adjust the timestep length and the parameter selection rate based on the failure. For example, the computing device can use a chop parameter to adjust the timestep length (e.g., parameter 1). However, the computing device may determine to not adjust the current iteration target.

[0089] The ninth row of table 400 depicts a timestep where the timestep length has been decreased to 1.1 hours and the parameter selection rate has been increased to 0.4. The timestep can represent a new attempt to perform a simulation in place of the timestep depicted in the eighth row in response to the failure. The timestep takes two iterations, which is three less than the current iteration target. Accordingly, consistent with certain disclosed embodiments, a computing device can determine to adjust the timestep length. Additionally, the efficiency of timesteps that are performed in a number of iterations that are above the iteration target (e.g., row five and row six) can be compared to the efficiency of timesteps that are performed in a number of iterations that are below the iteration target (e.g., row two and row nine). Based on a determination that rows two and nine are more efficient than rows five and six, the computing device can determine to adjust the current iteration target. However, the computing device may determine to not adjust the parameter selection rate.

[0090] The tenth row of table 400 depicts a timestep where the timestep length has been decreased to 0.5 hours and the parameter selection rate remains at 0.4. Additionally, the current iteration target has been decreased to four. The timestep takes three iterations, which is one less than the current iteration target. Accordingly, consistent with certain disclosed embodiments, a computing device can determine to adjust the parameter selection rate. However, the computing device may determine to not adjust the timestep length or the current iteration target.

[0091] In some embodiments, the methods of the present disclosure may be executed by a computing system. Figure 5 illustrates an example of such a computing system 500, in accordance with some embodiments. The computing system 500 may include a computer or computer system 501 A, which may be an individual computer system 501 A or an arrangement of distributed computer systems. The computer system 501A includes one or more analysis modules 502 that are configured to perform various tasks according to some embodiments, such as one or more methods disclosed herein. To perform these various tasks, the analysis module 502 executes independently, or in coordination with, one or more processors 504, which is (or are) connected to one or more storage media 506. The processor(s) 504 is (or are) also connected to a network interface 507 to allow the computer system 501 A to communicate over a data network 509 with one or more additional computer systems and/or computing systems, such as 501B, 501C, and/or 501D (note that computer systems 501B, 501C and/or 501D may or may not share the same architecture as computer system 501A, and may be located in different physical locations, e.g., computer systems 501A and 501B may be located in a processing facility, while in communication with one or more computer systems such as 501C and/or 501D that are located in one or more data centers, and/or located in varying countries on different continents).

[0092] A processor may include a microprocessor, microcontroller, processor module or subsystem, programmable integrated circuit, programmable gate array, or another control or computing device. [0093] The storage media 506 may be implemented as one or more computer-readable or machine-readable storage media. Note that while in the example embodiment of Figure 5 storage media 506 is depicted as within computer system 501A, in some embodiments, storage media 506 may be distributed within and/or across multiple internal and/or external enclosures of computing system 501 A and/or additional computing systems. Storage media 506 may include one or more different forms of memory including semiconductor memory devices such as dynamic or static random access memories (DRAMs or SRAMs), erasable and programmable read-only memories (EPROMs), electrically erasable and programmable read-only memories (EEPROMs) and flash memories, magnetic disks such as fixed, floppy and removable disks, other magnetic media including tape, optical media such as compact disks (CDs) or digital video disks (DVDs), BLURAY ® disks, or other types of optical storage, or other types of storage devices. Note that the instructions discussed above may be provided on one computer-readable or machine-readable storage medium, or alternatively, may be provided on multiple computer- readable or machine-readable storage media distributed in a large system having possibly plural nodes. Such computer-readable or machine-readable storage medium or media is (are) considered to be part of an article (or article of manufacture). An article or article of manufacture may refer to any manufactured single component or multiple components. The storage medium or media may be located either in the machine running the machine-readable instructions, or located at a remote site from which machine-readable instructions may be downloaded over a network for execution.

[0094] In some embodiments, computing system 500 contains timestep length adjustment module(s) 508 for adjusting timestep lengths, parameters, parameter selection rates, iteration targets, etc. In the example of computing system 500, computer system 501A includes the timestep length adjustment module 508. In some embodiments, a single timestep length adjustment module may be used to perform aspects of one or more embodiments of the methods disclosed herein. In alternate embodiments, a plurality of timestep length adjustment modules may be used to perform aspects of methods disclosed herein.

[0095] It should be appreciated that computing system 500 is one example of a computing system, and that computing system 500 may have more or fewer components than shown, may combine additional components not depicted in the example embodiment of Figure 5, and/or computing system 500 may have a different configuration or arrangement of the components depicted in Figure 5. The various components shown in Figure 5 may be implemented in hardware, software, or a combination of both hardware and software, including one or more signal processing and/or application specific integrated circuits.

[0096] Further, the steps in the processing methods described herein may be implemented by running one or more functional modules in information processing apparatus such as general purpose processors or application specific chips, such as ASICs, FPGAs, PLDs, or other appropriate devices. These modules, combinations of these modules, and/or their combination with general hardware are included within the scope of protection of the disclosure.

[0097] Geologic interpretations, models, and/or other interpretation aids may be refined in an iterative fashion; this concept is applicable to the methods discussed herein. This may include use of feedback loops executed on an algorithmic basis, such as at a computing device (e.g., computing system 500, Figure 5), and/or through manual control by a user who may make determinations regarding whether a given step, action, template, model, or set of curves has become sufficiently accurate for the evaluation of the subsurface three-dimensional geologic formation under consideration.

[0098] The foregoing description, for purpose of explanation, has been described with reference to specific embodiments. However, the illustrative discussions above are not intended to be exhaustive or limited to the precise forms disclosed. Many modifications and variations are possible in view of the above teachings. Moreover, the order in which the elements of the methods described herein are illustrated and described may be re-arranged, and/or two or more elements may occur simultaneously. The embodiments were chosen and described in order to explain principals of the disclosure and practical applications, to thereby enable others skilled in the art to utilize the disclosure and various embodiments with various modifications as are suited to the particular use contemplated.