1. Field of the Invention
Embodiments of the invention relate to hydrocarbon reservoir production and, more specifically to methods, systems, and non-transitory computer-readable medium having computer program stored therein to simulate fluid flow within hydrocarbon reservoirs.
2. Description of the Related Art
One or more hydrocarbon reservoir simulation models—digital models that reflect characteristics related to a reservoir's ability to store and produce hydrocarbons—may be used to simulate fluid flow within a hydrocarbon reservoir for a variety of reasons related to development and production of the hydrocarbon reservoir. For example, hydrocarbon reservoir simulation models may be used to run fluid flow simulations to predict residual oil saturations or recovery factors. Performing a simulation, sometimes called a simulation “study,” may include performing one or more simulation runs (sometimes called “cases”) on a hydrocarbon reservoir simulation model in furtherance of a preselected goal. A simulation study may include a collection of simulation runs with the same objective function (i.e., in view of the same goal). An entity may have one or more hydrocarbon reservoir simulation models of a given hydrocarbon reservoir, and, as a result, multiple studies may be performed with respect to a single hydrocarbon reservoir. Further, different types of simulations may be performed on hydrocarbon reservoir simulation models for specific, distinct purposes. For example, history-matching simulations may be performed. A history-matching simulation, for instance, may include running a simulation on a hydrocarbon reservoir simulation model associated with a hydrocarbon reservoir and comparing the simulation output to known, observed, or measured characteristic values associated with the hydrocarbon reservoir. After comparing the simulation output to known values, the hydrocarbon reservoir simulation model may be calibrated or fine-tuned to thereby improve its accuracy as a model of the hydrocarbon reservoir. A calibrated hydrocarbon reservoir simulation model may then be used to perform another type of simulation: a predictive simulation. A predictive simulation predicts future circumstances given a production strategy, for example. One type of a predictive simulation is an optimization simulation. Optimization simulations, for example, may serve to find one or more solutions to series of equations that maximize (or minimize, in some instances, as appropriate) the value of a mathematical function related to a preselected goal. Yet another type of simulation is an uncertainty simulation. Uncertainty simulations may include a set of simulation runs having various reservoir parameter values as inputs such that the uncertainty simulation covers a spectrum of possible or uncertain reservoir parameters. That is, input parameters may be varied within geological uncertainty ranges or within an error bound. Uncertainty simulations may be useful when exact values of reservoir parameters are not know. Both predictive and history-matching simulations may also be uncertainty simulations. In addition, risk simulations may be similar to uncertainty simulations but may focus more on the risk of an outcome or an objective of the simulation, e.g., oil plateau production for N years. Risk simulations may be predictive simulations.
History-matching simulations, optimization simulations, and uncertainty and risk simulations—sometimes called “case studies,” “simulation studies,” or “hydrocarbon reservoir simulation case studies”—may produce some result data after each run. The results from each simulation study may then be used to develop a hydrocarbon reservoir simulation response surface model proxy, which may be used to evaluate the outcome of different scenarios.
A hydrocarbon reservoir simulation response surface model proxy—sometimes called a “proxy,” a “proxy model,” a “response surface model,” a “response function,” a “response surface,” or a “reservoir simulation response surface model,” for example—may be generated based on the output of a simulation study. That is, a proxy may include a mathematical function related to a preselected goal of the associated simulation study (an “objective function” or a “simulation objective”) that approximates the relationship between inputs to and outputs of a simulation through a mathematical relationship or regression function, for example. More specifically, a proxy may be an approximating or correlating function. A proxy may capture the relationship between input to and output of a simulation. Further, the objective function of a simulation study may be the objective, i.e., the goal, of the study in terms of output. An objective function, for instance, may be to maximize oil production or recovery. Other examples of objective functions may include maximizing off take rate, rate plateau, cash flow, or net present value (NPV), or minimizing costs. Consequently, a proxy may be used to estimate simulation output given a set of input without actually having to run another simulation. For example, an entity may wish to be able to quickly provide results for scenarios not explicitly evaluated by the study through the use of proxies. Proxy output may be used, for example, to conserve computing resources or to save time. The value of the output of a proxy may thus be described as a “function estimated,” a “response surface value,” a “value of an objective function,” or a “value of an approximating function,” for example. Different proxies (approximating functions) may give different values of an objective function for a constant given set of input parameters, for instance. That is, a proxy may approximate the response of a hydrocarbon reservoir model for some reservoir model input and a stated objective function. Consequently, a proxy may correspond to a given hydrocarbon reservoir simulation model and to an objective function.
Applicant has recognized many problems associated with proxies. For example, various techniques and technologies can be used during approximations, i.e., to generate each proxy. As a result, proxies can differ from one another depending, for example, on the algorithm used to approximate or correlate inputs to and outputs of a simulation.
For example, upstream activities in oil and gas industries can depend on integrated multidisciplinary teams to manage oil and gas fields and develop optimized field development plans (OFDP). Workflow processes to accelerate the delivery of OFDP are illustrated in
In the process illustrated in
After concluding the history-match model 52, many comparison cases 53 can be constructed and studied. These comparison cases 53 can be reference prediction cases that are based on the history-matched model from the previous history-matching step 52. For example, comparison cases 53 can be predictive simulations to model fluid flow characteristics in a hydrocarbon field under the assumption that the field continues to be developed with no further work-over (such as pulling and replacing a completion) or without work-over development activities, as will be understood by those skilled in the art. Consequently, comparison cases 53 can be described as no-further-drilling cases. This step can produce many response surfaces because a response surface can be generated for each comparison case 53. Uncertainty 58 can exist in this step because uncertainty 58 can be inherited from the previous history-matching step 52. However, uncertainty 58 for comparison cases 53 can have narrowed ranges of parameters.
After developing comparison cases 53, a series of simulations can be performed to investigate the effects of one variable or uncertain input to a simulation while holding other inputs constant. Inputs to a simulation that can be uncertain can include, for example, static features of a hydrocarbon reservoir (e.g., structure, porosity, FWL, fractures, or NTG), dynamic features of a hydrocarbon reservoir (e.g., Kr's, PVT, skin factor, Swr, or Sor), prices (e.g., price of oil, gas, or NGLs), and timing (e.g., weather windows, approval process, or market availability), as will be understood by those skilled in the art. Variables inputs to a simulation can include development decisions to be made, including strategic planning, wells tactics, or operations tactics. For example, strategic analysis 54 can occur. Strategic analysis 54 can include running simulations related to a series of individual alternative development strategies—such as water injection, gas injection, and pattern water flood, for example—using the concluded history-matched model from the history-matching step 52, a single well tactic, and a single operation tactic for each alternative strategy. Well tactics can include, for example, choosing well location, well type, well spacing, well completion, or well tubing. Operations tactics, on the other hand, can include injection balance or ratio or bottom pressure, for example. To ensure that strategy is the only variable during strategic analysis 54, the same history-matched model, well tactic, and operation tactic can be applied in each of the strategy runs. This step 54 can produce many response surfaces because a response surface can be generated for each strategy that is analyzed. The outcome of this step 54 can be a preferred or optimized strategy resulting in an optimum objective function. Uncertainty 58 can exist in this step 54 because uncertainty 58 can be inherited from the previous steps. After concluding strategic analysis 54, well tactic analysis 55 can be performed. Well tactic analysis 55 can include running a series of simulations related to individual alternative well tactics—such as horizontal, vertical, multi-lateral, in-field, flank, or pattern, for example—using the optimized strategy from the strategic analysis step 54 and a single operation tactic. That is, strategy and operation tactic can be configured so as not to vary between respective well tactic runs. This step 55 can produce many response surfaces because a response surface can be generated for each well tactic that is analyzed. The outcome of this step 55 can be a preferred or optimized well tactic resulting in an optimum objective function. Uncertainty 58 can exist in this step 55 because uncertainty 58 can be inherited from the previous steps.
Then, during operation tactic analysis 56, a study related to a single operation tactic can be conducted to derive an optimal combination of alternative operation tactics, such as bottom hole flowing pressure or bottom hole injection pressure, for example. That is, alternative combinations of parameters (such as voidage replacement ratio or gas injection rates) can be varied to achieve a preselected objective. Optimization 59 can occur during operation tactic analysis 56 because operation tactics can be controlled, unlike geological parameters. Operation tactic analysis 56 can be conducted using the optimized development strategy and well tactic from the previous steps, and, as a result, operation tactic can be the only variable. The outcome of this step 56 can be a preferred or optimized operation tactic resulting in an optimum objective function.
The process can conclude with an optimized field development plan (OFDP) 57 using the optimal operation tactics, development strategy, and well tactic that resulted from previous steps. Uncertainty 58 can exist in this step 57 because uncertainty 58 can be inherited from the previous steps.
As a result, many proxies can be generated, and these proxies can be implemented by technology providers using different methodologies as part of scientific assisted history match, optimization, or uncertainty and risk assessment packages, for example. Despite having proxies generated using dissimilar approaches or technologies, an entity can nonetheless wish to have access to all generated proxies in one location. The task of providing access to all study decisions and results in an easy and intuitive manner, however, can be a major challenge for an entity with a large amount of hydrocarbon reservoir simulation data. Failing to provide such access, though, can contribute to many lost opportunities for the entity. For instance, the entity can fail to recognize a trend that is only apparent after analyzing multiple proxies.
In particular, some challenges in achieving this goal of providing access to all study decisions and results can include lack of standardization, utilization of many incompatible solutions and technologies, and large data size. In addition, problems, challenges, obstacles, or difficulties can include potential vendor lock-in, dependence on vendor-specific implementations for such an important reservoir management tool, and project delays because of dependence on vendors.
An entity can use an interface (a “dashboard”) to provide access to different proxy implementations—proxies generated by dissimilar approaches—for example.
Applicant has recognized that a dashboard that requires customization to enable probing of hydrocarbon reservoir simulation response surface model proxies generated by dissimilar approaches or technologies can be difficult to create and maintain. As a result, Applicant hereby discloses embodiments of the present invention that can eliminate a need for customization to each technology used to create a hydrocarbon reservoir simulation response surface model proxy. Advantageously, embodiments can thus eliminate any potential vendor lock-in or dependence on vendor-specific implementations by eliminating the need for high-overhead, complex links required to integrate a dashboard with different vendor proxy (response surface models) implementations. In addition, any need to continually revise a developed dashboard whenever a vendor implementation is updated or changed can be eliminated. Furthermore, embodiments can accelerate project delivery by eliminating many possible project show-stoppers, including vendor resistance to sharing underling implementation details required to develop custom links, and can allow all project participants to focus on their expertise.
More specifically, an application programming interface (API) can be developed to overcome some of the limitations described above. An API can be used to probe a response function (proxy) and get the response surface value (i.e., function estimated value) with certain (i.e., specific) probabilities of the response surface value's being accurate. Further, a response surface value can be obtained under different, uncertain conditions. For example, embodiments of the invention—including, for example, API design—can make a dashboard interoperable with various reservoir simulation proxies (response surface models) developed using diverse technological frameworks, i.e., using different technologies. An R-language framework, for example, can make it easy to implement statistical analysis functions. That is, routines defined in an API according to embodiments of the invention—a “proxy API,” for example—can be implemented in a programming language and environment for statistical computations, such as that provided by R language. R language, as will be understood by those skilled in the art, is designed for efficient statistical computations and data mining operations. The proxy API specification in R image format can provide interoperability of a dashboard with technologies used in various simulation proxies. For instance, exported R images files can then be loaded into an R interpreter, which can be connected to a dashboard. The dashboard can communicate with the R interpreter through the set of function calls specified in the proxy API and implemented in the R images files loaded into the R interpreter.
Embodiments of the invention can include systems, computer-implemented methods, and non-transitory computer-readable medium having computer program stored therein to enhance probing of hydrocarbon reservoir simulation models. For example, a system to enhance probing of hydrocarbon reservoir simulation models, according to an embodiment, can include one or more processors and one or more databases in communication with the one or more processors. The one or more databases can also have data associated with one or more different hydrocarbon reservoir simulation response surface model proxies stored therein. For example, data associated with the one or more different hydrocarbon reservoir simulation response surface model proxies can include the one or more different hydrocarbon reservoir simulation response surface model proxies themselves, as well as hydrocarbon reservoir simulation study results. Further, the one or more different hydrocarbon reservoir simulation response surface model proxies can thereby define surface model proxies. The surface model proxies can have a common image format based on a conversion from a plurality of different simulation model technology formats to the common image format. In addition, each of the surface model proxies can be associated with one of one or more hydrocarbon reservoir simulation models. A system can also include one or more input and output units in communication with the one or more processors and positioned to receive input and output communication. In addition, a system can include a display in communication with the one or more processors. The display can be configured to display an electronic user interface thereon, for example. A system can still further include non-transitory memory medium in communication with one or more of the one or more processors. The memory medium can have computer-readable instructions stored therein that when executed cause the one or more processors to perform a series of steps.
The steps can include, for example, initiating a proxy application programming interface (API), responsive to user request through the one or more input and output units. Initiating the proxy API can thereby interrogate one or more of the surface model proxies from the one or more databases. In addition, the proxy API can be configured to include a plurality of different preselected operations. The steps can also include interpreting each of the one or more of the surface model proxies. Interpreting each of the one or more of the surface model proxies can thereby retrieve a simulation data set for each of the one or more surface model proxies responsive to each of the plurality of different preselected operations of the proxy API. The steps can further include displaying—for each of the one or more surface model proxies—one or more results of each of the plurality of different preselected operations of the proxy API through the electronic user interface on the display to thereby probe the associated hydrocarbon reservoir simulation models. In some circumstances, displaying can include selectively displaying one or more uncertainty characteristics of each of the one or more of the surface model proxies on the electronic user interface by use of the proxy API. The one or more uncertainty characteristics can be configured to include an S-curve related to each of the surface model proxies, for example. Further, each of the one or more S-curves can depict cumulative probabilities of simulation outcome data. S-curves can be analyzed to estimate one or more probabilities of simulation outcome for one or more potential simulation scenarios yet to be run. Estimating probabilities of simulation outcome can thereby enhance probing of the one or more hydrocarbon reservoir simulation models. Additionally, one or more of the plurality of different preselected operations of the proxy API can responsively enhance one or more workflows for hydrocarbon field development plans.
Embodiments can also include computer-implemented methods to enhance probing of hydrocarbon reservoir simulation models. For example, a computer-implemented method can include initiating a proxy application programming interface (API) to thereby interrogate one or more of one or more different hydrocarbon reservoir simulation response surface model proxies. The one or more different hydrocarbon reservoir simulation response surface model proxies can thereby define surface model proxies. Furthermore, the surface model proxies can have a common image format based on a conversion from a plurality of different simulation model technology formats to the common image format. Each of the surface model proxies can be associated with one of one or more hydrocarbon reservoir simulation models, for example. In addition, the proxy API can be configured to include a plurality of different preselected operations. A method can also include interpreting each of the one or more of the surface model proxies to thereby retrieve a simulation data set for each of the one or more of the surface model proxies responsive to each of the plurality of different preselected operations of the proxy API. Further, a method can include displaying, for each of the one or more of the surface model proxies, one or more results of each of the plurality of different preselected operations of the proxy API to thereby probe the associated hydrocarbon reservoir simulation models. In some circumstances, displaying can include selectively displaying one or more uncertainty characteristics of each of the one or more of the surface model proxies by use of the proxy API. The one or more uncertainty characteristics can be configured to include an S-curve related to each of the surface model proxies. Further, each of the one or more S-curves can depict cumulative probabilities of simulation outcome data. S-curves can be analyzed to estimate one or more probabilities of simulation outcome for one or more potential simulation scenarios yet to be run. Estimating probabilities of simulation outcome can thereby enhance probing of the one or more hydrocarbon reservoir simulation models. Additionally, one or more of the plurality of different preselected operations of the proxy API can responsively enhance one or more workflows for hydrocarbon field development plans.
Embodiments can still further include non-transitory computer-readable medium having one or more computer programs stored therein operable by one or more processors to enhance probing of hydrocarbon reservoir simulation models. For example, in non-transitory computer-readable medium having one or more computer programs stored therein operable by one or more processors according to an embodiment, the one or more computer programs can include a set of instructions that, when executed by the one or more processors, cause the one or more processors to perform a series of operations. The operations that the one or more processors perform can include, for example, initiating a proxy application programming interface (API) to thereby interrogate one or more of one or more different hydrocarbon reservoir simulation response surface model proxies. The one or more different hydrocarbon reservoir simulation response surface model proxies can thereby define surface model proxies, for example. Further, the surface model proxies can have a common image format based on a conversion from a plurality of different simulation model technology formats to the common image format. Each of the surface model proxies can be associated with one of one or more hydrocarbon reservoir simulation models. In addition, the proxy API can be configured to include a plurality of different preselected operations. The operations that the one or more processors perform can also include, for example, interpreting each of the one or more of the surface model proxies to thereby retrieve a simulation data set for each of the one or more of the surface model proxies responsive to each of the plurality of different preselected operations of the proxy API. The operations that the one or more processors perform can further include displaying, for each of the one or more of the surface model proxies, one or more results of each of the plurality of different preselected operations of the proxy API to thereby probe the associated hydrocarbon reservoir simulation models. In some circumstances, displaying can include selectively displaying one or more uncertainty characteristics of each of the surface model proxies by use of the proxy API. The one or more uncertainty characteristics can be configured to include an S-curve related to each of the surface model proxies. Further, each of the one or more S-curves can depict cumulative probabilities of simulation outcome data. S-curves can be analyzed to estimate one or more probabilities of simulation outcome for one or more potential simulation scenarios yet to be run. Estimating probabilities of simulation outcome can thereby enhance probing of the one or more hydrocarbon reservoir simulation models. Additionally, one or more of the plurality of different preselected operations of the proxy API can responsively enhance one or more workflows for hydrocarbon field development plans.
These and other features, aspects, and advantages of the present invention will become better understood with regard to the following descriptions, claims, and accompanying drawings. It is to be noted, however, that the drawings illustrate only several embodiments of the invention and are therefore not to be considered limiting of the invention's scope as it can admit to other equally effective embodiments.
So that the manner in which the features and advantages of the embodiments of methods, systems, and non-transitory computer-readable medium having computer program stored therein of the present invention, as well as others, which will become apparent, may be understood in more detail, a more particular description of the embodiments of methods, systems, and non-transitory computer-readable medium having computer program stored therein of the present invention briefly summarized above may be had by reference to the embodiments thereof, which are illustrated in the appended drawings, which form a part of this specification. It is to be noted, however, that the drawings illustrate only various embodiments of the embodiments of methods, systems, and non-transitory computer-readable medium having computer program stored therein of the present invention and are therefore not to be considered limiting of the embodiments of methods, systems, and non-transitory computer-readable medium having computer program stored therein of the present invention's scope as it may include other effective embodiments as well.
Embodiments of the invention can include systems, computer-implemented methods, and non-transitory computer-readable medium having computer program stored therein to enhance probing of hydrocarbon reservoir simulation models. More specifically, embodiments of the invention can include an application programming interface that provides an interface to probe reservoir simulation response surface models (proxies). Embodiments can enable probing of hydrocarbon reservoir simulation response surface model proxies—sometimes called “proxies,” “proxy models,” “response surface models,” “response functions,” “response surfaces,” or “reservoir simulation response surface models,” for example—by use of an application programming interface (API) and a user interface, e.g., a “dashboard,” to display uncertainty and risk information. A need for an API according to an embodiment of the invention—a “proxy API,” for example—can exist in implementing workflows using response surfaces for statistical analysis. A proxy API can also be used for any other project that would need to probe reservoir simulation proxies to estimate uncertainty or risk parameters, however. Advantageously, embodiments can include simplifying development and integration of complex applications and dashboards that extract uncertainty and risk information from various response surface models (proxies).
A proxy API can be designed to help interrogate hydrocarbon reservoir simulation proxies (response surface models). Notably, these proxies can be generated using dissimilar approaches or technologies. A proxy API can advantageously be designed to provide a common interface and to hide underlying implementation details, e.g., details associated with an individual proxy-creation technology. Further, a proxy API can be used to build workflows to estimate probabilities of simulation outcome, such as probabilities of simulation outcome associated with achieving an objective function of a simulation study, for scenarios that were not run but fall between completed runs. For example, workflows built can include workflows built with a proxy API in business intelligence tools, as will be understood by those skilled in the art, such as a workflow related to the system depicted in
More specifically, a proxy API according to an embodiment of the invention can be designed to probe hydrocarbon reservoir simulation proxies or response surface models. A proxy API can be a gateway that allows development and integration of complex applications and dashboards to analyze uncertainty and risk information extracted from proxies or response surface models. These proxies can be generated using dissimilar approaches. Further, a proxy API can be developed in an R language environment for statistical computing. The R language environment can allow quick access to various statistical parameters from proxies, for example. A proxy API can also be designed to provide a common interface and hide underlying proxy details from complex application developers. Moreover, a proxy API according to an embodiment can provide functionalities to access uncertainty characteristics observed in a set of reservoir simulations and can be used to build workflows to estimate probabilities of simulation outcome (such as probabilities of simulation outcome associated with achieving a certain objective function) for scenarios that were not run but can fall between completed runs or, in some circumstances, for example, completed studies. An API can further provide functionalities to identify simulation models with close realization bracketing given a set of parameters. Close realization can refer to hydrocarbon reservoir models that have reservoir parameter values that are close to one another, for example. Further, bracketing can indicate being within some tolerance limit. Consequently, close realization bracketing can describe models that have variations in parameters within some limit (a “bracket”) from a scenario under investigation.
For example, a system to enhance probing of hydrocarbon reservoir simulation models, according to an embodiment, can include one or more processors 101 and one or more databases 102 in communication with the one or more processors 101, as illustrated in
A system can also include one or more input and output units 104 in communication with the one or more processors 101 and positioned to receive input and output communication. Further, a system can include a display 105 in communication with the one or more processors 101. The display 105 can be configured to display an electronic user interface 106 thereon, as will be understood by those skilled in the art, for example. A system can still further include non-transitory memory medium 107 in communication with one or more of the one or more processors 101. The memory medium 107 can have computer-readable instructions 108 stored therein that when executed cause the one or more processors 101 to perform a series of steps. The steps can include, for example, initiating a proxy application programming interface (API), responsive to user request through the one or more input and output units 104, to thereby interrogate one or more of the surface model proxies from the one or more databases 102. Interrogating (or “probing”) one of the surface model proxies can include, for example, obtaining associated risk and uncertainty information or an output value of the one of the surface model proxies given a set of hydrocarbon reservoir simulation run parameters. The proxy API can be configured to include a plurality of different preselected operations, for example. The steps can also include interpreting each of the one or more of the surface model proxies to thereby retrieve a simulation data set for each of the one or more of the surface model proxies responsive to each of the plurality of different preselected operations of the proxy API. Each simulation data set can include, for example, one or more uncertainty characteristics associated with one or more hydrocarbon reservoirs. Uncertainty characteristics can relate to uncertainty about properties of a real hydrocarbon reservoir and can accordingly relate to uncertainty in hydrocarbon models or proxies stemming from uncertainty related to an associated real reservoir. Uncertainty characteristics, for example, can relate to cumulative probability. The steps can further include displaying through the electronic user interface 106 on the display 105—for each of the one or more of the surface model proxies—one or more results of each of the plurality of different preselected operations of the proxy API to thereby probe the associated hydrocarbon reservoir simulation models. In some circumstances, displaying can include selectively displaying one or more uncertainty characteristics of each of the one or more of the surface model proxies on the electronic user interface 106 by use of the proxy API. The one or more uncertainty characteristics, for example, can be configured to include an S-curve related to each of the surface model proxies. Additionally, each of the one or more S-curves can depict cumulative probabilities of simulation outcome data.
As noted above, an example can relate to hydrocarbon production plateau duration. Hydrocarbon production plateau duration, as will be understood by those skilled in the art, can relate to the number of years before a hydrocarbon reservoir loses its ability to constantly deliver a hydrocarbon production target. A number of simulation runs can be performed to predict plateau duration, and the results of the simulation runs can be grouped into classes of output. For example, the predicted plateau duration for each simulation run can be grouped into one of the following classes: 10 years, 15 years, 20 years, 25 years, 30 years, or 35 years, as illustrated in the table in
In some circumstances, the one or more uncertainty characteristics can include a proxy value responsive to a set of most likely hydrocarbon reservoir simulation run parameters from the one or more input and output units 104. Most likely hydrocarbon reservoir simulation run parameters can include, for example, hydrocarbon reservoir simulation run parameters (“parameters” or “modifiers”) selected by a user. In some instances, modifiers can be parameters that are varied during a simulation run (i.e., input to the simulation run) to get a whole spectrum of solutions within an uncertainty range. For example, permeability_x for a region may be varied by a multiplication factor X1 to get a set of runs; in that example, X1 can be a modifier. A user can select parameters related to a hydrocarbon reservoir simulation run that has not yet been performed when, for instance, the user would like an approximated simulation outcome, given a set of parameters, without having to devote resources to an additional hydrocarbon reservoir simulation run. Further, a proxy value can include the value of an approximating function of the hydrocarbon reservoir simulation response surface model proxy given a set of hydrocarbon reservoir simulation run parameters. A set of most likely hydrocarbon reservoir simulation run parameters can be one of one or more possible sets of hydrocarbon reservoir simulation run parameters, for example.
Further, one or more of the plurality of different preselected operations of the proxy API can responsively enhance one or more workflows for hydrocarbon field development plans. In some instances, one or more third-party tools can implement the one or more workflows for hydrocarbon reservoir field development plans. The proxy API can advantageously allow better performing workflows for hydrocarbon reservoir field development plans because the proxy API can transcend different kinds of proxies, for example, such as those created by different approaches or technologies. An example of one of the plurality of different preselected operations of the proxy API that can responsively enhance one or more workflows for hydrocarbon field development plans can include, for instance, accessing uncertainty characteristics observed in a set of reservoir simulations. Further, use of the proxy API can enhance interactivity of a tool to build or implement such workflows in a more efficient manner.
The plurality of different preselected operations of the proxy API can include, for example, determining—responsive to a first preselected simulation objective—an output value of one or more of the surface model proxies for a first preselected set of hydrocarbon reservoir simulation run parameters with respect to the surface model proxies to thereby query the one or more of the surface model proxies. In addition, the plurality of different preselected operations of the proxy API can include, for example, identifying—responsive to a second preselected simulation objective—one of the hydrocarbon reservoir simulation models associated with one of the surface model proxies when the one of the surface model proxies has an output value for a second preselected set of hydrocarbon reservoir simulation run parameters with respect to the surface model proxies that is closest to output values of a preselected simulation scenario. The identified hydrocarbon reservoir simulation model can thereby define a closest model.
Further, the plurality of different preselected operations of the proxy API can include, for example, identifying—responsive to a third preselected simulation objective—two of the hydrocarbon reservoir simulation models each associated with one of the surface model proxies and thereby defining close realization bracketing models. For example, the two models can be identified when: (1) one of the two of the surface model proxies has an output value for a third preselected set of hydrocarbon reservoir simulation run parameters with respect to the surface model proxies that is closest to the output value of another preselected simulated scenario among output values higher than the output value of the other preselected simulated scenario and (2) the other of the two of the surface model proxies has an output value for the third preselected set of hydrocarbon reservoir simulation run parameters that is closest to the output value of the other preselected simulated scenario among output values lower than the output value of the other preselected simulated scenario. That is, at least one of the plurality of different preselected operations of the proxy API can include identifying one or more of the surface model proxies that have close realization bracketing for a preselected set of hydrocarbon reservoir simulation run parameters with respect to the surface model proxies, for example. Close realization bracketing can include, for example, two of the surface model proxies that—given the preselected set of hydrocarbon reservoir simulation run parameters—have associated proxy values that are nearest to a proxy value associated with a hydrocarbon reservoir simulation response surface model proxy under interrogation. More specifically, one of the two of the surface model proxies can have an associated proxy value that is greater than the proxy value of the proxy under interrogation, and the other of the two of the surface model proxies can have an associated proxy value that is less than the proxy value of the proxy under interrogation. The two of the surface model proxies can thus “bracket” the proxy under interrogation. One of the close realization bracketing models can also be the closest model. Further, the preselected set of hydrocarbon reservoir simulation run parameters can be a different set of hydrocarbon reservoir simulation run parameters than the set of most likely hydrocarbon reservoir simulation run parameters, in some circumstances, or the preselected set of hydrocarbon reservoir simulation run parameters can be the same set of hydrocarbon reservoir simulation run parameters as the set of most likely hydrocarbon reservoir simulation run parameters.
In addition, the plurality of different preselected operations of the proxy API can include, for example, identifying names of one or more hydrocarbon reservoir simulation run parameters with respect to the surface model proxies responsive to a fourth preselected simulation objective to thereby return the identified one or more hydrocarbon reservoir simulation run parameters. The first, second, third, and fourth preselected simulation objectives can be the same simulation objective, in some circumstances, but each of the preselected simulation objectives can also be different from one or more of the other preselected simulation objectives.
Further, in some circumstances, the steps can also include displaying on the display 105—by use of the proxy API—observed reservoir characteristic values for one or more of the one or more hydrocarbon reservoirs to a user, for example. For instance, observed reservoir characteristic values can include measured data related to a hydrocarbon reservoir. Further, in some instances, input to a hydrocarbon reservoir simulation model used to create a proxy can have included these displayed observed reservoir characteristic values. Observed reservoir characteristic values can be stored in one or more databases, for example, including one or more of the one or more databases 102. For example, observed reservoir characteristic values can be stored in a simulation results database 215, as illustrated in
In some circumstances, each of the plurality of different simulation model technology formats can be associated with a unique set of one or more algorithms used to create a hydrocarbon reservoir simulation response surface model proxy. Each of the plurality of different simulation model technology formats can also be associated with a unique technology vendor, in some instances. Further, each of the one or more of the surface model proxies can be configured to simulate performance for a respective preselected period of desired time. For instance, an assisted history matching study can be performed using different technology than an optimization study. As a result, output of each study can be in a different format, for example, and interrogating proxies of each study can require different techniques. Further, proxies generated by dissimilar technology can measure or represent uncertainty or risk differently. Additionally, in some instances, one or more of the surface model proxies can each be generated responsive to one or more hydrocarbon reservoir simulation study approaches dissimilar from a hydrocarbon reservoir simulation study approach used to generate another one or more of the surface model proxies. Hydrocarbon reservoir simulation study approaches dissimilar from one another can include an assisted history matching study, a predictive study, an optimization study, and an uncertainty and risk analysis study, for example. As a result, different S-curves can correspond to different proxy technologies (i.e., approximating functions or implementations) or realizations of a hydrocarbon reservoir. Further, different realizations of a hydrocarbon reservoir can correspond to different sets of reservoir parameters that are all within an acceptable range of uncertainty of knowledge of the hydrocarbon reservoir. There can be an enormous number of unknown parameters in a hydrocarbon reservoir and sometimes only a very limited number of measurements or logs to determine these parameters, which can be a source of uncertainty in a reservoir model. One S-curve can correspond to a set of simulation runs when values of input parameters (modifiers) are changed. Further, a given set of values of modifiers can correspond to a point on the S-curve.
A proxy API can be built using a robust and popular framework for statistical analysis, e.g., R language, which can make it portable. Further, API routines (functions) can be carefully designed for hydrocarbon reservoir management analysis/decisions and dashboard implementation. That is, in some circumstances, the proxy API can relate to a system environment for statistical computing that includes R programming language, as will be understood by those skilled in the art. The common image format can include R image format, as well, which can be compatible with a plurality of technologies and approaches. Furthermore, interpreting each of the one or more of the surface model proxies can include translating one or more R image files associated with each of the one or more of the surface model proxies into a format readable by the proxy API. Translating the one or more R image files can thereby retrieve predetermined data from the one or more of the surface model proxies responsive to user request. As a result, an R interpreter 115 can be used, as illustrated in
For example, systems and methods related to a proxy API according to an embodiment are further illustrated in
An example of proxy access from dashboard 110 though a single proxy API is illustrated in
Embodiments of the invention can thus relate to building an interoperable interface between a dashboard 110 and various response surface models (proxies) in a database. Users can access simulation information—in some instances, stored in a simulation results database 215, as illustrated in
In addition, in some circumstances, each of the one or more S-curves can include (1) a statistically most likely point and (2) an output value of the related one of the surface model proxies for a preselected set of hydrocarbon reservoir simulation run parameters with respect to the surface model proxies (i.e., a hydrocarbon reservoir simulation response surface model proxy outcome associated with a preselected set of hydrocarbon reservoir simulation run parameters with respect to the hydrocarbon reservoir simulation response surface model proxy). For example, dashboard 110 can be implemented using proxy API routines as illustrated, for example, in
In a system according to an embodiment, in some circumstances, the instructions can further cause the one or more processors 101 to perform the step of creating the one or more of the surface model proxies, responsive to input from the one or more input and output units 104.
Embodiments can also include computer-implemented methods to enhance probing of hydrocarbon reservoir simulation models. For example, a computer-implemented method can include initiating a proxy application programming interface (API) to thereby interrogate one or more of one or more different hydrocarbon reservoir simulation response surface model proxies. The one or more different hydrocarbon reservoir simulation response surface model proxies can thereby define surface model proxies. Additionally, each of the surface model proxies can be associated with one of one or more hydrocarbon reservoir simulation models. Furthermore, the surface model proxies can have a common image format based on a conversion from a plurality of different simulation model technology formats to the common image format. In addition, the proxy API can be configured to include a plurality of different preselected operations. A method can also include interpreting each of the one or more of the surface model proxies to thereby retrieve a simulation data set for each of the one or more of the surface model proxies responsive to each of the plurality of different preselected operations of the proxy API, for example. Further, a method can include displaying—for each of the one or more of the surface model proxies—one or more results of each of the plurality of different preselected operations of the proxy API to thereby probe the associated hydrocarbon reservoir simulation models.
In some circumstances, the proxy API can relate to an environment for statistical computing that includes R programming language, and the common image format can include R image format. Further, interpreting each of the one or more of the surface model proxies can include translating one or more R image files associated with each of the one or more of the surface model proxies into a format readable by the proxy API to thereby retrieve predetermined data from the one or more of the surface model proxies, responsive to a user request.
Displaying can include selectively displaying one or more uncertainty characteristics of each of the one or more of the surface model proxies by use of the proxy API. In addition, the one or more uncertainty characteristics can be configured to include an S-curve related to each of the surface model proxies. An S-curve can be used, for example, to estimate one or more probabilities of simulation outcome for one or more potential simulation scenarios yet to be run to thereby enhance probing of the one or more hydrocarbon reservoir simulation models. Each of the one or more S-curves can depict cumulative probabilities of simulation outcome data. Additionally, each of the one or more S-curves can include a statistically most likely point and an output value of the related one of the surface model proxies for a preselected set of hydrocarbon reservoir simulation run parameters with respect to the surface model proxies. Further, in some circumstances, a method can also include creating the one or more of the surface model proxies responsive to user input. The one or more uncertainty characteristics can include a proxy value (i.e., output value of a proxy) responsive to a set of most likely hydrocarbon reservoir simulation run parameters. Further, one or more of the plurality of different preselected operations of the proxy API can responsively enhance one or more workflows for hydrocarbon field development plans. Additionally, one or more third-party tools can implement the one or more workflows for hydrocarbon reservoir field development plans.
In some circumstances, the plurality of different preselected operations of the proxy API can include determining—responsive to a first preselected simulation objective—an output value of one or more of the surface model proxies for a first preselected set of hydrocarbon reservoir simulation run parameters with respect to the surface model proxies to thereby query the one or more of the surface model proxies. The plurality of different preselected operations of the proxy API can also include identifying—responsive to a second preselected simulation objective—one of the hydrocarbon reservoir simulation models associated with one of the surface model proxies when the one of the surface model proxies has an output value for a second preselected set of hydrocarbon reservoir simulation run parameters with respect to the surface model proxies that is closest to output values of a preselected simulation scenario to thereby define a closest model.
Further, the plurality of different preselected operations of the proxy API can include identifying—responsive to a third preselected simulation objective—two of the hydrocarbon reservoir simulation models each associated with one of the surface model proxies when: (1) one of the two of the surface model proxies has an output value for a third preselected set of hydrocarbon reservoir simulation run parameters with respect to the surface model proxies that is closest to the output value of another preselected simulated scenario among output values higher than the output value of the other preselected simulated scenario and (2) the other of the two of the surface model proxies has an output value for the third preselected set of hydrocarbon reservoir simulation run parameters that is closest to the output value of the other preselected simulated scenario among output values lower than the output value of the other preselected simulated scenario. The two hydrocarbon reservoir simulation models can thereby define close realization bracketing models, for example. That is, at least one of the plurality of different preselected operations of the proxy API can include identifying one or more of the surface model proxies that have close realization bracketing for a preselected set of hydrocarbon reservoir simulation run parameters with respect to the surface model proxies. The plurality of different preselected operations of the proxy API can also include identifying names of one or more hydrocarbon reservoir simulation run parameters with respect to the surface model proxies responsive to a fourth preselected simulation objective to thereby return the identified one or more hydrocarbon reservoir simulation run parameters.
In some instances, each of the plurality of different simulation model technology formats can be associated with a unique set of one or more algorithms used to create a hydrocarbon reservoir simulation response surface model proxy and with a unique technology vendor. Further, each of the one or more of the surface model proxies can be configured to simulate performance for a respective preselected period of desired time. For example, one or more of the surface model proxies can each be generated responsive to one or more hydrocarbon reservoir simulation study approaches dissimilar from a hydrocarbon reservoir simulation study approach used to generate another one or more of the surface model proxies. Hydrocarbon reservoir simulation study approaches dissimilar from one another can include an assisted history matching study, a predictive study, an optimization study, and an uncertainty and risk analysis study, for example. A method can further include displaying on a display—by use of the proxy API—observed reservoir characteristic values for one or more of the one or more hydrocarbon reservoirs to a user.
For example, a method according to an embodiment is illustrated in
Implementing embodiments of the current invention in designing a dashboard 110 can include two phases, for instance. First, steps can be taken to implement embodiments of the invention, including a proxy API, in a new assisted history matching (AHM), optimization, uncertainty, or risk analysis package. Next, proxy API routines can be used to develop applications and dashboards, for example.
Implementation and validations details of proxy API routines are further illustrated, for example, in
Proxy API routines can then be used to develop applications and dashboards. As noted, proxy R image files can be generated for each set of a simulation study loaded to a simulation results database 215. A dashboard 110 can be connected to an R package/library and can be able to communicate to proxies through the proxy API. Functionalities of a proxy API can include, for example: (1) accessing a response surface for values of objective functions for a given set of input parameters (using routine queryProxy 246); (2) accessing cumulative probability function data or an S-curve for a specific objective function (using routine getScurve 245); (3) determining the simulation model name with a closest realization for a given set of parameters (using routine getModelName 248); and (4) determining simulation model names with closest realizations bracketing a given set of parameters (using routine getBracketModel 247). For example, interactions between these routines 242 and application data 243 within an application 240 are illustrated in
A workflow and interdependencies of the routines defined in a proxy API, as described in
A goal of the current API design can include providing a mechanism to efficiently probe response surface models (e.g., R image files) for uncertainty (statistical) analysis. Return values of these routines can also be used in interfaces other than a dashboard 110. An example of such implementation is shown in
An example of how a proxy API can be implemented to display an S-curve plot for each reservoir simulation study in an integrated study can include, for example, a user's selecting an objective function from a dashboard 110. A dashboard 110 can then communicate with an R interpreter 115 to get the actual objective function name used in the R image file using, for example, the following code:
Communicating with the R interpreter 115 to load an R image file and query the S-curves of a selected objective function can be done for all studies in an integrated study, for example. The returned S-curve data from the R image can then be plotted in the dashboard 110. For each S-curve, the dashboard 110 can communicate with the R interpreter 115 to query the objective function value for the most likely reservoir simulation run parameters using the following code:
Most likely reservoir simulation run parameters can be determined, for example, by a simulation engineer based on the simulation engineer's prior knowledge of a problem to which the simulation engineer needs an answer, e.g., finding the duration of a production plateau. The returned proxy value can then be highlighted on the S-curve. From the dashboard 110, a user can also change the modifiers' values, representing simulation input parameters, to get an estimated objective function value based on the R image proxy file. Upon user selection of a Query Proxy button 268, the dashboard 110 can submit a list of the modifiers' values to the R interpreter 115 to query the estimated objective function value on the S-curve using the following code:
Embodiments can still further include non-transitory computer-readable medium having one or more computer programs stored therein operable by one or more processors to enhance probing of hydrocarbon reservoir simulation models. For example, in non-transitory computer-readable medium having one or more computer programs stored therein operable by one or more processors according to an embodiment, the one or more computer programs can include a set of instructions that, when executed by the one or more processors, cause the one or more processors to perform a series of operations. The operations performed by the one or more processors can include, for example, initiating a proxy application programming interface (API) to thereby interrogate one or more of one or more different hydrocarbon reservoir simulation response surface model proxies. The one or more different hydrocarbon reservoir simulation response surface model proxies can thereby define surface model proxies, and each of the surface model proxies can be associated with one of one or more hydrocarbon reservoir simulation models. Further, the surface model proxies can have a common image format based on a conversion from a plurality of different simulation model technology formats to the common image format, for example. In addition, the proxy API can be configured to include a plurality of different preselected operations. The operations performed by the one or more processors can also include, for example, interpreting each of the one or more surface model proxies to thereby retrieve a simulation data set for each of the one or more of the surface model proxies responsive to each of the plurality of different preselected operations of the proxy API. Each simulation data set of the one or more of the surface model proxies can include one or more uncertainty characteristics associated with one or more hydrocarbon reservoirs, for example. The operations performed by the one or more processors can further include displaying—for each of the one or more of the surface model proxies—one or more results of each of the plurality of different preselected operations of the proxy API to thereby probe the associated hydrocarbon reservoir simulation models.
In some circumstances, displaying can include selectively displaying one or more uncertainty characteristics of each of the one or more of the surface model proxies by use of the proxy API. In some circumstances, the one or more uncertainty characteristics can include a proxy value responsive to a set of most likely hydrocarbon reservoir simulation run parameters. Further, the one or more uncertainty characteristics can be configured to include an S-curve related to each of the surface model proxies. Consequently, operations of the proxy API can estimate one or more probabilities of simulation outcome for one or more potential simulation scenarios yet to be run to thereby enhance probing of the one or more hydrocarbon reservoir simulation models. Each of the one or more S-curves can depict cumulative probabilities of simulation outcome data, for example. In some circumstances, each of the one or more S-curves can include a statistically most likely point and an output value of the related one of the surface model proxies for a preselected set of hydrocarbon reservoir simulation run parameters with respect to the surface model proxies. Further, one or more of the plurality of different preselected operations of the proxy API can responsively enhance one or more workflows for hydrocarbon field development plans. In addition, one or more third-party tools can implement the one or more workflows for hydrocarbon reservoir field development plans.
In some circumstances, the plurality of different preselected operations of the proxy API can include, for example, determining—responsive to a first preselected simulation objective—an output value of one or more of the surface model proxies for a first preselected set of hydrocarbon reservoir simulation run parameters with respect to the surface model proxies to thereby query the one or more of the surface model proxies. The plurality of different preselected operations of the proxy API can also include identifying—responsive to a second preselected simulation objective—one of the hydrocarbon reservoir simulation models associated with one of the surface model proxies when the one of the surface model proxies has an output value for a second preselected set of hydrocarbon reservoir simulation run parameters with respect to the surface model proxies that is closest to output values of a preselected simulation scenario. The identified hydrocarbon reservoir simulation model can thereby define a closest model, for example.
Additionally, the plurality of different preselected operations of the proxy API can include identifying—responsive to a third preselected simulation objective—two of the hydrocarbon reservoir simulation models each associated with one of the surface model proxies when: (1) one of the two of the surface model proxies has an output value for a third preselected set of hydrocarbon reservoir simulation run parameters with respect to the surface model proxies that is closest to the output value of another preselected simulated scenario among output values higher than the output value of the other preselected simulated scenario and (2) the other of the two of the surface model proxies has an output value for the third preselected set of hydrocarbon reservoir simulation run parameters that is closest to the output value of the other preselected simulated scenario among output values lower than the output value of the other preselected simulated scenario. As a result, the two hydrocarbon reservoir simulation models can thereby define close realization bracketing models. The plurality of different preselected operations of the proxy API can also include identifying names of one or more hydrocarbon reservoir simulation run parameters with respect to the surface model proxies, responsive to a fourth preselected simulation objective, to thereby return the identified one or more hydrocarbon reservoir simulation run parameters.
Further, the proxy API can relate to an environment for statistical computing that includes R programming language. The common image format can include R image format, for example. Additionally, interpreting each of the one or more of the surface model proxies can include translating one or more R image files associated with each of the one or more of the surface model proxies into a format readable by the proxy API to thereby retrieve predetermined data from the one or more of the surface model proxies responsive to user request.
Additionally, each of the plurality of different simulation model technology formats can be associated with a unique set of one or more algorithms used to create a hydrocarbon reservoir simulation response surface model proxy and with a unique technology vendor. Further, each of the one or more of the surface model proxies can be configured to simulate performance for a respective preselected period of desired time. For example, one or more of the surface model proxies can each be generated responsive to one or more hydrocarbon reservoir simulation study approaches dissimilar from a hydrocarbon reservoir simulation study approach used to generate another one or more of the surface model proxies. Further, for example, hydrocarbon reservoir simulation study approaches dissimilar from one another can include an assisted history matching study, a predictive study, an optimization study, and an uncertainty and risk analysis study, in some instances. The operations performed by the one or more processors can also include creating the one or more of the surface model proxies responsive to user input. The operations can further include, in some instances, displaying on a display—by use of the proxy API—observed reservoir characteristic values for one or more of the one or more hydrocarbon reservoirs to a user, for example.
Embodiments can fulfill a need for an effective technique for standardization of access to diverse reservoir simulation proxies, which can be used to support reservoir management dashboards for uncertainty analyses. That is, embodiments can include a standard for a reservoir simulation response surface model (proxy) interface to provide interoperability among diverse response surface models (proxies). Further, embodiments can include methods (functionalities) for development of a dashboard for reservoir management under uncertainty. Embodiments of the invention can thus advantageously enable development of a novel unified method to interface with a proxy API, which can allow for interchanging and ease of development of scientific workflows. Embodiments can also include a mechanism to couple with multiple and diverse response surfaces through a proxy API, which can provide a unified access methodology.
By capitalizing on a common application programming interface for interrogating uncertainty and risk information in proxies (response surface models), cost avoidance for an entity can in some circumstances exceed $300,000, in the form of avoided consultation and in-house development. Furthermore, an entity that implements embodiments of the invention can continue to benefit from such cost avoidance as more advanced applications and dashboards are developed. In addition, any need to maintain custom links and connectors to vendor-specific proxy implementations can be avoided. This can constitute an additional cost avoidance of $100,000 per year. Furthermore, embodiments can also allow an entity to capitalize on uncertainty and risk information to make informed business decisions, which can have significant value to the entity's efficiency and performance. For example, embodiments can allow easy access to all integrated hydrocarbon reservoir study data, decisions, and critical study results, including all associated uncertainty and risk, to a wide, multidisciplinary technical and management team. Consequently, embodiments can be particularly advantageous to integrated study teams, such as asset teams or integrated reservoir study (IRS) teams.
A proxy API can be used to interrogate reservoir simulation response surface models. By capitalizing on embodiments of the invention, an entity's operations can be optimized, and manpower and resources can be used more efficiently. Embodiments can also eliminate any potential vendor lock-in or dependence on vendor-specific implementations by eliminating the need for high-overhead, complex links that are required to integrate a dashboard with different vendor proxy (response surface models) implementations. In addition, any need to continually revise a developed dashboard whenever a vendor implementation is updated or changed can be eliminated. Furthermore, embodiments can accelerate project delivery by eliminating many possible project show-stoppers, including vendor resistance to sharing underlying implementation details required to develop custom links, and can allow all project participants to focus on their expertise.
In the various embodiments of the invention described herein, a person having ordinary skill in the art will recognize that various types of memory are readable by a computer, such as the memory described herein in reference to the various computers and servers, e.g., computer, computer server, web server, or other computers with embodiments of the present invention. Examples of computer readable media can include but are not limited to: nonvolatile, hard-coded type media, such as read only memories (ROMs), CD-ROMs, and DVD-ROMs, or erasable, electrically programmable read only memories (EEPROMs); recordable type media, such as floppy disks, hard disk drives, CD-R/RWs, DVD-RAMs, DVD-R/RWs, DVD+R/RWs, flash drives, memory sticks, and other newer types of memories; and transmission type media such as digital and analog communication links. For example, such media can include operating instructions, as well as instructions related to the systems and the method steps described above and can operate on a computer. It will be understood by those skilled in the art that such media can be at other locations instead of, or in addition to, the locations described to store computer program products, e.g., including software thereon. It will be understood by those skilled in the art that the various software modules or electronic components described above can be implemented and maintained by electronic hardware, software, or a combination of the two, and that such embodiments are contemplated by embodiments of the present invention.
In the drawings and specification, there have been disclosed embodiments of methods, systems, and non-transitory computer-readable medium having computer program stored therein of the present invention, and although specific terms are employed, the terms are used in a descriptive sense only and not for purposes of limitation. The embodiments of methods, systems, and non-transitory computer-readable medium having computer program stored therein of the present invention have been described in considerable detail with specific reference to these illustrated embodiments. It will be apparent, however, that various modifications and changes can be made within the spirit and scope of the embodiments of methods, systems, and non-transitory computer-readable medium having computer program stored therein of the present invention as described in the foregoing specification, and such modifications and changes are to be considered equivalents and part of this disclosure.