Patent Publication Number: US-2023142230-A1

Title: Systems and methods for modeling of dynamic waterflood well properties

Description:
CROSS-REFERENCE TO RELATED APPLICATIONS 
     The present application claims priority to U.S. Provisional Patent Application No. 63/276,909 filed on Nov. 8, 2021, which is incorporated by reference in its entirety herein. 
    
    
     FIELD 
     Aspects of the present disclosure relate generally to systems and methods for developing forecasts and models of oil wells and, more particularly, to predictive modeling to forecast oil and water production in complex waterflood operations (such as waterflood injection, drawdown, infill drilling, injection well, etc.) utilizing deep learning and computer vision techniques. 
     BACKGROUND 
     Production of hydrocarbons involves forming one or more wells in a subterranean formation to retrieve the hydrocarbons from beneath the surface. In some instances, multiple wells may be formed in what is known as a “field” to access one or more subsurface reservoirs. To improve the location of wells in the field, predictive models may be built and used to forecast oil and water production from the wells. Typically, forecast models for an individual well use historical data from that well. One potential technology for forecasting includes using two segmented hyperbolic-decline type curves for each reservoir area. However, the type curve methodology may have high error rates when applied on an individual well basis. One of the main sources of high error values from the forecasts using the type curve methodology is due to the interactions between nearby injectors and producers. More particularly, many fields may utilize waterflooding or water injection processes to inject water into an oil reservoir to maintain pressure in the reservoir and drive the oil towards the wells to increase well production. Type curve forecast models, however, are typically unable to address the interactions between wells and injectors such that errors of the forecast models may be high. 
     It is with these observations in mind, among others, that various aspects of the present disclosure were conceived and developed. 
     SUMMARY 
     Implementations described and claimed herein address the foregoing problems by providing systems and methods for generating a forecast model of a well field. In one implementation, an input dataset comprising dividing an input dataset comprising field data into a plurality of timeframes. Further, the divided input dataset may be restructured based on a spatial component associated with a target well of the well field. Based on the divided and restructured input dataset and utilizing a deep learning computing technique, a plurality of trained production forecast models and an optimized production forecast model from the plurality of trained production forecast models may be selected and stored. 
     Other implementations are also described and recited herein. Further, while multiple implementations are disclosed, still other implementations of the presently disclosed technology will become apparent to those skilled in the art from the following detailed description, which shows and describes illustrative implementations of the presently disclosed technology. As will be realized, the presently disclosed technology is capable of modifications in various aspects, all without departing from the spirit and scope of the presently disclosed technology. Accordingly, the drawings and detailed description are to be regarded as illustrative in nature and not limiting. 
    
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
         FIG.  1    shows an example network environment that may implement various systems and methods discussed herein. 
         FIG.  2    is a block diagram illustrating example data flow for generating a dynamic waterflood forecast model utilizing deep thinking techniques. 
         FIG.  3    illustrates example operations for generating a dynamic waterflood forecast model. 
         FIG.  4    shows an example graph illustrating temporally splitting field well data into epochs for use in training a dynamic waterflood forecast model. 
         FIG.  5    shows an example graph illustrating separating field well data spatially with reference to a target well for use in training a dynamic waterflood forecast model. 
         FIG.  6 A  is a block diagram illustrating example data flow for generating a recursive prediction of a well production using in trained dynamic waterflood forecast model. 
         FIG.  6 B  is a block diagram illustrating example data flow for generating a recursive forecast of a well production using in trained dynamic waterflood forecast model. 
         FIG.  7    is a block diagram illustrating example data flow for ranking infill and side-track drilling locations of a production field using in trained dynamic waterflood forecast model. 
         FIG.  8    shows an example block diagram of a dynamic waterflood generation system for generating a dynamic waterflood forecast model. 
         FIG.  9    shows an example computing system that may implement various systems and methods discussed herein. 
     
    
    
     DETAILED DESCRIPTION 
     Aspects of the present disclosure involve systems and methods for dynamic waterflood forecast modeling utilizing deep thinking computational techniques to reduce the processing time for generating the forecast model and improving the accuracy of resulting forecasts. In one particular implementation, a dataset of a field may be restructured into the spatio-temporal framework and data driven deep neural networks may be utilized to learn the nuances of data interactions to make more accurate forecasts for each well in the field. Further, the generated model may forecast a single time segment and build the complete forecast through recursive prediction instances. The temporal component of the restructured data may, in some instances, include all or a portion of the production history of the field divided into equally spaced time intervals (referred to herein as “epochs”). The spatial component of the restructure data may include, within each epoch and for each well, a computed or estimated spatial relationships of all existing wells. In one particular example, for each producing well that exists at a specific epoch, nearby producing and injecting wells are identified and assigned to four circles of increasing distance from the target well. Various features for each of spatially-distant circles may be calculated, including but not limited to, a number of producers, injectors, total fluid produced/injected, and average production/injection. These spatial features may be used as input to the deep learning model, presenting a representation through the training data of the impact to the target wells&#39; production from interactions between nearby wells. In general, the output targets of the deep learning model are well production parameters, such as liquid rate and oil rate of each interval as affected by nearby wells. As such, the output of the forecast model provides a higher accuracy result than previous technologies that utilize data from a single well to determine a production forecast. Other advantages will be apparent from the present disclosure. 
     To begin a detailed discussion of an example asset development system  100 , reference is made to  FIG.  1   .  FIG.  1    illustrates an example network environment  100  for implementing the various systems and methods, as described herein. As depicted in  FIG.  1   , a network  104  is used by one or more computing or data storage devices for implementing the systems and methods for generating one or more dynamic waterflood forecast models using the dynamic waterflood modeling system  102 . In one implementation, various components of the reservoir modeling system  102 , one or more user devices  106 , one or more databases  110 , and/or other network components or computing devices described herein are communicatively connected to the network  104 . Examples of the user devices  106  include a terminal, personal computer, a smart-phone, a tablet, a mobile computer, a workstation, and/or the like. 
     A server  108  may, in some instances, host the system. In one implementation, the server  108  also hosts a website or an application that users may visit to access the network environment  100 , including the dynamic waterflood modeling system  102 . The server  108  may be one single server, a plurality of servers with each such server being a physical server or a virtual machine, or a collection of both physical servers and virtual machines. In another implementation, a cloud hosts one or more components of the system. The dynamic waterflood modeling system  102 , the user devices  106 , the server  108 , and other resources connected to the network  104  may access one or more additional servers for access to one or more websites, applications, web services interfaces, etc. that are used for reservoir modeling. 
       FIG.  2    is a block diagram illustrating example data flow  200  for generating a dynamic waterflood forecast model utilizing deep thinking techniques. Through the data flow  200  of  FIG.  2   , a dynamic waterflood forecast model may be generated incorporating data from a multiple nearby well interactions resulting in more accurate forecast models. In one particular implementation, the steps outlined in the data flow  200  of  FIG.  2    may be executed by the dynamic waterflood modeling system  102  automatically or in response inputs provided through a user interface to generate an optimized dynamic waterflood model. In other instances, however, any component of the network environment  100  may execute one or more applications as described in relation to the data flow  200  of  FIG.  2   . 
     The data flow  200  may include accessing a database  202  of field data and extracting raw data  204  as an input to a deep learning system. The extracted raw data  204  may include, among other types of data, completion parameters, daily production data, daily injection data, fault polygon shapefiles, geology data (such as geology maps), petrophysics data and/or maps, wellbore trajectory data, well event data, and the like. In general, the number and types of extracted data  204  may vary such that no particular types of field data  202  is required to generate the dynamic waterflood forecast model. Rather, any datasets may be supplied as input to the model generation system  208 , although additional data may result in a more detailed dynamic waterflood forecast model provided by the dynamic waterflood modeling system  102 . 
     Portions of the data flow  200  of  FIG.  2    may utilize the extracted dataset  204  to execute one or more of the operations illustrated in the flowchart of  FIG.  3   . In particular,  FIG.  3    illustrates example operations for generating a dynamic waterflood forecast model. The operations may be performed by a computing device configured to execute any machine learning or artificial intelligent algorithm, including deep learning techniques. Such operations may be executed through control of one or more hardware components, one or more software programs, or a combination of both hardware and software components of the computing device. 
     Beginning in operation  302 , the computing device may receive any field-related dataset  204  for inclusion in modeling an extraction field of wells. As explained above, such a dataset  204  may include field-specific data (such as geology data or maps of the field), general data (such as petrophysics data), and/or production data (such as completion parameters, daily production data, daily injection data). Such data may be obtained and stored in field database  202  illustrated in  FIG.  2   . In operation  304 , the computing device may divide the extracted historical field data  204  obtained from the database  202  into defined epochs. In particular, a portion or the entirety of the production history field represented by the field data may be divided into equally spaced time intervals.  FIG.  4    shows an example graph  400  illustrating temporally splitting field well data (in this example, oil output rate of a well) into epochs for use in training a dynamic waterflood forecast model. The graph  400  includes a graph of output rate  402  along a y-axis versus time  404  along an x-axis. The oil rate  406  of the analyzed well is graphed for the indicated time interval of the x-axis based on the raw data  204  extracted from the database  202 . In addition, the computing device may divide the time interval indicated along the x-axis into defined epoch or set duration. For example, the time interval  404  of the graph  400  of  FIG.  4    is divided into epochs  408  of a defined duration, indicated by the red line illustrating the duration of each epoch. In some instances, each epoch  408  may be of the same duration such that the time interval  404  of the extracted data is divided into equal sections. In other instances, however, one or more of the epochs  408  may have a different duration than another epoch of the dataset. 
     As mentioned, the duration of the epochs  408  into which the dataset may be divided may be defined. For example, the duration of one or more of the epochs  408  may be set by the computing device as part of the dynamic waterflood modeling system  102 . In another example, a user of the modeling system  102  may, such as through a user interface described in more detail below, instruct or otherwise provide the dynamic waterflood modeling system on a duration of one or more of the epochs  408 . In one particular example, epoch intervals of one quarter of a year (e.g., three months) may be selected for the duration of the epochs  408 , although other intervals may also be selected or determined. In one instance, the duration of the epochs  408  may be based on a size of the extracted dataset  204 . For example, a longer epoch duration may be selected for a larger dataset of historical field data while a shorter epoch duration may be selected for a smaller dataset, to prevent overloading the processing of the dynamic waterflood modeling system  102 . In general, increasing or decreasing the time interval or duration of the epochs  408  may introduce trade-offs between overly smoothing out meaningful events in the former or introducing too much process noise in the latter. 
     In addition to dividing the field dataset into defined epochs, the computing device may also, in operation  306 , restructure the dataset in a spatial context to one or more of the wells of the field. In particular, within each epoch  408 , spatial relationships of the existing wells may be computed or estimated.  FIG.  5    shows an example graph  500  illustrating separating field well data spatially with reference to a target well  502  for use in training a dynamic waterflood forecast model. In one instance, the computing system of the dynamic waterflood modeling system  102  may, for each producing well in the field associated with the field data that produces at a specific epoch  408 , nearby producing and injecting wells maybe identified and assigned to circles of increasing distance from the target well. The graph  500  illustrated in  FIG.  5    shows an example spatial restructuring of the field data in relation to a target well  502  producing during a noted epoch  408 . Data associated with other producer wells  514  (indicated in the graph  500  as circles) and injector wells  512  (indicated in the graph as triangles) is obtained from the dataset for the noted epoch  408 . Further, the data for the producing wells  514  and injector wells  512  may be associated or collected based on a spatial relationship to the target well  502 . In the illustrated example, concentric circles centered around the target well  502  may be determined at various distances from the target well, such as a first ring  504  at 200 meters, a second ring  506  at 400 meters, a third ring  508  at 600 meters, a fourth ring  510  at 800 meters, and so on. Data from the injector wells  512  and/or producer wells  514  may be collected based on location within or near one of the distance rings  504 - 510 . As should be appreciated, the distance of the rings  504 - 510  from the target well  502  may be any distance and may, in some instances, be based on an overall size of the field from which the data is obtained. Further, the distance of the rings  504 - 510  to the target well  502  may be received from a user via a user interface, as described in more detail below. In other instances, the distances of the rings  504 - 510  to the target well  502  may be adjusted and optimized by the computing device during dynamic waterflood forecast model generation. 
     Various features for each of these distance rings  504 - 510  from the target well  502  may be calculated or otherwise determined from the extracted raw data  204 , including but not limited to the number of producer wells  514  within the corresponding distance ring, the number of injector wells  512 , a total fluid produced/injected within the corresponding distance ring, an average production/injection within the corresponding distance ring, drawdown/wellhead pressures, and age of the wells in terms of cumulative producing/injecting hours, and the like. As mentioned above, the data may be spatially restructured for each active or producing well in a field for a particular epoch  408 . Thus, the computing device may restructure the dataset into a spatio-temporal framework, represented by the data manipulation block  206  of the data flow  200  of  FIG.  2   . The resulting time series framework may also be merged with other key information such as well completion, drilling, and geology data to create a final dataset of static and dynamic features for the field. The manipulated or restructured dataset may be used as input to a deep learning model generating system, presenting a representation through the training data of the impact to the target wells&#39; production from interactions between nearby wells within the field. 
     Returning to the method  300  of  FIG.  3    and in operation  308 , the computing device of the dynamic waterflood modeling system  102  may iteratively train multiple models, based on the spatio-temporal framework, to generate dynamic waterflood forecast model. In particular and using the system  200  of  FIG.  2    as an example, the spatio-temporal data of the field may be provided to a model generation  208  and/or model optimization  210  system. The model generation system  208  may use deep learning technology, such as a multi-layer perceptron architecture with embedded encoder blocks, to generate thousands of the models using the spatio-temporal data. In general, the encoder blocks improve the models performance by simplifying the data creating a lower level representation of the data. In addition, the dynamic waterflood modeling system  102  may use the model optimization system  210  to train the models to provide more accurate forecasts. The model optimization  210  may also use the spatio-temporal data to refine and improve the generated models. This iterative process of model generation and optimization may be repeated thousands of times to enable models with different hyper-parameters (aspects unique to the architecture of the model) to be trained and tested. During the training phase, custom loss functions may be used to coerce the model to make predictions within allowable ranges through greater penalty if a constraint is violated. The resulting best model according to standard regression metrics is then chosen after rigorous tests and diagnostic tests and output as an optimized forecast model  212 . In some instances, multiple optimized models may be generated through the data flow  200 . 
     In one implementation, model optimization  210  may be applied to each generated model from the model generation system  208  to determine an accuracy of the model to the input datasets  206 . Through a determined error obtained from the application of the various models to the model optimization  210 , the dynamic waterflood modeling system  102  may determine how accurate or how closely the generated model corresponds to the input dataset  206 . The dynamic waterflood modeling system  102  may then alter the generated model based on the determined error to address and attempt to eliminate the error. This process of model generation and optimization may be repeated until the determined error of the model falls below a threshold value. In this manner, the dynamic waterflood modeling system  102  may utilize techniques to generate or alter generated models that are trained, through the above-described iterative process, to accurately represent the dataset  206 . 
     In some instances, the dynamic waterflood modeling system  102  may communicate with a user interface through which a user may interact the generated forecast models. Thus, in operation  310 , one or more of the generated and optimized forecast models may be utilized, perhaps through the user interface, to make a prediction of an aspect of the well field that accounts for data obtained from all or a portion of the wells of the field. Further, as described in more detail below with reference to  FIG.  8   , a user of the interface may provide inputs for use in dynamic waterflood modeling, including definitions of epoch duration, distances from a target well for distance rings, optimization thresholds, and the like. 
     The generated forecasting model may be utilized to provide two types (among others) of prediction/forecasting of the field. In one example, referred to herein as “recursive prediction”, a prediction of a production of the field is made against the history of the production wells of the field. The recursive prediction may, in particular, be used as a benchmarking feature for the field, such as measuring performance of the deep learning model against other models e.g. type curves, and for generating results for ‘what-if’ scenarios (observing the change in model output with respect to different set of input parameters), although other uses of the recursive prediction function are contemplated. In another example, a “recursive forecast” technique may be used to forecast the future performance of the wells of the field. In one instance, the recursive forecast technique includes input of assumed injection and production profiles strategies for all wells in the field. The Recursive Forecast module can help operators with evaluating different well management strategies. Using the presumed profiles, the waterflood model can forecast both oil and water production for the wells (full field forecast). In general, the recursive prediction technique and the recursive forecast technique use a recursion methodology in which the prediction of the prior time interval may be fed to the subsequent interval as input, as illustrated in  FIGS.  6 A and  6 B . 
       FIG.  6 A  is a block diagram illustrating example data flow  600  for generating a recursive prediction of a well production using a trained dynamic waterflood forecast model. As mentioned, the recursive prediction technique may predict or estimate oil rate forecast (or other production aspect of the field) using actual production and injection data as input. More particularly, a prediction may be made for each epoch  608  using actual ring feature data  602 , actual injection data  604 , and actual drawdown data  606 , among other possible data input. The recursive prediction result  610  for a particular epoch  608  may then be provided to the next epoch of data  612  as an input. The recursive prediction result  610  may include a predicted oil production, a predicted liquid production, a prediction water production, and the like. In general, the recursive prediction technique may be utilized by the dynamic waterflood forecasting system  102  or a user of the system to verify well production results, optimize well production, and simulate “what-if” scenarios of one or more wells of the field. 
     Similarly,  FIG.  6 B  is a block diagram illustrating example data flow  620  for generating a recursive forecast of a well production using a trained dynamic waterflood forecast model. As mentioned, the recursive prediction technique may predict or estimate oil rate forecasts (or other production aspect of the field) of some or all producing wells of the field into the future for over any number of epochs  628 . More particularly, a prediction may be made for each epoch  628  using calculated ring feature data  622 , assumed injection data  624 , and assumed drawdown data  626 , among other possible data input. Also similar to above, the recursive prediction result  630  for a particular epoch  628  may then be provided to the next epoch of data  632  as an input. The recursive prediction result  630  may include a predicted oil production, a predicted liquid production, a prediction water production, and the like. In general, the recursive prediction technique may be utilized by the dynamic waterflood forecasting system  102  or a user of the system for ranking infill locations (described in more detail below), sidetrack timing, and/or field/waterflood optimization. 
     In addition to recursive prediction and recursive forecast techniques, the generated model may also be used to predict one or more locations to drill new producing wellbores (aka infill drilling wells) and future side-tracks. In particular,  FIG.  7    is a block diagram illustrating example data flow  700  for ranking infill and side-track drilling locations of a production field using in trained dynamic waterflood forecast model. In one instance, the dynamic waterflood forecast model may predict oil/water production for each grid point in a given field associated with the field data. In particular, given a set of gridded information containing geology data and assumed completion/drilling data, the dynamic waterflood forecast model predicts the production of each grid point, hence ranking all locations of the field to select best areas in the field to drill, and discover new prosperous areas. 
     As shown in the data flow  700  of  FIG.  7   , the dynamic waterflood forecast model  102  may incorporate various types of input data  702 , including but not limited to, controllable data such as static data, epoch start data, completion code data, completion data, trajectory data, and/or layer code data. Known data may also be input, such as platform code data, area code data, and/or well event data. The input data  702  may also include calculated data, such calculated ring data, and geology-based data, including fault grade data. This geology, completion, fluid, well operating conditions, and/or past and current performance data may be processed by the dynamic waterflood forecast model  102  to make prediction in undrilled locations. The output  704  of the model  102  may provide a gridded map of predictions from which potential infill and sidetrack locations across the entire field may be obtained within a couple of minutes of processing time. 
       FIG.  8    shows an example block diagram of a dynamic waterflood model generation system  800  for one or more dynamic waterflood forecast models for a production field using spatio-temporal manipulated data. In general, the system  800  may include a dynamic waterflood model generation tool  806 . In one implementation, the dynamic waterflood model generation tool  808  may be a part of the dynamic waterflood modeling system  102  of  FIG.  1   . As shown in  FIG.  8   , the dynamic waterflood model generation tool  806  may be in communication with a computing device  822  providing a user interface  824 . As explained in more detail below, the dynamic waterflood model generation tool  806  may be accessible to various users to generate a dynamic waterflood model based on field data  202 . In some instances, access to the dynamic waterflood model generation tool  806  may occur through the user interface  824  executed on the computing device  822 . 
     As explained above, the dynamic waterflood model generation tool  806  may generate an optimized dynamic waterflood model  212  based on transformed or manipulated field data  202 . As such, the dynamic waterflood model generation tool  806  may include a waterflood model generation application  812  executed to perform one or more of the operations described herein. The waterflood model generation application  812  may be stored in a computer readable media  810  (e.g., memory) and executed on a processing system  808  of the waterflood model generation tool  806  or other type of computing system, such as that described below. For example, the waterflood model generation application  812  may include instructions that may be executed in an operating system environment, such as a Microsoft Windows™ operating system, a Linux operating system, or a UNIX operating system environment. The computer readable medium  810  includes volatile media, nonvolatile media, removable media, non-removable media, and/or another available medium. By way of example and not limitation, non-transitory computer readable medium  810  comprises computer storage media, such as non-transient storage memory, volatile media, nonvolatile media, removable media, and/or non-removable media implemented in a method or technology for storage of information, such as computer readable instructions, data structures, program modules, or other data. 
     The waterflood model generation application  812  may also utilize a data source  820  of the computer readable media  810  for storage of data and information associated with the waterflood model generation tool  806 . For example, the waterflood model generation application  812  may store information associated with iterations of the generated waterflood models, temporal-adjusted field data, spatially-adjusted field data, prediction or forecast results, and the like. As described in more detail below, various generated models may be stored and used via the user interface  824  to simulate or otherwise determine field performance or conditions such that trained or optimized waterflood models for various fields may be stored in the data source  820 . 
     The waterflood model generation application  812  may include several components to perform one or more of the operations described herein. For example, the waterflood model generation application  812  may include a training data manager  814  to manage and/or manipulate the extracted field data  204  stored in the database  202 . For example, the training data manager  814  may divide the extracted data into epochs as explained above. The training data manager  814  may also restructure the extracted data  204  spatially in relation to a target well of the analyzed field from which the data is obtained. Other manipulation of the extracted data  204  may also be conducted by the training data manager  814  to generate the manipulated data  206  for use in training the dynamic waterflood model. 
     The waterflood model generation application  812  may also include a deep learning trainer  816  to generate and/or train one or more waterflood models based on an input dataset  206  received from the training data manager  814 . As explained above, the deep learning trainer  816  may include any machine learning or artificial intelligence techniques to generate a waterflood model from the input dataset  206 . In one particular implementation, the deep learning trainer  816  may employ a neural network to execute an artificial intelligence algorithm on the dataset  206  to generate one or more waterflood models from the input dataset. 
     A recursive predictor  818  may also be included and executed by the waterflood model generation application  812 . In general, the recursive predictor  818  may generate a recursive prediction of a well or field production using a trained dynamic waterflood forecast model. The recursive prediction technique may predict or estimate oil rate forecast (or other production aspect of the field) using actual production and injection data as input. As mentioned, the recursive prediction of the predictor  818  may be made for each epoch of the dataset  206  using actual data and may be utilized to verify well production results, optimize well production, and simulate “what-if” scenarios of one or more wells of the field. The waterflood model generation application  812  may also include a recursive forecastor  826 . In general, the recursive predictor  818  may generate a recursive forecast of a well or field production using a trained dynamic waterflood forecast model. The recursive prediction technique may predict or estimate oil rate forecast (or other production aspect of the field) using assumed production and injection data as input. As mentioned, the recursive forecast of the forecastor  8826  may be made for each epoch of the dataset  206  and may be utilized for ranking infill locations (described in more detail below), sidetrack timing, and/or field/waterflood optimization. 
     It should be appreciated that the components described herein are provided only as examples, and that the application  812  may have different components, additional components, or fewer components than those described herein. For example, one or more components as described in  FIG.  4    may be combined into a single component. As another example, certain components described herein may be encoded on, and executed on other computing systems. Further, more or fewer of the components discussed above with relation to the waterflood model generation tool  806  may be included with the tool, including additional components or modules included to perform the operations of the waterflood modeling system  102  discussed herein. 
     Several advantages over previous ways to generating a waterflood model may be gained through the methods and systems described herein. For example, the waterflood modeling system  102  may facilitate higher prediction accuracy on a well by well basis over previous modeling techniques. The modeling system  102  may also provide the ability to benchmark different injection/production strategies and provide guidelines for waterflood management, assist the field operators to find best locations to drill new wells and potentially increase field recovery (Infill drilling location identification), and provide the ability to prediction quantify uncertainty and provide bounded estimates on predictions. Additional advantages include providing guidelines on injector placement strategy, a flexible framework that can be easily applied to other fields undergoing waterflood process, fast results as computation times are in seconds for individual wells to minutes for full field forecasts, and ease of use as the waterflood model may be embedded into a user interface, enabling non-machine learning astute users the ability to make predictions and forecasts. The modeling system  102  may also produce production forecasts relatively free of interpretation bias and is entirely data driven, aid in assess new well/sidetrack placement (P/I) and investigating well down-spacing/Pattern Changes, optimizing Producer-to-Injector conversions, predict ‘Producer End-of-Life’, optimize Injection Rates and zonal Injection Control (Regulators), and optimize Zonal Production/Injection Allocation, among other benefits. 
     Referring to  FIG.  9   , a detailed description of an example computing system  900  having one or more computing units that may implement various systems and methods discussed herein is provided. The computing system  900  may be applicable to the dynamic waterflood modeling system  102  of  FIG.  1   , the system  100 , and other computing or network devices. It will be appreciated that specific implementations of these devices may be of differing possible specific computing architectures not all of which are specifically discussed herein but will be understood by those of ordinary skill in the art. 
     The computer system  900  may be a computing system is capable of executing a computer program product to execute a computer process. Data and program files may be input to the computer system  900 , which reads the files and executes the programs therein. Some of the elements of the computer system  900  are shown in  FIG.  9   , including one or more hardware processors  902 , one or more data storage devices  904 , one or more memory devices  908 , and/or one or more ports  908 - 910 . Additionally, other elements that will be recognized by those skilled in the art may be included in the computing system  900  but are not explicitly depicted in  FIG.  9    or discussed further herein. Various elements of the computer system  900  may communicate with one another by way of one or more communication buses, point-to-point communication paths, or other communication means not explicitly depicted in  FIG.  9   . 
     The processor  902  may include, for example, a central processing unit (CPU), a microprocessor, a microcontroller, a digital signal processor (DSP), and/or one or more internal levels of cache. There may be one or more processors  902 , such that the processor  902  comprises a single central-processing unit, or a plurality of processing units capable of executing instructions and performing operations in parallel with each other, commonly referred to as a parallel processing environment. 
     The computer system  900  may be a conventional computer, a distributed computer, or any other type of computer, such as one or more external computers made available via a cloud computing architecture. The presently described technology is optionally implemented in software stored on the data stored device(s)  904 , stored on the memory device(s)  906 , and/or communicated via one or more of the ports  908 - 910 , thereby transforming the computer system  900  in  FIG.  9    to a special purpose machine for implementing the operations described herein. Examples of the computer system  900  include personal computers, terminals, workstations, mobile phones, tablets, laptops, personal computers, multimedia consoles, gaming consoles, set top boxes, and the like. 
     The one or more data storage devices  904  may include any non-volatile data storage device capable of storing data generated or employed within the computing system  900 , such as computer executable instructions for performing a computer process, which may include instructions of both application programs and an operating system (OS) that manages the various components of the computing system  900 . The data storage devices  904  may include, without limitation, magnetic disk drives, optical disk drives, solid state drives (SSDs), flash drives, and the like. The data storage devices  904  may include removable data storage media, non-removable data storage media, and/or external storage devices made available via a wired or wireless network architecture with such computer program products, including one or more database management products, web server products, application server products, and/or other additional software components. Examples of removable data storage media include Compact Disc Read-Only Memory (CD-ROM), Digital Versatile Disc Read-Only Memory (DVD-ROM), magneto-optical disks, flash drives, and the like. Examples of non-removable data storage media include internal magnetic hard disks, SSDs, and the like. The one or more memory devices  906  may include volatile memory (e.g., dynamic random access memory (DRAM), static random access memory (SRAM), etc.) and/or non-volatile memory (e.g., read-only memory (ROM), flash memory, etc.). 
     Computer program products containing mechanisms to effectuate the systems and methods in accordance with the presently described technology may reside in the data storage devices  904  and/or the memory devices  906 , which may be referred to as machine-readable media. It will be appreciated that machine-readable media may include any tangible non-transitory medium that is capable of storing or encoding instructions to perform any one or more of the operations of the present disclosure for execution by a machine or that is capable of storing or encoding data structures and/or modules utilized by or associated with such instructions. Machine-readable media may include a single medium or multiple media (e.g., a centralized or distributed database, and/or associated caches and servers) that store the one or more executable instructions or data structures. 
     In some implementations, the computer system  900  includes one or more ports, such as an input/output (I/O) port  908  and a communication port  910 , for communicating with other computing, network, or reservoir development devices. It will be appreciated that the ports  908 - 910  may be combined or separate and that more or fewer ports may be included in the computer system  900 . 
     The I/O port  908  may be connected to an I/O device, or other device, by which information is input to or output from the computing system  900 . Such I/O devices may include, without limitation, one or more input devices, output devices, and/or environment transducer devices. 
     In one implementation, the input devices convert a human-generated signal, such as, human voice, physical movement, physical touch or pressure, and/or the like, into electrical signals as input data into the computing system  900  via the I/O port  908 . Similarly, the output devices may convert electrical signals received from computing system  900  via the I/O port  908  into signals that may be sensed as output by a human, such as sound, light, and/or touch. The input device may be an alphanumeric input device, including alphanumeric and other keys for communicating information and/or command selections to the processor  902  via the I/O port  908 . The input device may be another type of user input device including, but not limited to: direction and selection control devices, such as a mouse, a trackball, cursor direction keys, a joystick, and/or a wheel; one or more sensors, such as a camera, a microphone, a positional sensor, an orientation sensor, a gravitational sensor, an inertial sensor, and/or an accelerometer; and/or a touch-sensitive display screen (“touchscreen”). The output devices may include, without limitation, a display, a touchscreen, a speaker, a tactile and/or haptic output device, and/or the like. In some implementations, the input device and the output device may be the same device, for example, in the case of a touchscreen. 
     The environment transducer devices convert one form of energy or signal into another for input into or output from the computing system  900  via the I/O port  908 . For example, an electrical signal generated within the computing system  900  may be converted to another type of signal, and/or vice-versa. In one implementation, the environment transducer devices sense characteristics or aspects of an environment local to or remote from the computing device  900 , such as, light, sound, temperature, pressure, magnetic field, electric field, chemical properties, physical movement, orientation, acceleration, gravity, and/or the like. Further, the environment transducer devices may generate signals to impose some effect on the environment either local to or remote from the example computing device  900 , such as, physical movement of some object (e.g., a mechanical actuator), heating or cooling of a substance, adding a chemical substance, and/or the like. 
     In one implementation, a communication port  910  is connected to a network by way of which the computer system  900  may receive network data useful in executing the methods and systems set out herein as well as transmitting information and network configuration changes determined thereby. Stated differently, the communication port  910  connects the computer system  900  to one or more communication interface devices configured to transmit and/or receive information between the computing system  900  and other devices by way of one or more wired or wireless communication networks or connections. Examples of such networks or connections include, without limitation, Universal Serial Bus (USB), Ethernet, Wi-Fi, Bluetooth®, Near Field Communication (NFC), Long-Term Evolution (LTE), and so on. One or more such communication interface devices may be utilized via the communication port  910  to communicate one or more other machines, either directly over a point-to-point communication path, over a wide area network (WAN) (e.g., the Internet), over a local area network (LAN), over a cellular (e.g., third generation (3G) or fourth generation (4G) or fifth generation (5G) network), or over another communication means. Further, the communication port  910  may communicate with an antenna or other link for electromagnetic signal transmission and/or reception. 
     In an example implementation, waterflood model data, and software and other modules and services may be embodied by instructions stored on the data storage devices  904  and/or the memory devices  906  and executed by the processor  902 . The computer system  900  may be integrated with or otherwise form part of the dynamic waterflood modeling system  102 . 
     The system set forth in  FIG.  9    is but one possible example of a computer system that may employ or be configured in accordance with aspects of the present disclosure. It will be appreciated that other non-transitory tangible computer-readable storage media storing computer-executable instructions for implementing the presently disclosed technology on a computing system may be utilized. 
     In the present disclosure, the methods disclosed may be implemented as sets of instructions or software readable by a device. Further, it is understood that the specific order or hierarchy of steps in the methods disclosed are instances of example approaches. Based upon design preferences, it is understood that the specific order or hierarchy of steps in the method can be rearranged while remaining within the disclosed subject matter. The accompanying method claims present elements of the various steps in a sample order, and are not necessarily meant to be limited to the specific order or hierarchy presented. 
     The described disclosure may be provided as a computer program product, or software, that may include a non-transitory machine-readable medium having stored thereon instructions, which may be used to program a computer system (or other electronic devices) to perform a process according to the present disclosure. A machine-readable medium includes any mechanism for storing information in a form (e.g., software, processing application) readable by a machine (e.g., a computer). The machine-readable medium may include, but is not limited to, magnetic storage medium, optical storage medium; magneto-optical storage medium, read only memory (ROM); random access memory (RAM); erasable programmable memory (e.g., EPROM and EEPROM); flash memory; or other types of medium suitable for storing electronic instructions. 
     While the present disclosure has been described with reference to various implementations, it will be understood that these implementations are illustrative and that the scope of the present disclosure is not limited to them. Many variations, modifications, additions, and improvements are possible. More generally, embodiments in accordance with the present disclosure have been described in the context of particular implementations. Functionality may be separated or combined in blocks differently in various embodiments of the disclosure or described with different terminology. These and other variations, modifications, additions, and improvements may fall within the scope of the disclosure as defined in the claims that follow.