Conventional model building and data interpretation methods may generally employ geostatistical methods (e.g., geological object model building tools) to generate reservoir property distributions in 3D. These properties include subsurface geologic structures, sedimentary facies, rock types, porosity, permeability, water saturation, etc. Commonly used geostatistical method call for spatial linear interpolation between well locations by a tool called “variogram”, which is two-point statistics and measures variability of reservoir properties along different directions. The major limitation in this two-point or variogram based modeling is the difficulty in generating realistic geology models since most of subsurface geologic features are curvilinear and are way beyond linear patterns described by two-point statistics. Reproduction of realistic geology in subsurface models may be critical for reservoir prediction and management.
A newly emerged geostatistics method named “Multipoint Statistics” (MPS) has gained more popularity because of its capability in the creation of geology realism and honoring subsurface data in the resulting models. MPS starts with a training image, which is a conceptual yet quantitate geological model, and then captures complex patterns from the training image and anchors them to reservoir measurements. However, there are challenges to generate satisfactory patterns in the models that resemble the training image. For example, a fluvial training image that contains a highly connected meandering channel may end up with objects with broken pieces in the final MPS models. This is generally caused by the difficulty in MPS simulation to fully capture the shape of complex geological objects. The loss of connectivity in the final MPS models can cause erroneous reservoir prediction and misplaced well locations in enhancing production when drilling new wells. Another limitation in MPS modeling is its inaccurate representation and artificially narrowed uncertainty evaluation through a series of MPS simulation results (realizations) because it generates MPS models by a single training image. However, the most important uncertainty arises from the different geological scenarios or training images. Even though it is recommended to use multiple training images in MPS modeling, it is still not a common practice due to expensive CPU cost in MPS modeling.
MPS modeling is a pixel-based approach and has advantages in data conditioning, but may lose shape reproduction. In contrast, another type of modeling approach, called object-based modeling (OBM), has the advantage of generating more realistic geobodies by directly building the geological objects (e.g., fluvial systems) with specified distribution of geometric parameters of channels such as width, length, amplitude, sinuosity, and thickness. It does not require pixilation of the studied reservoirs. However, the conditioning to well observation, particularly for dense well locations, as well as other types of data measurements and constraints such as seismic data, becomes very difficult since object-modeling process may not converge and becomes extremely slow due to the use of MCMC (Markov Chain Monto Carlo).
In some implementations and as will be discussed in greater detail below, object-based modeling can be embedded into neural networks as a tool to generate various geological templates (e.g., training data or training images) to drive the modeling process to build geologically realistic models and honor various subsurface constraints by generating many realizations than contain patterns that ensemble the templates in very efficient manner.
For example, seismic surveys and/or well logs may yield important insights about the geology, geomechanics, and petrophysics of the subsurface. An accurate coupled geologic interpretation of both seismic and well log measurements may improve the accuracy of predictions of the geology at new locations where wells have not yet been drilled. Such a workflow increases the value of measurements and reduces the number of wells needed to adequately delineate the subsurface. Currently, this task is the responsibility of expert geoscientists using sophisticated software tools that have limitations such as those alluded to above.
In some embodiments, a method (e.g., a computer-implemented method) is executed on a computing device and may include but is not limited to defining one or more injector completions and one or more producer completions in one or more reservoir models. One or more edges between the one or more injector completions and the one or more producer completions in the one or more reservoir models may be defined. The one or more edges between the one or more injector completions and the one or more producer completions may define a graph network representative of the one or more reservoir models. The one or more reservoir models may be simulated along the one or more edges between the one or more injector completions and the one or more producer completions.
One or more of the following example features may be included. One or more injector-producer pairs may be defined based upon, at least in part, spatial proximity between the one or more injector completions and the one or more producer completions. One or more directed edges may be defined between the one or more injector completions and the one or more producer completions in the one or more reservoir models based upon, at least in part, the one or more injector-producer pairs. Total oil production for the one or more reservoir models may be determined based upon, at least in part, determining oil production for each directed edge that terminates at the one or more producer completions in the one or more reservoir models. Simulating the one or more reservoir models along the one or more edges between the one or more injector completions and the one or more producer completions may include receiving one or more injector rates associated with the one or more injector completions and determining one or more of oil production rates and water production rates for the one or more producer completions based upon, at least in part, simulating the one or more injector rates associated with the one or more injector completions. Simulating the one or more reservoir models along the one or more edges between the one or more injector completions and the one or more producer completions may include receiving one or more of oil production rates and water production rates associated with the one or more producer completions and determining one or more water injection rates for the one or more injector completions based upon, at least in part, simulating one or more of the oil production rates and the water production rates associated with the one or more producer completions. A plurality of edges between a plurality of injector completions and a plurality of producer completions may be aggregated to define a three-dimensional graph network representative of the reservoir model.
In another example implementation, a computing system may include one or more processors and one or more memories, wherein the computing system is configured to perform operations that may include but are not limited to defining one or more injector completions and one or more producer completions in one or more reservoir models. One or more edges between the one or more injector completions and the one or more producer completions in the one or more reservoir models may be defined. The one or more edges between the one or more injector completions and the one or more producer completions may define a graph network representative of the one or more reservoir models. The one or more reservoir models may be simulated along the one or more edges between the one or more injector completions and the one or more producer completions.
One or more of the following example features may be included. One or more injector-producer pairs may be defined based upon, at least in part, spatial proximity between the one or more injector completions and the one or more producer completions. One or more directed edges may be defined between the one or more injector completions and the one or more producer completions in the one or more reservoir models based upon, at least in part, the one or more injector-producer pairs. Total oil production for the one or more reservoir models may be determined based upon, at least in part, determining oil production for each directed edge that terminates at the one or more producer completions in the one or more reservoir models. Simulating the one or more reservoir models along the one or more edges between the one or more injector completions and the one or more producer completions may include receiving one or more injector rates associated with the one or more injector completions and determining one or more of oil production rates and water production rates for the one or more producer completions based upon, at least in part, simulating the one or more injector rates associated with the one or more injector completions. Simulating the one or more reservoir models along the one or more edges between the one or more injector completions and the one or more producer completions may include receiving one or more of oil production rates and water production rates associated with the one or more producer completions and determining one or more water injection rates for the one or more injector completions based upon, at least in part, simulating one or more of the oil production rates and the water production rates associated with the one or more producer completions. A plurality of edges between a plurality of injector completions and a plurality of producer completions may be aggregated to define a three-dimensional graph network representative of the reservoir model.
In yet another example implementation, a computer program product may include a non-transitory computer readable storage medium having a plurality of instructions stored thereon, which, when executed by a processor, cause the processor to perform operations including, but not limited to, defining one or more injector completions and one or more producer completions in one or more reservoir models. One or more edges between the one or more injector completions and the one or more producer completions in the one or more reservoir models may be defined. The one or more edges between the one or more injector completions and the one or more producer completions may define a graph network representative of the one or more reservoir models. The one or more reservoir models may be simulated along the one or more edges between the one or more injector completions and the one or more producer completions.
One or more of the following example features may be included. One or more injector-producer pairs may be defined based upon, at least in part, spatial proximity between the one or more injector completions and the one or more producer completions. One or more directed edges may be defined between the one or more injector completions and the one or more producer completions in the one or more reservoir models based upon, at least in part, the one or more injector-producer pairs. Total oil production for the one or more reservoir models may be determined based upon, at least in part, determining oil production for each directed edge that terminates at the one or more producer completions in the one or more reservoir models. Simulating the one or more reservoir models along the one or more edges between the one or more injector completions and the one or more producer completions may include receiving one or more injector rates associated with the one or more injector completions and determining one or more of oil production rates and water production rates for the one or more producer completions based upon, at least in part, simulating the one or more injector rates associated with the one or more injector completions. Simulating the one or more reservoir models along the one or more edges between the one or more injector completions and the one or more producer completions may include receiving one or more of oil production rates and water production rates associated with the one or more producer completions and determining one or more water injection rates for the one or more injector completions based upon, at least in part, simulating one or more of the oil production rates and the water production rates associated with the one or more producer completions. A plurality of edges between a plurality of injector completions and a plurality of producer completions may be aggregated to define a three-dimensional graph network representative of the reservoir model.
This summary is provided to introduce a selection of concepts that are further described below in the detailed description. This summary is not intended to identify essential features of the claimed subject matter, nor is it intended to be used as an aid in limiting the scope of the claimed subject matter.
Embodiments of the present disclosure are described with reference to the following figures.
Like reference symbols in the various drawings may indicate like elements.
The discussion below is directed to certain implementations and/or embodiments. It is to be understood that the discussion below is only for the purpose of enabling a person with ordinary skill in the art to make and use any subject matter defined now or later by the patent “claims” found in any issued patent herein.
It is specifically intended that the claimed combinations of features not be limited to the implementations and illustrations contained herein, but include modified forms of those implementations including portions of the implementations and combinations of elements of different implementations as come within the scope of the following claims. It should be appreciated that in the development of any such actual implementation, as in any engineering or design project, numerous implementation-specific decisions must be made to achieve the developers' specific goals, such as compliance with system-related and business related constraints, which may vary from one implementation to another. Moreover, it should be appreciated that such a development effort might be complex and time consuming, but would nevertheless be a routine undertaking of design, fabrication, and manufacture for those of ordinary skill having the benefit of this disclosure. Nothing in this application is considered critical or essential to the claimed invention unless explicitly indicated as being “critical” or “essential.”
It will also be understood that, although the terms first, second, etc. may be used herein to describe various elements, these elements should not be limited by these terms. These terms are only used to distinguish one element from another. For example, a first object or step could be termed a second object or step, and, similarly, a second object or step could be termed a first object or step, without departing from the scope of the invention. The first object or step, and the second object or step, are both objects or steps, respectively, but they are not to be considered a same object or step.
Moreover, as disclosed herein, the term “storage medium” may represent one or more devices for storing data, including read only memory (ROM), random access memory (RAM), magnetic RAM, core memory, magnetic disk storage mediums, optical storage mediums, flash memory devices and/or other machine readable mediums for storing information. The term “computer-readable medium” includes, but is not limited to portable or fixed storage devices, optical storage devices, wireless channels and various other mediums capable of storing, containing or carrying instruction(s) and/or data.
Furthermore, embodiments may be implemented by hardware, software, firmware, middleware, microcode, hardware description languages, or any combination thereof. When implemented in software, firmware, middleware or microcode, the program code or code segments to perform the necessary tasks may be stored in a machine readable medium such as storage medium. A processor(s) may perform the necessary tasks. A code segment may represent a procedure, a function, a subprogram, a program, a routine, a subroutine, a module, a software package, a class, or any combination of instructions, data structures, or program statements. A code segment may be coupled to another code segment or a hardware circuit by passing and/or receiving information, data, arguments, parameters, or memory contents. Information, arguments, parameters, data, etc. may be passed, forwarded, or transmitted via any suitable means including memory sharing, message passing, token passing, network transmission, etc. It is to be understood that the following disclosure provides many different embodiments, or examples, for implementing different features of various embodiments. Specific examples of components and arrangements are described below to simplify the present disclosure. These are, of course, merely examples and are not intended to be limiting. In addition, the present disclosure may repeat reference numerals and/or letters in the various examples. This repetition is for the purpose of simplicity and clarity and does not in itself dictate a relationship between the various embodiments and/or configurations discussed. Moreover, the formation of a first feature over or on a second feature in the description that follows may include embodiments in which the first and second features are formed in direct contact, and may also include embodiments in which additional features may be formed interposing the first and second features, such that the first and second features may not be in direct contact.
Referring to
For example, neural network driven reservoir modeling process 10 may be implemented as a purely server-side process via neural network driven reservoir modeling process 10s. Alternatively, neural network driven reservoir modeling process 10 may be implemented as a purely client-side process via one or more of client-side application 10c1, client-side application 10c2, client-side application 10c3, and client-side application 10c4. Alternatively still, neural network driven reservoir modeling process 10 may be implemented as a server-side/client-side process via server-side neural network driven reservoir modeling process 10s in combination with one or more of client-side application 10c1, client-side application 10c2, client-side application 10c3, client-side application 10c4, and client-side application 10c5. In such an example, at least a portion of the functionality of neural network driven reservoir modeling process 10 may be performed by neural network driven reservoir modeling process 10s and at least a portion of the functionality of neural network driven reservoir modeling process 10 may be performed by one or more of client-side application 10c1, 10c2, 10c3, 10c4, and 10c5.
Accordingly, neural network driven reservoir modeling process 10 as used in this disclosure may include any combination of neural network driven reservoir modeling process 10s, client-side application 10c1, client-side application 10c2, client-side application 10c3, client-side application 10c4, and client-side application 10c5.
Neural network driven reservoir modeling process 10s may be a server application and may reside on and may be executed by computing device 12, which may be connected to network 14 (e.g., the Internet or a local area network). Examples of computing device 12 may include, but are not limited to: a personal computer, a server computer, a series of server computers, a mini computer, a mainframe computer, or a dedicated network device.
The instruction sets and subroutines of neural network driven reservoir modeling process 10s, which may be stored on storage device 16 coupled to computing device 12, may be executed by one or more processors (not shown) and one or more memory architectures (not shown) included within computing device 12. Examples of storage device 16 may include but are not limited to: a hard disk drive; a tape drive; an optical drive; a RAID device; an NAS device, a Storage Area Network, a random access memory (RAM); a read-only memory (ROM); and all forms of flash memory storage devices.
Network 14 may be connected to one or more secondary networks (e.g., network 18), examples of which may include but are not limited to: a local area network; a wide area network; or an intranet, for example.
The instruction sets and subroutines of client-side application 10c1, 10c2, 10c3, 10c4, 10c5 which may be stored on storage devices 20, 22, 24, 26, 28 (respectively) coupled to client electronic devices 30, 32, 34, 36, 38 (respectively), may be executed by one or more processors (not shown) and one or more memory architectures (not shown) incorporated into client electronic devices 30, 32, 34, 36, 38 (respectively). Examples of storage devices 20, 22, 24, 26, 28 may include but are not limited to: hard disk drives; tape drives; optical drives; RAID devices; random access memories (RAM); read-only memories (ROM), and all forms of flash memory storage devices.
Examples of client electronic devices 30, 32, 34, 36, 38 may include, but are not limited to, personal computer 30, 36, laptop computer 32, mobile computing device 34, notebook computer 36, a netbook computer (not shown), a server computer (not shown), a gaming console (not shown), a data-enabled television console (not shown), and a dedicated network device (not shown). Client electronic devices 30, 32, 34, 36, 38 may each execute an operating system.
Users 40, 42, 44, 46, 48 may access neural network driven reservoir modeling process 10 directly through network 14 or through secondary network 18. Further, neural network driven reservoir modeling process 10 may be accessed through secondary network 18 via link line 50.
The various client electronic devices (e.g., client electronic devices 28, 30, 32, 34) may be directly or indirectly coupled to network 14 (or network 18). For example, personal computer 28 is shown directly coupled to network 14. Further, laptop computer 30 is shown wirelessly coupled to network 14 via wireless communication channels 52 established between laptop computer 30 and wireless access point (WAP) 54. Similarly, mobile computing device 32 is shown wirelessly coupled to network 14 via wireless communication channel 39 established between mobile computing device 32 and cellular network/bridge 58, which is shown directly coupled to network 14. WAP 48 may be, for example, an IEEE 802.11a, 802.11b, 802.11g, 802.11n, Wi-Fi, and/or Bluetooth device that is capable of establishing wireless communication channel 52 between laptop computer 30 and WAP 54. Additionally, personal computer 34 is shown directly coupled to network 18 via a hardwired network connection.
In some implementations, a client electronic device (e.g., client electronic device 38) may be electronically coupled to at least one monitored inflow control devices 60 (e.g. Schlumberger's Manara® production and reservoir management system). Manara is a registered trademark of Schlumberger Technology Corporation. The Manara production and reservoir management system may include a multiple segment production assembly for subsurface wells, namely, flow control valves, packers, monitoring and telemetry equipment for segmenting a downhole well and enabling control and monitoring of each individual segment while producing the well. As will be discussed in greater detail below, monitored inflow control device 60 may be configured to be deployed into, or adjacent, a well (e.g., well 62) or other structure. In some implementations, monitored inflow control devices 60 may generally include a tool run on an electric logging cable that pushes a probe into the formation, which then allows production into a small closed chamber. Monitored inflow control devices 60 may obtain formation pressures at chosen locations in an interval, and, with an accurate quartz gauge, permeability estimates may be obtained. In some implementations, monitored inflow control devices 60 may acquire formation-fluid samples. In some implementations, monitored inflow control devices 60 may include a dielectric scanner configured to measure water volume and rock textural information and/or a resistivity sensor configured to measuring electrical resistivity of rock or sediment.
In some embodiments, neural network driven reservoir modeling process 10 may communicate with, interact with, and/or include a component or module of a production and reservoir management application (e.g., production and reservoir management application 64). In some embodiments, the production and reservoir management application may process, store, or otherwise interact with logging data recorded or provided by monitored inflow control device 60.
In an embodiment, the instruction sets and subroutines of production and reservoir management application 64 may be stored, e.g., on storage device 16 associated with server computer 12, which executes production and reservoir management application 64, and/or another suitable storage device. Further, users (e.g., one or more of users 40, 42, 44, 46, 48) may access production and reservoir management application 64 in order to access well logs and other data received from monitored inflow control device 60 or other mechanisms. The users may access production and reservoir management application 64 via one or more suitable applications, such as client side applications 10c1-10c5 (e.g., which may include a web browser, a client electronic meeting application, or another application) and/or via a different application (not shown). Additionally, while some users are depicted as being connected with server computer 12 (and therefore with electronic production and reservoir management application 64) via network 14, which may include the Internet, in other embodiments, one or more users may be directed connected to server computer 12 and/or connected with server computer 12 via, e.g., a local area network and/or similar connection.
As generally discussed above, a portion and/or all of the functionality of neural network driven reservoir modeling process 10 may be provided by one or more of client side applications 10c1-10c5. For example, in some embodiments neural network driven reservoir modeling process 10 (and/or client-side functionality of neural network driven reservoir modeling process 10) may be included within and/or interactive with client-side applications 10c1-10c5, which may include client side electronic production and reservoir management applications, web browsers, or another application. Various additional/alternative configurations may be equally utilized.
Referring also to
In this manner and as will be discussed in greater detail below, neural network driven reservoir modeling process 10 may generate reservoir models that are indistinguishable from training images generated from object model building tools, but are conditioned to observations from physical conditions associated with a reservoir (e.g., example wells and seismic data). In some implementations, neural networks used by neural network driven reservoir modeling process 10 to generate the reservoir models (e.g., GANs, CGANs, RNN, CNN, etc.) may also have a stochastic input so that once trained, they can rapidly generate multiple realizations of the geology that are indistinguishable from the training images while at the same time honoring the observations. In some implementations, neural network driven reservoir modeling process 10 may generally include a generative model that captures sufficient geologic knowledge to generate well logs that are consistent with real observed wells. Physical and geological constraints may be enforced in this model. For example, the volume and nature of sediment deposition may be a function of the distance of the well from the shoreline. It will be appreciated that other physical and geological constraints are possible.
In some implementations, neural network driven reservoir modeling process 10 may generate 200 reservoir models from one or more training images. Training images may generally include images or samples of data used to train a neural network. In some implementations, neural network driven reservoir modeling process 10 may generate training images from object based modeling (OBM) tools. Object modeling tools may generally include tools capable of generating training images based upon, at least in part, synthetic geological data. For example and referring also to
In some implementations, neural network driven reservoir modeling process 10 may generate the one or more training images from geological process modeling (GPM) simulators. As shown in the workflow of
Deep learning currently requires large amounts of labeled data to be trained. To achieve this, neural network driven reservoir modeling process 10 may generate synthetic data using a GPM (action 402 in
In some implementations, the one or more training images may become the input for training, validating, and testing deep learning neural networks (actions 408, 410, 412 in
In some implementations, a Generative Adversarial Network (GAN) may avoid Markov chains because of the high computational cost of MCMC (e.g., Markov chain Monte Carlo), may have fewer restrictions with respect to latent variable distributions, and/or may avoid mean field assumptions. The use of a GAN may overcome several limitations of applying multipoint to interpretation. For example, the high computational cost associated with MPS is a major limitation in conditioning geological models to data. An additional limitation of MPS methods is that the geological objects are too “noisy” due to the inherent random processes. Further, MPS has a limited capacity to reproduce the complexity of many geological environments. As will be discussed in greater detail below, a GAN may be used to improve the “realism” of synthetic training images which may be another key benefit over conventional methods.
As will be discussed in greater detail below, a first use case as shown in
As will be discussed in greater detail below, a second use case as shown in
In one example, neural network driven reservoir modeling process 10 may specify the distance from the shore face such that the generated well logs are consistent with the geology at this location. In some implementations, the distance may be input via a user-interface. In this manner, the concept of Conditional Generative Adversarial Networks (CGAN) may be used within the scope of the present disclosure to specify some constraints on the generator. In one example, the distance from shore in the form of a distance range, such as (“generate a well that would look like one drilled between 10 and 12 km from the coast”), may be used to condition reservoir models.
As will be discussed in greater detail below, a third use case as shown in
In some implementations and referring also to the example of
In some implementations, two neural networks compete with each other: a discriminator D (e.g., discriminator 504) is trained to determine whether an input is coming from the real source of data (e.g., real sample 506) or being a generated one (fake) (e.g., fake sample 508). A generator G (e.g., generator 510) is trained to generate real looking data from training data (e.g., training data 512) and tries to fool the discriminator D (e.g., discriminator 504) (G plays the role of the function ƒ, introduced above). By training G (e.g., generator 510) and D (e.g., discriminator 504) alternately, it may be expected that each of them will improve: G (e.g., generator 510) gets better at creating fakes while D (e.g., discriminator 504) gets better at distinguishing between real and fake data. Eventually, at the end of training, an equilibrium may be reached in which G may produce fake data that D (e.g., discriminator 504) is incapable of distinguishing from real data. This “training game” played by the two neural networks can be summarized by the min-max relationship of Equation 1:
where x=real data, z=noise sample, G=the generator, D=the discriminator, θ=weights of the generator, ϕ=weights of the discriminator, and E=Expectation.
In some implementations, it may be observed that maximization over ϕ implies that the discriminator should give a probability close to one for a real sample and a probability close to zero for the fake sample. This would lead to log(1)+log(1−0)=0 which is the maximum of the log function on the probability interval of [0, 1]. In some implementations, it may be observed that minimization over θ implies that the generator should make the discriminator output a probability close to one for the fake data. This results in log(ε)→∞ and minimizes the equation.
In some implementations and referring also to the example of
One approach with CGAN is to decompose the input of the generator into two parts, a noise source zϵZ (e.g., training data 512) and a condition vector y (e.g., condition vector 604) which represent the condition(s) of interest to be enforced for the generation. The condition vector y (e.g., condition vector 602) will be discussed in greater detail below. In some implementations, the vectors z (e.g., training data 512) and y (e.g., condition vector 602) may be concatenated and passed to the generator G as shown in
The cost function of Equation 1 may be modified to incorporate the condition as shown below in Equation (2).
where x=real data, y=condition vector, z=noise sample, G=the generator, D=the discriminator, θ=weights of the generator, ϕ=weights of the discriminator, and E=expectation.
In some implementations, neural network driven reservoir modeling process 10 may generate 200 the one or more reservoir models using a neural network based on the example neural network of
In some implementations, the generator of
The overall workflow involving a RNN is shown in
As will be discussed in greater detail below, a first use case (e.g., Use Case 1 710) as shown in
As will be discussed in greater detail below, a second use case (e.g., Use Case 2 712) as shown in
In a standard (fully connected or convolutional) network, it may be assumed that the model inputs are independent and, as such, have no time dependencies. Indeed when an image classifier is built for instance, the resulting category assigned to an image does not depend on the preceding (or future) image presented to the model. However when attempting to model time series, these assumptions do not hold anymore. Therefore, it may be desirable to take into account the time dependencies between the input of the models. To account for these time dependencies, a RNN may be utilized as a generator D and/or a discriminator D neural network.
RNN are similar to fully connected neural networks in the fact that they share the same weight for all input. However, RNNs have an internal hidden state which is updated at each time step according to the preceding state and the current input. Additionally, the output at a given time step may be computed with the current hidden state. Using a formal description, a RNN may be represented as a loop on itself which could theoretically be infinite. However in practical cases, it may be unrolled for a finite number of steps and may have weights trained using the back-propagation algorithm.
In some implementations, the generator of
As discussed above, the generator of the GAN may be trained to generate models or realizations of the reservoir that are indistinguishable from the OBM generated models. In some implementations, the CGAN generator may be further conditioned based upon, at least in part, physical conditions or observations of the reservoir such that all generated models may also honor the observations.
In some implementations, neural network driven reservoir modeling process 10 may generate 200 the one or more reservoir models based upon, at least in part, one or more physical conditions or observations in the form of “hard” data and/or “soft” data. In some implementations, neural network driven reservoir modeling process 10 may condition the one or more reservoir models based upon, at least in part, “hard” data and “soft” data. In some implementations, the hard and soft data may be included in the condition vector y as shown in
For example, one component of y may be the locations of well measurements.
Those measurements could be the rock type (sand, shale, limestone etc.), or a petrophysical property such as porosity or permeability. Seismic based conditions could also be supplied based on attribute interpretation. Additional conditions such as exogenous geological knowledge could also be included in y such as knowledge when of the depositional environment: e.g., is it continental shelf, or deep water. Also to be potentially included in Y is the production history of a well. This opens up the possibility of applying this to history matching. In history matching, the modeled geology must have the right geometries and properties to have hydrocarbons flow in the manner seen in the well's production history. The resulting geology created by G will then honor the supplied conditions. For example, exemplary reservoir models (e.g., reservoir realizations) that may be generated 200 by neural network driven reservoir modeling process 10 from the training images of
For example, a trained CGAN may be conditioned against known physical conditions or data related to the subsurface asset (existing wells, analogues, outcrops etc.). The trained reservoir model may then be used to populate static properties and their distribution for a single layer, various layers, facies or entire subsurface play in order to furnish reasonable approximations of the (unknown) subsurface geology. Any number of CGAN-generated reservoir models may be generated. The CGAN reservoir model conditioned on known data from existing wells may comprise all, some, or none of the following:
Referring also to the example of
In an example, a vanilla GAN was used to generate realistic appearing wells without conditions. Rather than generate wells of any measured depth/length, sub-sections of uniform length were generated as illustrated in
For both the vanilla GAN and conditional GAN (CGAN) investigations, fully connected neural networks were implemented to model G and D. For the Vanilla GAN example, through hyper parameter optimization, the following architecture for generating wells was observed:
In some implementations, GANs can be very unstable during training. In an example, the Wasserstein GAN (WGAN) approach was used for the cost function. Instead of outputting a probability, the WGAN generates a critic score. As the WGAN training progresses, this critic score decreases. Rather than being a probability, the value of the score may be interpreted as the generator performed “x times better than before”. Further, this score provides a good indication of the quality of the generation, and usually the lower it is, the better the generated samples.
In this experiment, at the end of training (200 iterations consisting of 100 batches of 64 sequences each) generated data was obtained which appeared to be visually similar to real samples.
In another example, well logs conditioned on their relative distance from the shoreline were generated as illustrated in
In
In some implementations, given a number of true physical measurements and a distribution of geological patterns (e.g. a large set of training images), realizations of the geology (e.g., reservoir models) may be generated 200 which honor the physical measurements while producing realistic geological patterns. More specifically, suppose that a specific area is known to have, for example, fluvial geological patterns as shown in
The examples discussed below pertain to the case of fluvial patterns with binary measurements (i.e. there are only two types of rock present), although it is easy to extend this to the general case. For example, neural network driven reservoir modeling process 10 may receive 206 one or more training images including a distribution of patterns associated with a depositional environment (e.g., a distribution of fluvial patterns, alluvial patterns, lacustrine patterns, delta plain patterns, shallow marine patterns, deep marine patterns etc.). Specifically, neural network driven reservoir modeling process 10 may have a distribution of binary images Pfluvial(Z) where z∈{0,1} and a set of m binary measurements (x, y, r) where r∈{0,1}. In some implementations, samples z˜pfluvial(Z) may be generated such that z(xi, yi)=ri for i=1, . . . , m. This approach is illustrated in
The above problem is closely related to semantic inpainting. Semantic inpainting may generally include the task of filling in missing regions of an image using the surrounding pixels and a prior on what the images should look like. As discussed above, GANs are generative models composed of a generator G and discriminator D each parametrized by a neural network where G is trained to map a latent vector z into an image x, while D is trained to map an image x to the probability of it being real (as opposed to generated). In some implementations, neural network driven reservoir modeling process 10 may train 208 the one or more neural networks to generate one or more samples based upon, at least in part, the one or more training images including the distribution of patterns associated with the depositional environment. For example, the networks may be trained adversarially by optimizing the loss as shown below in Equation 3.
After training on data drawn from a distribution 73 data, G will be able to generate samples similar to those from 73 data, by sampling z˜p(z) and mapping x=G(z). In some implementations, neural network driven reservoir modeling process 10 may generate 210 the one or more reservoir models based upon, at least in part, the one or more samples and the one or more physical conditions associated with the reservoir. Using a trained G and D, neural network driven reservoir modeling process 10 may generate realistic images (e.g., realizations) xg=G(z) conditioned on a set of known pixel values y. This can be achieved by fixing the weights of G and D and optimizing z to generate realistic samples based on the know pixel values. In order to generate realistic samples (e.g., images and/or realizations), it may be desirable to have the samples xg close to pdata, i.e. samples such that the discriminator D assigns high probability to xg. This is formalized through the prior loss as discussed below. In some implementations, it may be desirable for the samples to honor the pixel values y, i.e. the generated xg matches y at the known pixel locations. This is formalized through the context loss as discussed below. In this manner, neural network driven reservoir modeling process 10 may generate the one or more reservoir models includes determining at least one of a prior loss and a context loss associated with the one or more samples.
Prior loss: The prior loss p penalizes unrealistic images. Since D was trained to assign high probability to realistic samples, the prior loss is chosen as shown below in Equation 4:
p(z)=log(1D(G(z))) (4)
Context loss: The context loss penalizes mismatch between generated samples and known pixels y. Denoting by M the masking matrix (which has value 1 at the known points and 0 otherwise), the context loss is defined as shown below in Equation 5:
c(z|y,M)=∥M⊙(G(z)y)∥2 (5)
Total loss: The total loss is defined as the weighted sum of the prior loss and context loss as shown below in Equation 6:
(z)=c(z|y,M)+λp(z) (6)
where λ controls the tradeoff between generating realistic images and matching the known pixel values. It may be observed that the loss (z) is modified from Yeh et al. (2016) in that the L2 norm is used instead of the L1 norm for the context loss and the masking matrix M is unweighted.
Referring also to
In some implementations, neural network driven reservoir modeling process 10 may train G and D with a large dataset of geological patterns. In order to create such a dataset, neural network driven reservoir modeling process 10 may take advantage of another family of geomodelling approaches called object-based models (OBM). Even though OBMs are good at producing realistic geobodies, conditioning on dense data locations is very difficult and extremely slow and often fails to converge in MCMC (e.g., Markov chain Monte Carlo). Neural network driven reservoir modeling process 10 may use OBM to generate a training set of 5000 images of fluvial patterns. Each image may have dimensions 128 by 128 and may be binary, with “1” corresponding to channels and “0” corresponding to background (i.e. two different types of rock). However, it will be appreciated that images with other dimensions and/or non-binary values may be used. Examples of the training data are shown in
Referring also to
In some implementations, neural network driven reservoir modeling process 10 may use a DC-GAN architecture (Radford et al. (2015)) for the discriminator and generator and train an unconditional model (i.e. a model that freely generates fluvial patterns without being restricted by physical measurements) on the dataset of e.g., 5,000 images. The non-linearities in the discriminator may be LeakyReLU(0.2) except for the output layer which may be a sigmoid. The non-linearities in the generator are ReLU except for the output layer which may be a hyperbolic tangent (e.g., tanh). In some implementations, the models may be trained for e.g., 500 epochs with Adam with a learning rate of e.g., 1e-4, β1=0 and β2=0.9.
In order to verify that the model has learnt to generate realistic and varied samples, neural network driven reservoir modeling process 10 may perform several checks. Firstly, neural network driven reservoir modeling process 10 may visually inspect samples from the model (see
Using the conditional GAN, neural network driven reservoir modeling process 10 may create samples conditioned on measurements by minimizing the loss (z) specified in Equation 4. To do this, neural network driven reservoir modeling process 10 may take a fluvial image and randomly select m measurement locations and mask the rest of the input. Neural network driven reservoir modeling process 10 may then randomly initialize several z(i) and minimize (z) for each of them using Stochastic Gradient Descent (SGD). In some implementations, to optimize z, neural network driven reservoir modeling process 10 may use SGD with a learning rate of 1e-2 and momentum of 0.9. However, it will be appreciated that other configurations for optimizing z are within the scope of the present disclosure.
By randomly initializing several z(i) and minimize (z) for each of the several z(i), this may result in a set of z(i) each corresponding to a local minimum of (z). Ideally, each of the z(i) can be mapped to a realization x(i)=G(z)(i)) such that the x(i) honor the physical measurements, have realistic geological patterns and each correspond to different realizations. The idea is that different initializations will lead to different minima of (z) and in turn a variety of samples all satisfying the constraints. Examples of this are shown in
For most geostatistical modeling algorithms, increasing the number of measurements to condition on, degrades performance and increases runtime. However, this is not the case for neural network driven reservoir modeling process 10 which is able to achieve good performances over a wide number of measurements from sparse to dense. Results are shown in
In contrast to conventional geological modeling systems, neural network driven reservoir modeling process 10 may use several training images with wide uncertainty and generate large coherent realizations of the geology as opposed to small patches. More importantly, neural network driven reservoir modeling process 10 may allow for conditioning on physical measurements.
As discussed above, neural network driven reservoir modeling process 10 may provide a powerful and flexible framework for generating realizations of geology conditioned on physical measurements. It is superior to existing geological modeling tools due to its ability to capture realistic geological patterns with a wide range of uncertainty and its flexibility to condition on physical measurements. In some implementations, neural network driven reservoir modeling process 10 may generate subsurface geological models in 3D and may include more than two rock types.
In some implementations, GANs may be used to generate geological facies models by feeding neural networks with training images that are considered as digital representation of geological conceptual models. For example, 2D GANs may be used to generate unconditional fluvial samples or realizations. The fluvial training images may be created using OBM with varying channel widths and orientations.
In some implementations, neural network driven reservoir modeling process 10 may be utilized for a deltaic system that shows the distributary channels spread out from a point source at the middle of the top boundary of the studied area or reservoir. The variation of both the channel widths and orientations along the flow direction indicates strong heterogeneous and nonstationary characteristics of the deltaic depositional system, which is usually challenging to model by geostatistical simulation. However, GANs can reproduce this type of nonstationary channel patterns quite reasonably. For example, 16 of 15000 deltaic training images and sixteen unconditional samples generated by GANs are shown in
In some implementations and using a pre-trained G and D, neural network driven reservoir modeling process 10 can generate realistic images Xg=G(Z) conditioned on a set of known values y, which are defined either at pixel locations in 2D or voxel location in 3D. This can be achieved by fixing the weights of G and D and optimizing z to generate realistic samples based on the known values.
In some implementations, neural network drive reservoir modeling process 10 may determine 212 at least one of the perceptual loss and the contextual loss associated with one or more samples. For example, to generate realistic samples, it may be desirable for the samples Xg to be close to Pdata, i.e. to generate samples such that the discriminator D assigns high probability to Xg. This idea is formalized through the perceptual loss. It may also be desirable for the samples to honor the pixel or voxel values y, i.e. the generated Xg to match y at the known pixel or voxel locations. This is formalized through the contextual loss. In some implementations, neural network driven reservoir modeling process 10 may constrain generated samples by GAN to honor well measurements (e.g., geological facies interpretation in well locations).
In some implementations determining 212 the contextual loss associated with the one or more samples is based upon, at least in part, one or more of semantic inpainting (as discussed above) and a distance transformation that measures mismatch between the one or more samples and the one or more physical conditions associated with the reservoir. For example and in some implementations, neural network driven reservoir modeling process 10 may lead to better data conditioning than the semantic inpainting approach by defining the contextual loss using a distance transformation that measures the mismatch between the generated samples by GANs and the conditioning data (e.g., facies observations in well locations). The total loss function is formulized as the sum of perceptual loss and the contextual loss:
Total loss: The total loss is defined as the weighted sum of the perceptual loss and contextual loss as shown below in Equation 7:
total(Z)=p(Z)+λc(Z|I1,I2, . . . ,IM) (7)
where λ is a regulation factor that controls the tradeoff between generating realistic images and matching the known facies data.
Perceptual loss: The perceptual loss p penalizes unrealistic images. Since D was trained to assign high probability to realistic samples, the perceptual loss is chosen as shown below in Equation 8:
p(z)=log(1D(G(z))) (8)
Contextual loss: The contextual loss penalizes mismatch between generated samples and known pixels y. The contextual loss may be defined as shown below in Equation 9:
c(Z|I1=i1,I2=i2, . . . ,IM=im)=Σk=1KΣd=1M min∥i(k)(G(Z))id(k)∥1 (9)
where K is the total number of the facies, and M is total number of the known facies locations on which to condition the samples generated by GANs.
In the contextual loss, {Im|m=1, . . . , M} may be the collection of m-facies indicator variables with lower case {Im|m=1, . . . , M} representing the respective observations; id(k) represents the observed k-facies indicator at the datum location d. The contextual loss is computed as the sum of all the mismatched facies in all well locations by searching for the shortest distance from the facies location at one individual well to its nearest corresponding facies in the sample generated by the generator G, which is represented as i(k)(G(Z)) in the formula of the contextual loss.
In some implementations, neural network driven reservoir modeling process 10 may minimize 214 at least one of the perceptual loss and the contextual loss associated with the one or more samples. For example, all the data (e.g., physical conditions) may be honored once the contextual loss is approaching to zero. This may be achieved by applying gradient decent to the noise z-vector in the latent space through minimizing the total loss. The iteration process may be ceased if a small error threshold for the contextual loss is reached that results in one conditional sample generated by GANs.
For example, computing the contextual loss using a distance transformation based on facies indicators provides a smoother objective function and it leads to better and faster data conditioning than achieved with semantic inpainting. Additionally, a user-defined arbitrary mask and weighting factors surrounding the data measurements may be required by the sematic inpainting. This limitation is eliminated in the distance transformation. Moreover, the distance transformation using facies indicators may be more robust and universal since it is independent of the facies coding.
In some implementations, neural network driven reservoir modeling process 10 may generate one or more reservoir models (e.g., 2D conditional facies models) using conditional GANs described above. For example, and as shown in
The conditional deltaic facies modeling results by GANs and comparison with MPS simulation are shown in
In contrast, conditional models by GANs give more realistic reproductions of the deltaic system in terms of the source point location, various channel widths and their orientation. All of them honor the 35 well data. This is a demonstration of a clear advantage of modeling facies using GANs over MPS for nonstationary geological depositional environments, which is ubiquitous in subsurface reservoirs.
In some implementations, neural network driven reservoir modeling process 10 may modeling facies in 3D. For example, the conditional GANs discussed above may be used to build geologically realistic facies architecture in 3D and the models are conditioned to well data. Unconditional simulations of a depositional fluvial system may be tested with three facies: channel sand, levee and shale background. In this example, e.g., 15,000 fluvial models may be generated in 3D using OBM with variation of channel width, thickness, amplitude, sinuosity, and orientation. The proportions of three facies in this example may be around 0.85 (shale), 0.10 (channel) and 0.05 (levee) respectively. The size of each training model may be 32×64×64 in z-, y-, and x-direction respectively.
Referring also to
Continuing with this example, the pre-trained GANs may be used further to generate 3D fluvial facies models constrained by facies interpretations in well locations. For example,
Amore complex carbonate example is tested to demonstrate the modeling capability of 3D GANs. In this example, 5,000 carbonate ramp training models may be generated in 3D with e.g., five transitional facies: tidal flats, lagoon, shoal, shallow marine and deep marine.
At the bottom of
The structure of 3D GANs is shown in the below table, which is similar to the deep convolutional GANs adapted and extended to 3D for conditional facies modeling. Each of the generator and the discriminator is a deep convolutional network. The nonlinearities in the discriminator may be LeakyReLU(0.2) except for the output layer which is a sigmoid. The nonlinearities in the generator are ReLU except for the output layer which is a hyperbolic tangent (e.g., tanh). In this example, the GANs were trained for 500 epochs with Adam with a learning rate of 1e-4, β1=0.5 and (β2=0.5.
In some implementations and when optimizing z vector in the latent space to honor the conditional data, neural network driven reservoir modeling process 10 may use the Adam stochastic optimization method with a learning rate of 1 e-2 and default β parameters, λ=1000, and train for 1500 iterations. Referring also to
In some implementations, neural network driven reservoir modeling process 10 may simulate 202 the one or more reservoir models. For example and in some implementations, neural network driven reservoir modeling process 10 may simulate 202 both a static geological model domain and a dynamic fluid production domain. For example, in the dynamic fluid production domain, one or more generated realizations (e.g., reservoir models) may be immediately (e.g., almost instantaneously) simulated 202 using either existing reservoir simulator tools or a rapid proxy. In some implementations, neural network driven reservoir modeling process 10 may fix the observation at a single point in time (e.g., cumulative oil production (known as FOPT—Field Oil Production Total)) and may rapidly simulate a conditional sample against a known outcome (this proxy then can replace the optimal grid) for purposes of forecast optimization. Thus neural network driven reservoir modeling process 10 may extend the utility of the GAN realization ensemble to “flow” the model and determine a forecast for production, saturation, and/or pressure.
In some implementations, the one or more reservoir models may be simulated 202 by a reservoir simulator. A reservoir simulator may model the dynamic properties to bridge the gap between generating a reservoir model (as discussed above) and conditioning the model to observed production data for monitoring and control. Examples of reservoir simulators may generally include reservoir simulators based on finite difference such as ECLIPSE and INTERSECT (IX). As will be discussed in greater detail below, a Segmented Reservoir Model Simulator (SRMS) may be configured to simulate 202 the one or more reservoir models. SRMS is a new approach to reservoir simulation based on a graphical model. In some implementations, SRMS may simulate the one or more reservoir models more quickly than other conventional reservoir simulators.
An overview of simulating 202 the one or more reservoir models via neural network driven reservoir modeling process 10 via SRMS is provided below:
1 SRMS Summary
Referring also to
Referring also to
Representing the oilfield as a graphical network of wells allows three-dimensional (3D) dynamic properties affecting production forecasting and history matching to be modelled. However, because the fluid dynamics of each segment are represented by graphical edges, the behavior along each edge can be modelled with a one-dimensional (1D) simulator. The effective 3D behavior emerges from the aggregation of the 1D behaviors into the 3D graph.
As an illustration of applying 1D simulation on each edge, and aggregating to the entire 3D graphical network of wells, the Buckley-Leverett solution may extended and applied to 1D fluid displacement. In some implementations, simulating 4806 the behavior of the one or more reservoir models along the one or more edges between the one or more injector completions and the one or more producer completions may include receiving 4808 one or more injector rates associated with the one or more injector completions and determining 4810 one or more of oil production rates and water production rates for the one or more producer completions based upon, at least in part, simulating the one or more injector rates associated with the one or more injector completions. For example and as will be discussed in greater detail below, this graphical network representation simultaneously solves the Buckley-Leverett solutions for every edge in the network and, therefore, provides a forecast of oil and water production for all producers given injection rates and basic reservoir properties.
In some implementations, simulating 4806 the one or more reservoir models along the one or more edges between the one or more injector completions and the one or more producer completions may include receiving 4812 one or more of oil production rates and water production rates associated with the one or more producer completions and determining 4814 one or more water injection rates for the one or more injector completions based upon, at least in part, simulating one or more of the oil production rates and the water production rates associated with the one or more producer completions. For example, if oil and water production rates are known, then the water injection rates can be solved accordingly. Furthermore, if injection and production rates are known, then some basic reservoir properties can also be inferred, i.e., history matching.
2 Network of Wells
In some implementations, an oilfield may be represented as a network of wells with injectors being in communication with producers. Each reservoir unit (in any particular field) is treated as hydraulically isolated, but with potentially communication through real or virtual wells. The completions in each reservoir unit are modelled as vertices in a graphical network, and the communication pathway between them is modelled as an edge of a graphical network. Any segment between two completions in a well is also modelled as an edge.
In some implementations, neural network driven reservoir modeling process 10 may aggregate 4816 a plurality of edges between a plurality of injector completions and a plurality of producer completions to define a three-dimensional graph network representative of the reservoir model. For example, representing the oilfield as a graphical network of wells may allow three-dimensional (3D) dynamic properties affecting production forecasting and history matching to be modelled. However, because the fluid dynamics of each segment are represented by graphical edges, the behavior along such edges can, therefore, be modelled with a one-dimensional (1D) simulator. The effective 3D behavior emerges from the aggregation of 1D behaviors of each edge in the 3D graph.
In some implementations, wells are modelled as a communicating network. In some implementations, neural network driven reservoir modeling process 10 may define 4818 one or more injector-producer pairs based upon, at least in part, spatial proximity between the one or more injector completions and the one or more producer completions. Injectors and producers communicate with each other via their completions in common reservoirs. Thus, for each injector completion in a reservoir, all “neighboring” producer completions in the same reservoir are identified. The hydraulic communication between each of these injector-producer completion pairs is then modelled with a 1D simulator such as Buckley-Leverett.
There may be several ways to define and identify injector-producer neighbors. The simplest approach in the absence of historical production data or geological modelling (e.g., fault barriers, high permeability fracture networks) is to identify the nearest neighbors in a spatial sense using an approach such as Voronoi tessellation. Another approach is to examine the historical production to discover which wells are communicating. A hybrid approach is also possible which utilizes Bayesian likelihoods favoring spatial association in the absence of historical data, but augments these association likelihoods with historical data.
As a simple illustration of the concept, a Voronoi tessellation may be used by neural network driven reservoir modeling process 10 to partition the reservoir. For example,
In this approach, adjacent cells that contain different well types (an injector or producer) are considered to be in “hydraulic communication”.
In some implementations, each reservoir may be modelled or simulated as an hydraulically isolated volume. However, wells may penetrate multiple reservoirs and have co-mingled production. This can be modelled by treating each reservoir as a sub-network, which is then aggregated together to comprise the entire graphical network and is illustrated, conceptually, in
3 The Reservoir as a Graph
In conventional numerical reservoir simulation, the reservoir is modelled as a 3D grid of finite difference cells. Generally, the size of each cell is made small enough to capture the heterogeneity of the static and dynamic properties of the reservoir. However, the smaller the cell, the greater the number of required cells to represent the oilfield, and this is constrained by the available computational resources. Modem simulators allow local grid refinement where a finer cell size is possible in areas of high gradients in pressure such as near a well.
Rather than a finite difference grid cell being considered the atomic unit of simulation, one approach taken with neural network driven reservoir modeling process 10 (e.g., via SRMS) is to treat the connection (relationship) between an injector and a producer as the atomic unit. In this manner, the edges defined between the injectors and producers may define a graph network representative of the reservoir model. In a reservoir with one injector and one producer there is a single relationship, while in a single five-spot pattern with one injector and four producers there are four relationships. However, as the number of injectors (NL) and producers (Np) grows the number of possible relationships (Nr) grows, as shown below in Equation (10).
N
r
=N
i
·N
p (10)
In a large mature field Ni and Np could each be 100. This results in Nr potentially being of the order 10,000 or greater. However, in reality an injector will only be communicating with a small number of producers. Thus, if each injector communicates with five producers, then Nr will be of order 500. If the problem is represented as an adjacency matrix, the result is a very sparse matrix with 95% of the elements being 0, or undefined. However, if the problem is treated as a graphical network with the wells represented as vertices, then each connection is represented as a directed edge in the graph. Further, a graph representation presents the wide array of graph theoretical tools available to model this “social network of wells”.
Edges as Volumes
As noted previously, using formal terminology from graph theory, the connection between an injector and a producer is termed an “edge”. In some implementations, neural network driven reservoir modeling process 10 may define 4820 one or more directed edges between the one or more injector completions and the one or more producer completions in the one or more reservoir models based upon, at least in part, the one or more injector-producer pairs. For example, because fluid is flowing from an injector to a producer, each of these edges is termed a “directed edge”. In this section, it will be described how the local static and dynamic reservoir properties are represented on such edges. Consider a volume of interest (between an injector and a producer), this may be defined as follows:
V
ϕ
=A×L×ϕ×E
v (11)
where the units of “A×L” are [L]3, ϕ is porosity, A is area, L is length and Ev is vertical sweep efficiency (essentially a tuning parameter to match data). It may be assumed that any edge of length L may represent a volume, thus:
{tilde over (V)}
ϕ|E(v)←Vϕ (12)
where Ev represents a specific graphical edge. The nature of Ev is discussed in Section 4 (and defined in later in Table 2).
Equation 12 demonstrates an important, and potentially useful property of graph theory; namely that a volume (with dimensions of [L]3) may be represented as an edge (with units). Taking this concept further, edges may take on any property of any dimensionality as may be needed.
4 Utilizing the Graph to Allocate Rates
Consider the sketch on the left-hand side of
4.1 Tabulating All Members
Inspection of
1. Determine all ‘elements’ that will eventually be represented by graphical edges, for this example these are:
2. Tabulate every possible permutation of wells and units, as shown in Table 2.
3. Index each table entry, m, be they valid or not valid.
4. Define whether each entry may form a valid edge, ε≠0, or not, using Eq. (13):
5. List all valid edges: E(∀i, ∀p, ∀u)≡E(V), see Table 2 below.
4.2 Final Edge & Validation Table
The completed form of Table 2 with columns for fluxes along each graphical edge is then:
4.3 Edge Indexing Summary
In this example, Table 2 is used as the principal reference for all rate allocation analysis. The key column to note is the valid edge index where valid edges are denoted by E(i,p,u). Any specific individual injector is denoted as i=i. Similarly, any single producer is p=p and a single reservoir unit is u=u. Table 3 (as shown below) summarizes a few indexing permutations (is incomplete).
4.4 Example Rate Calculations
In some implementations, wo important notations may be utilized:
In some implementations, neural network driven reservoir modeling process 10 may determine 4822 total oil production for the one or more reservoir models based upon, at least in part, determining oil production for each directed edge that terminates at the one or more producer completions in the one or more reservoir models. For example, the total oil produced, (qoil)T, is the sum of all valid edges (i.e., ε≠0) that terminate at each producer over all reservoir units, ∀u, thus E(∀i, ∀p, ∀u) hence,
[(qoil)T]E(∀
The RHS of Eq. (14) simply sums over all entries in Table 2 (i.e., m∈M) but with only valid edges being used, i.e., conditional on ε≠0. A more condensed form of Eq. (14) is to express indexes in terms of v∈V, thus:
[(qoil)T]E(∀
However, for purposes of clarity this condensed form is not used here, rather explicit edge-specific notation, per column 6 of Table 2 is used.
The total volume of water injected ((qinj)T) is the sum of all valid edges (i.e., ε≠0) that originate at every injector over all reservoir units, ∀u, thus E(∀i, ∀p, ∀u) hence,
[(qinj)T]E(∀
Once again the summation covers all valid instances of injectors, producers and units, as shown in Table 2.
Using Table 2 all producers ∀p connected to units, u={1, 2}, becomes:
[(qoil)T]E(∀
Using Table 2, injectors i={1, 3}, over all units ∀u thus:
[(qinj)T]E({1,3},∀
Using Table 2:
[(qinj)T]E({1},∀
Let E(i={1}), p={2}), u={3}) and using Table 2:
[(qinj)T]E({1},{2},{3})=Σ∀
In this case (qinj)T=0 because from Table 2 it is observed that ε(1,2, 3)=0 thus the condition of validity is false.
Let E(i={3}), p={2}), u={2}) and using Table 2 yields:
[(qinj)T]E({3},{2},{2})=Σ∀
In this case E(3, 2, 2)≠0 because, from Table 2, it may be observed that E(3, 2, 2)=1, the condition of validity is true.
4.5 Generalized Production
Let p=p (i.e., and single producer) then the set of possible edges will be: E(i,p,u). Based on Table 2 the general expression for a single producer is:
In this instance, total production may be denoted as (qoil)T because it may be desirable to sum over all associated reservoir units and injectors.
For a specific edge i=i, p=p, u=u, the edge index becomes E(i, p, u). As this represents the finest granularity of analysis, neural network driven reservoir modeling process 10 may not be summing any quantities, hence oil rate is presented by qoil:
4.6 Generalized Injection
Let i=i then a set of possible edges will be: E(i, p, u). As injection rate is not subject to breakthrough at the well (a calculation necessary for producers), using Table 2 the general expression is simply:
[(qinj)T]E(i,∀
In this instance, total injection may be denoted as (qinj)T because it may desirable to sum over all associated reservoir units and producers.
4.7 Considering Pressure with Darcy's Law
In some implementations, simulating 4806 the one or more reservoir models along the one or more edges between the one or more injector completions and the one or more producer completions may include receiving 4812 one or more of oil production rates and water production rates associated with the one or more producer completions and determining 4814 one or more water injection rates for the one or more injector completions based upon, at least in part, simulating one or more of the oil production rates and the water production rates associated with the one or more producer completions. For example, the total injection rate into injection well i is the sum of the total flow rate along each edge originating from it, thus:
[(qinj)T]E(i,∀
Symmetrically, and prior to water breakthrough, total production rate for a specific producer is given by the sum of the flowrates along each edge terminating at that producer, viz:
[(qoil)T]E(i,∀
The injection rate along any single valid edge can be modelled as single phase with Darcy's law (Hubbert[6], 1957), thus:
where E(i, p, u) represents a unique edge. Assuming constant bottom hole pressure (BHP) control then,
(P∀
In other words, the difference in BHP across all edges in the graph in a given reservoir is constant at P. This assumption may be independent of the specific edge denoted by E(i, p, u). Substituting Eq. (26) into Eq. (25), and assuming that ε(i, p, u)≠0, then:
Modifying Eq. (29) to incorporate sweep efficiency denoted by (EV), the effective volume of the modelled displacement volume is fractionally reduced by the macroscopic sweep efficiency, while the microscopic sweep efficiency (ED) is already accounted for by the residual oil saturation, Sor, thus:
Using Eq. (12), but including sweep efficiency, and still considering E(i, p, u), then:
(qinj)E(i,p,u)=[AϕEV|E(i,p,u)] (38)
then Eq. (30) becomes:
5 Buckley-Leverett Fundamentals
The Segmented Reservoir Model Simulator (SRMS) solves a network of 1D Buckley-Leverett equations simultaneously and analytically. As such, it may be beneficial to review the underlying Buckley-Leverett approach and the underlying assumptions.
5.1 Buckley-Leverett: Dake's Interpretation
Buckley-Leverett is recognized as the basic equation for describing immiscible displacement in one dimension and was formulated by Buckley & Leverett. Assuming diffusive flow, the fundamental model is expressed in Eq. (33) below and shown in
Equation (33) states that the mass flow rate is equal to the mass of water flowing into the volume element, minus the mass of water flowing out of the volume element. Note that a change in mass of water on the left-hand side (LHS) of Eq. (33) is accounted for by a change in water saturation on the RHS.
With the assumption that incompressible displacement is constant, in the limit Eq. (33) can be expressed as a differential equation, as shown in Eq. (34):
The full differential for the incremental change in water saturation (∂Sw) may be expressed as:
In this analysis, the movement of a plane of constant water saturation may be investigated. Therefore, as ∂Sw=0 allowing Eq. (31) to be reformulated as Eq. (32), below:
Eq. (34) can be reformulated by using Eq. (36), giving
Expressing the LHS of Eq. (37) using the chain rule yields:
and combining Eq. (37) and Eq. (38) yields:
or, alternatively, in terms of the velocity of saturation as
For incompressible displacement, qT must, therefore, be constant. If the definition of fractional flow of water (ƒw) is stated as being:
q
w
=q
Tƒw (41)
Because the model may be defined for a plane of constant Sw, and as it may be assumes that fractional flow (ƒw) is strictly a function of water saturation, then the following may be obtained from Eq. (41):
Thus, Eq. (33) becomes Eq. (43), below:
Equation (43) is the famous Buckley-Leverett expression. This generally states that for a constant rate of water injection (qT=qw) the velocity of a plane of constant water saturation is proportional to the derivative of the fractional flow for that particular saturation. Again, as fractional flow is assumed to be a function of water saturation, then integrating Eq. (43) over time establishes the position of the plane of constant water saturation at a given point in time, yielding Eq. (44):
where Winj is the total (cumulative) amount of water injected since initial conditions.
A technique for understanding the water saturation profile behind the shock front of Welge, and is stated as:
Note that from Eq. (37), Eq. (46) may be written as:
Let x2 be the position of the shock front with saturation Sw, then combining Eq. (46) and Eq. (47) yields:
As illustrated in
As shown in Eq. (37), for a given amount of injected water, Winj, the position of a plane of constant water saturation (x|s
Thereby, for a given volume of injected water, and Sw≥Swf, Eq. (49) may be reformulated as:
The integral in the numerator of Eq. (51) is solved using with integration by parts to yield:
Substituting Eq. (52) back into Eq. (51) yields:
Simplifying Eq. (53) will yield Eq. (54)—which is the well-known Welge equation. This expression equates the average water saturation behind the shock front, Sw, to the water saturation of the shock front itself, Swf (subscript ‘f’ denotes ‘shock front’), and the fractional flow ƒw|s
Prior to water breakthrough when the shock front reaches the producer, Eq. (48) and Eq. (54) are independent expressions of the fractional flow at the shock front and can be equated yielding the following:
The significance of this result is illustrated in
At breakthrough time (e.g., subscript “bt”) let x=L in Eq. (46), hence dimensionless cumulative water injected is:
where denotes the dimensionless form of Winj stated in terms of porosity. From mass balance constraints at time of breakthrough:
where Ñp is the dimensionless form of Np (the total volume of oil produced) and is dimensionless injection rate. From Eqs. (48 & 50) the pore volume of oil produced at breakthrough time may be obtained, thus:
After water breakthrough, the Welge expression, Eq. (54), applies for the rise in saturation at the producing well, Sw:
From a mass balance, after breakthrough:
=SwSwc=(SwSwc)+(SwSw) (61)
and substituting Eq. (60) into Eq. (61) yields
and substituting Eq. (47) into Eq. (62) yields the following:
=(SwSwc)+(1ƒw) (63)
In some implementations, neural network driven reservoir modeling process 10 may establish the 1D implementation of the model, suitable for implementation along a single graphical edge.
Modelling of water saturation with Buckley-Leverett may include modelling of fractional flow, ƒw. If capillary pressure gradients and gravity effects are ignored, then the fractional flow can be expressed in terms of the oil and water viscosities and relative permeabilities, viz:
Note that the relative permeabilities, kwr and k0r, may be dependent only on water saturation, Sw. To simplify the mathematics and also to obtain analytical expressions for the Buckley-Leverett equations, it may be desirable to model the relative permeabilities. In this example, neural network driven reservoir modeling process 10 may use the Corey and Brooks-Corey approximations for the task. In order to apply these approximations, it may be useful to first normalize water saturation, thus:
where ∥SW∥ represents the ‘normalized’ water saturation. The Brooks-Corey approximations then allow the relative permeabilities to be expressed as follows:
k
wr
=k
wr,max
(66)
and
k
or
=k
or,max
(67)
Applying the Corey simplification, namely w=w=2 and that kwr,max=kor,max=1, then:
k
wr=(∥Sw∥)2 (68)
and
k
or=(1∥Sw∥)2 (69)
Taking advantage of the Brooks-Corey approximations provided earlier in Eqs. (61 & 62), the relative permeabilities in Eq. (64), yields:
Further, the gradient of the fractional flow may also be expressed in terms of ∥Sw∥ by differentiating Eq. (70), with respect to ∥Sw∥, viz:
Differentiating the normalized saturation Eq. (65):
allows neural network driven reservoir modeling process 10 to apply the product rule to obtain the gradient of ƒ with respect to Sw, namely:
The mean water saturation (denoted by Sw) and also the mean-normalized water saturation (denoted by ∥Sw∥) may be expressed in a similar form to Eq. (65), namely:
and rearranging Eq. (53) and normalizing the saturation according to Eq. (74) yields:
In some implementations, there may be two independent equations relating Sw to ƒw described by Eq. (70) and Eq. (75). Welge used this relationship to derive the water saturation of the shock front (Swr) by graphically determining the point where the line, described by Eq. (75), is tangent to the fractional flow, per Eq. (70), as illustrated in
In this section, an analytical derivation for the simultaneous solution of Eq. (70) and Eq. (75) may be presented.
The tangent line described by Eq. (75) and shown in
and substituting Eq. (71) into Eq. (76):
and from Eq. (70) the fractional flow at the shock front is described solely by the fractional flow equation:
The tangent point occurs when ƒw obtained from Eq. (77) and Eq. (78) are equal, viz:
which can be simplified as:
and because the denominator of Eq. (80) is always >0 then:
μo(∥Sw∥)2[μo(∥Sw∥)2μw(1∥Sw∥)2]|swf=0 (81)
Neural network driven reservoir modeling process 10 may be interested in solutions for which ∥Sw∥>0, therefore:
μo(∥Sw∥)2|swfμw(1∥Sw∥)2]|swf=0 (82)
This quadratic has one physical solution, namely:
Eq. (83) may represent a significant result in that it allows us to directly estimate the water saturation of the shock front ∥Sw∥ prior to breakthrough.
Eq. (83) can be combined with Eq. (73) to yield a variety of solutions based on the fractional flow gradient prior to breakthrough, namely
For example, substituting Eq. (46) and Eq. (73) into Eq. (37), yields an expression for the position of the shock front prior to water breakthrough, viz:
From Eq. (57), the amount of injected water at breakthrough time, but stated in terms of porosity units (hence dimensionless), is given by:
combining Eq. (48) and Eq. (73) yields the average water saturation behind the shock front up to water breakthrough:
Substituting Eq. (74) and Eq. (86) into Eq. (85) gives the injected water at breakthrough in terms of water saturation at the front:
where ∥Sw∥ is known from the relative viscosities Eq. (83).
In some implementations, simulating 4806 the one or more reservoir models along the one or more edges between the one or more injector completions and the one or more producer completions may include receiving 4808 one or more injector rates associated with the one or more injector completions and determining 4810 one or more of oil production rates and water production rates for the one or more producer completions based upon, at least in part, simulating the one or more injector rates associated with the one or more injector completions. For example and before water breakthrough, the dimensionless volume of oil produced, Ñp, is the same as the dimensionless volume of water injected, . However, after water breakthrough, calculation of Ñp may involve first determining the average water saturation, Sw, viz:
=SwSwc (88)
or by substituting Eq. (74)
=(1SwcSor)∥Sw∥ (89)
To obtain ∥Sw∥ (the average of normalized water saturation), it is important to note that after water breakthrough, the water saturation at the producer (Sw) rises as water is injected, as illustrated in
Equation (48) is no longer valid after water breakthrough, but the Welge equation, Eq. (54), does remain valid and can be reformulated in terms of normalized saturations, per Eq. (65), as:
With the Brooks-Corey approximations, Eq. (90) can be expressed in terms of the normalized Welge saturation at the producer (∥Sw∥) (a ‘Welge’ parameter is denoted by the ‘ ’ superscript). Substituting Eq. (70) and Eq. (71) into Eq. (90):
and simplifying yields
The average of the normalized saturations ∥Sw∥, can now be expressed in terms of ∥Sw∥, which needs to be computed.
If ∥Sw∥ is known, then the inverse of Eq. (93) solves for ∥Sw∥, which is stated as a function of: ∥Sw∥, μw, μ0, Swc, Sor, viz:
∥Sw∥=(∥Sw∥,μw,μ0,Swc,Sor) (94)
Note that prior to water breakthrough the normalized water saturation at the producer is ∥Sw∥=0. However, after breakthrough, F(·) (in Eq. 87) is a 3rd-order cubic polynomial with three roots, of which only one is physical (e.g., one root will yield Swf<0 while the other will furnish Swf>1). Equation (94) is used to obtain ∥Sw∥ when the average water saturation between an injector and producer is known.
If, instead of ∥Sw∥ being known, the dimensionless quantity of injected water is known (), Eq. (71) may be substituted into Eq. (38) to obtain:
Equation 88 may express in terms of the (normalized) Welge water saturation, ∥Sw∥. However, when solving the forward model for fluid production, ∥Sw∥ may be expressed in terms of . Thus, the inverse of Eq. (93) solves ∥Sw∥ as a function of , μw, μ0, Swc, Sor, viz:
∥Sw∥=(,μw,μ0,Swc,Sor) (96)
Note that prior to water breakthrough, ∥Sw∥=0, but after breakthrough (, μw, μ0, Swc, Sor) is a quartic (4th-order) polynomial with four roots, of which only one is physical.
For purposes of production forecasting, the following steps allows neural network driven reservoir modeling process 10 to analytically compute Ñp, as a function of , μw, μ0, Swc, Sor, viz:
1. Compute the normalized water saturation at the producer, ∥Sw∥ using Eq. (96);
2. Compute the average normalized water saturation, ∥Sw∥ using Eq. (93); and
3. Compute dimensionless production, using Eq. (89).
This sequence of steps can be summarized by the following equation:
=(,μw,μ0,Swc,Sor) (97)
The previous descriptions may be consolidated into a full 3D implementation for computing fractional flow and utilizing the edge-indexing terminology described previously in sub-section 4.3.
Combining Eq. (36) and Eq. (32), an expression for the fraction of water flowing along a particular edge may be obtained, thus:
and rearranging
or stated in terms of dimensionless pore volumes:
A key assumption in the derivations from Eq. (30) to Eq. (99) is that fluid mobility along each edge is affected by the absolute permeability along the edge and that the effective relative mobility along each edge, kr/μt, is similar. This allows the saturation dependency of the fluid mobility to be eliminated from Eq. (98) to Eq. (99).
The total flow rates at each producer well, [(qinj)T]E(i,∀
[(qliq)T]E(∀
Since the rate on a given edge is now known from Eq. (99), the time of water breakthrough for each edge may be obtained from Eq. (58), but applicable to a specific production well, p:
where |bt is obtained from Eq. (81) and Eq. (85), and |bt is obtained from Eq. (100). The aggregate fractional flow at any producer, p, can then be obtained from Eq. (31), viz:
ƒw|E(∀
In some implementations, a rendered CGAN realization of a subsurface geological unit, layer or reservoir may be rapidly represented by a rapid but robust proxy or simulation for purposes of forecasting and screening. For example, neural network driven reservoir modeling process 10 may superimpose a Segmented Reservoir Model Simulator (SRMS) simulator or any other reservoir simulator, fixed on existing wells, onto a CGAN-rendered reservoir proxy. The degree of resolution of the proxy may be user-defined. One superimposed on the CGAN geological model, the edges of the SRMS model may then be given average values of the static properties needed to construct a simple dynamic forecast model (porosity, permeability, saturation, net-to-gross (NTG) and so on). The proxy may be constrained on known data (as is the CGAN rendered geological model) and the degree of tessellation can be manually defined of defaulted to some pre-defined value of property variation.
Referring also to
{tilde over (V)}
ϕ|E(v)←Vϕ (97)
Equation 97 summarizes the concept of populating an edge with a volume or property. In other words, neural network driven reservoir modeling process 10 can scan the immediate neighborhood of the SRMS edge, populate it accordingly with whatever property of interest, and then run the SRMS simulator to derive some forecast from it. This may be a Buckley-Leverett simulation or more generic material balance (MBAL) calculation.
Referring also to
In some implementations, neural network driven reservoir modeling process 10 may control 204 one or more monitored inflow control devices based upon, at least in part, simulating the one or more reservoir models. For example, neural network driven reservoir modeling process 10 may utilize multipoint GAN for operational control of oilfield flow devices. In some implementations, neural network driven reservoir modeling process 10 may have a direct bearing on the operational efficiency of oilfield ow control devices, both monitored and stand-alone.
Referring also to
As discussed above neural network driven reservoir modeling process 10 may generate the one or more reservoir models based upon, at least in part, one or more physical conditions, denoted in
In some implementations and as discussed above, neural network driven reservoir modeling process 10 may simulate 202 the one or more reservoir models as shown in
In some implementations and as shown in
In some implementations, neural network driven reservoir modeling process 10 may control 204 or operate one or more components in a flowing system as shown in
For example and as shown in the example historical flow data of
Referring also to
Referring also to
In some implementations, neural network driven reservoir modeling process 10 may measure 216 reservoir data from the flowing system as shown in
In some implementations, neural network driven reservoir modeling process 10 may generate 200 the one or more reservoir models to include or support multiple categorical facies (e.g., point bar, overbank, etc.) and/or continuous attributes (e.g., porosity, sand fraction, etc.). For example, and referring also to
For each of the aforementioned attributes (e.g., categorical and facies), an additional infeasibility attribute may be generated which may represent the spatial distance from the attribute. For example, if a pixel location on a generated map is inside the attribute (e.g., facies) then the pixel location is considered feasible, i.e. the distance to that facies is 0. If the pixel location is outside the relevant facies, then the degree of infeasibility may be the distance to the nearest feasible pixel. In some implementations, this distance may be efficiently calculated for each attribute using the Euclidean Distance Transform. Referring also to
Referring also to
Referring also to
Neural network driven reservoir modeling process 10 may provide some important advantages in the deep learning-driven modeling approach over existing geostatistics methods including, but not limited to: (1) a wider range of facies patterns are produced in the resulting models and, therefore, a more realistic uncertainty space, because the GAN method uses a training library with varied examples, as opposed to a single training image used in Multi-point Statistics (MPS) modeling; (2) better facies geometry reproduction in 3D than MPS due to the learned representation of facies architecture in GAN; (3) flexibility to honor denser well data compared with Object-Based Modeling (OBM), given the fact that OBM performs data conditioning by Markov Chain Monte Carlo (MCMC) sampling that is slow or may fail to converge in case of dense conditioning data; (4) ability to train with non-stationary geological conceptual models (training images), and generate non-stationary realizations. As discussed above, the GAN can learn nonstationary multi-scale facies depositional trends from the training images, while MPS simulation requires stationary training image patterns for reliable statistical inference.
Referring also to
Client electronic device 38 may include a processor and/or microprocessor (e.g., microprocessor 5200) configured to, e.g., process data and execute the above-noted code/instruction sets and subroutines. Microprocessor 5200 may be coupled via a storage adaptor (not shown) to the above-noted storage device(s) (e.g., storage device 30). An I/O controller (e.g., I/O controller 5202) may be configured to couple microprocessor 5200 with various devices, such as keyboard 5204, pointing/selecting device (e.g., mouse 5206), custom device, such a microphone (e.g., device 5208), USB ports (not shown), and printer ports (not shown). A display adaptor (e.g., display adaptor 5210) may be configured to couple display 5212 (e.g., CRT or LCD monitor(s)) with microprocessor 5200, while network controller/adaptor 5214 (e.g., an Ethernet adaptor) may be configured to couple microprocessor 5200 to the above-noted network 14 (e.g., the Internet or a local area network).
The flowchart and block diagrams in the figures illustrate the architecture, functionality, and operation of possible implementations of systems and methods and according to various embodiments of the present disclosure. In this regard, each block in the flowchart or block diagrams may represent a module, segment, or portion of code, which comprises one or more executable instructions for implementing the specified logical function(s). It should also be noted that, in some alternative implementations, the functions noted in the block may occur out of the order noted in the figures. For example, two blocks shown in succession may, in fact, be executed substantially concurrently, or the blocks may sometimes be executed in the reverse order, depending upon the functionality involved. It will also be noted that each block of the block diagrams and/or flowchart illustration, and combinations of blocks in the block diagrams and/or flowchart illustration, can be implemented by special purpose hardware-based systems that perform the specified functions or acts, or combinations of special purpose hardware and computer instructions.
As used in any embodiment described herein, the term “circuitry” may comprise, for example, singly or in any combination, hardwired circuitry, programmable circuitry, state machine circuitry, and/or firmware that stores instructions executed by programmable circuitry. It should be understood at the outset that any of the operations and/or operative components described in any embodiment or embodiment herein may be implemented in software, firmware, hardwired circuitry and/or any combination thereof.
The terminology used herein is for the purpose of describing particular embodiments and is not intended to be limiting of the disclosure. As used herein, the singular forms “a”, “an” and “the” are intended to include the plural forms as well, unless the context clearly indicates otherwise. It will be further understood that the terms “comprises” and/or “comprising,” when used in this specification, specify the presence of stated features, integers, steps, operations, elements, and/or components, but do not preclude the presence or addition of one or more other features, integers, steps, operations, elements, components, and/or groups thereof.
The corresponding structures, materials, acts, and equivalents of means or step plus function elements in the claims below are intended to include any structure, material, or act for performing the function in combination with other claimed elements as specifically claimed. The description of the present disclosure has been presented for purposes of illustration and description, but is not intended to be exhaustive or limited to the disclosure in the form disclosed. Many modifications and variations will be apparent to those of ordinary skill in the art without departing from the scope and spirit of the disclosure. The embodiment was chosen and described in order to best explain the principles of the disclosure and the practical application, and to enable others of ordinary skill in the art to understand the disclosure for various embodiments with various modifications as are suited to the particular use contemplated.
Although a few example embodiments have been described in detail above, those skilled in the art will readily appreciate that many modifications are possible in the example embodiments without materially departing from the scope of the present disclosure, described herein. Accordingly, such modifications are intended to be included within the scope of this disclosure as defined in the following claims. In the claims, means-plus-function clauses are intended to cover the structures described herein as performing the recited function and not only structural equivalents, but also equivalent structures. Thus, although a nail and a screw may not be structural equivalents in that a nail employs a cylindrical surface to secure wooden parts together, whereas a screw employs a helical surface, in the environment of fastening wooden parts, a nail and a screw may be equivalent structures. It is the express intention of the applicant not to invoke 35 U.S.C. § 112, paragraph 6 for any limitations of any of the claims herein, except for those in which the claim expressly uses the words ‘means for’ together with an associated function.
Having thus described the disclosure of the present application in detail and by reference to embodiments thereof, it will be apparent that modifications and variations are possible without departing from the scope of the disclosure defined in the appended claims.
This application claims the benefit of U.S. Provisional application having Ser. No. 62/598,853 filed on Dec. 14, 2017 and U.S. Provisional application having Ser. No. 62/627,505 filed on Feb. 7, 2018, the entire contents of each are incorporated herein by reference in their entirety.
Filing Document | Filing Date | Country | Kind |
---|---|---|---|
PCT/US2018/065328 | 12/13/2018 | WO | 00 |
Number | Date | Country | |
---|---|---|---|
62598853 | Dec 2017 | US | |
62627505 | Feb 2018 | US |