Multi-phase flow visualizations based on fluid occupation time

Systems, methods, and computer program products can be used for visualizing the behavior of flow of two or more fluid phases, wherein a fluid phase behavior is represented in a visualization. One of the methods includes determining an occupation time, which is the amount of elapsed time from when a fluid phase first occupies a particular location until a second time. The method includes generating data for a visualization, with a location in the visualization corresponding to the particular location, and with the generated data for that location in the visualization indicating the occupation time.

BACKGROUND

Multi-phase or multi-component (from herein called: multiphase) flow is widespread in many engineering disciplines. In some cases, the geometry which defines the boundaries confining the multiphase flow are known precisely, such as a system of pipes or channels. Other scenarios involve highly random and complex geometry, such as the pore space network of a porous rock. One exemplary application of multiphase flow through such complex porous media is the study of oil and water flow in oil reservoir rock. A key property of this flow behavior is the “relative permeability” of each fluid phase, which characterizes how easily that phase moves through the rock for the specified conditions.

SUMMARY

In general, one innovative aspect of the subject matter described in this specification can be embodied in methods for the behavior of flow of two or more fluid phases, wherein a fluid phase behavior is represented in a visualization. The methods include the act of determining an occupation time, which is the amount of elapsed time from when a fluid phase first occupies a particular location until a second time. The methods also include the act of generating data for a visualization, with a location in the visualization corresponding to the particular location, and with the generated data for that location in the visualization indicating the occupation time.

The foregoing and other embodiments can each optionally include one or more of the following features, alone or in combination. The visualization of the fluid phase may include assigning a color based on the occupation time. The methods may include the act of at a third time subsequent to the second time, updating the occupation time to be the difference between the third time and the first, and updating the visualization based on the update occupation time. Locations in the visualizations associated with smaller amounts of occupation time, relative to other amounts of occupation time of other locations in the visualization, may be represented as a displacement front. The fluid phase may be a displacing phase, and locations with decreased amounts of occupation time, relative to other amounts of occupation time of other locations, may represent a displacement front. The methods may also include the act generating data for rendering a visualization of the displacement front. A fluid phase may be a water based or gas based fluid phase. The second time may be a current time. The location may be a location within or around a porous medium. The porous medium may be a rock. One of the two or more fluid phases may represent an oil based fluid phase. The location may be specified in a data set or in an image. The methods may include the acts of simulating, in a simulation space, flow of two or more fluid phases in a physical media. The visualization may be a visualization of simulation results. The location in the visualization may be a voxel, wherein each voxel in the visualization may be colored, and wherein a color of a particular voxel may be set according to the occupation time. The methods may include the act of rendering the visualization. The visualization may be included in a video or in a set of visualizations. The location in the visualization may represent a surface location.

DESCRIPTION

An especially important aspect of the relative permeability of oil/water flow in porous rock is the displacement behavior due to water flood when water pushes oil out of the rock. As for many engineering applications, the transition between two conditions is often the objective of experimental lab testing or numerical testing approaches. The rock sample is initially filled with oil. During the water flood, water is injected into the rock core and pushes oil out. The displacement process is highly complex and depends on many parameters, such as the pore space topology, viscosity ratio, Capillary number. The displacement through film growth competes with piston-like displacement (bulk pore volumes). Wettability plays another important role in the displacement dynamics.

The desire to optimize oil production and to minimize residual oil demands to fully understand and eventually control the displacement mechanism.

High fidelity computer simulation of flow in porous rock has recently become feasible due to advances in imaging, numerical methods, and high performance computing. The ability to perform multiphase flow simulations to accurately predict relative permeability for a reservoir rock sample is an active area of research and commercial interest. The approach of interest here involves first performing3D imaging of the porous rock to generate a digital representation, followed by image analysis to determine the geometry of the pore space network, and then numerical multiphase flow simulation for various saturation values to obtain predictions of flow behavior including relative permeability as a function of saturation. The flow simulation results can also be used to understand the details of the pore-scale multiphase flow dynamics which may provide insight suggesting approaches for how to modify the relative permeability vs saturation curve.

In one example, pore-scale multiphase fluid flow simulation results are used to understand the fluid displacement mechanisms in reservoir rock. Time dependent visualization is developed to give insight into the fluid-fluid interface movement at different values of a capillary number. Generally, a capillary number is a ratio of viscous to interfacial tension forces, usually expressed as Ca=V*U/I, where V=viscosity, U=velocity and I=interfacial tension. The flow simulations use a multi-phase lattice-Boltzmann method. Micro-CT images of Fontainebleau rock are used to construct the geometry used as input to the simulations. A flow rate is controlled to achieve a specified capillary number (for example 1e-5), where typically one of the fluids is chosen as the reference fluid for determining viscosity and velocity values. A visualization technique is applied to the results, in which one fluid phase (for example water) is given a color indicating local occupation time to highlight interface movement and help visually capture capillary events, i.e., fluid dynamics behavior occurring at the pore scale and driven by capillary forces. In some implementations, other visual indicators of occupation time can be used. For example, opacity, texture, etc.

Generally, a capillary force includes a force caused by interfacial tension, particularly important when there is a large surface to volume ratio; forces responsible for capillary action only occur when multiple fluid phases and a surface are present. Generally, pore-scale includes a scale of individual pores within a pore space of a porous material. Generally, when the surface attracts one phase more strongly than the other, they are referred to as the wetting phase and non-wetting phase. Generally, capillary events include snap-off of the non-wetting phase, retraction of the non-wetting phase, corner flow of the wetting phase, film swelling of the wetting phase, and Haines jumps.

The following describes an example occupancy time visualization. A clear difference of the water front shape (displacement front) is observed under different capillary number condition. With visualization of the water phase using the present invention, it is clearly seen that the fluid interface advancing speed varies with pore cross-section area and shape, where the fluid interface advancing speed indicates a speed of the leading interface when one phase is pushing another phase forward. Different fluid mechanisms in multiphase dynamic displacement under different capillary numbers are observed. The new visualization approach is able to capture interface movement and help understand pore-scale multiphase events.

One important aspect of simulating imbibition or drainage relative permeability simulations is to provide the ability to understanding the displacement process in great detail with the goal of better controlling the displacement and finally optimizing oil production. Some of the key questions are: How does water displace oil? Where does it go first? Why does it prefer a certain displacement path over another? To better analyze and understand the displacement process, each voxel in pore space obtains a new quantity which reflects the age of water or the age of oil assuming that a voxel can be marked as water or oil. In general, a voxel can be thought of as a representation of a particular location in the pore space. At a time, the voxel may be occupied by water, oil, or a combination of water and oil. As used herein, a voxel (location in pore space) that is occupied predominately by oil is referred to as an oil voxel, a voxel (location in pore space) that is occupied predominately by water is referred to as a water voxel. The age of the phase represents the amount of time passed from when a fluid phase first occupied a location.

For simplicity, the age of water will be explained. Modeling the age of oil can be performed using an analogous process. Initially, the pore space of the digital rock is filled with oil and some initial water. For all voxels (representing water and oil) the corresponding quantity to describe the age of water (from here on called: age) is set to 0. It is possible to distinguish between initial water and injected water. In some implementations, the age of injected water may be tracked separately from the age of initial water. In some implementations, the age of injected water and initial water are not tracked separately. As water is injected into the pore space, some oil voxels will change the property from oil to water (descriptively becoming water voxels). When that happens, the water age is set to 1. As the simulation continues, the age of each water voxel is incremented by a well-defined increment. For example, the water age is incremented by one each time a new measurement frame is written. A measurement frame may represent the passage of a predetermined amount of time. At a time during the simulation, it is possible to clearly identify the displacement front by filtering all voxels which have a water age of 1. Generally, a displacement front includes locations in the visualizations associated with least amounts of elapsed time. In cases where oil displaces local water, the age is reset to 0 or the predefined value for representing oil. It is also possible to filter pores (or pore voxels) which were water displaced before or after a certain time. So, in addition to a typical analysis where the oil-water distribution in pore space is analyzed, it is also possible to show locations in pore space where water was able to displace oil at a specific time in the past.

Referring toFIG. 1, diagram10illustrates results11of an example execution, by a data processing system12, of the algorithm (e.g., an aging algorithm) described above. The cells (e.g., cell13) indicate voxels of a pore space. At t=1 frame (portion11aof results11), the top two voxels are incremented because the voxels changed their property from oil to water going from frame0to frame1. The t=2 frame (portion11bof results11) shows that the displacement front progressed by one voxel at frame2. The voxels where the age was set to 1 in frame1are now incremented to 2. The t=3 frame (portion11cof results11) shows another frame where the displacement front has further progressed.

FIGS. 2A and 2Bare each a visualization of the fluid phases within the pore space. Referring toFIG. 2A, diagram14illustrates a comparison of the displacement of oil through water-flood for capillary number, Ca=1e-4, at a water saturation of exactly 24%. Referring toFIG. 2B, diagram16illustrates a comparison of the displacement of oil through water-flood for capillary number, Ca=1e-5, at a water saturation of exactly 24%. Both fluid phases, oil and water, can be visualized as inFIGS. 2A and 2Busing a spectrum of colors, opacity, shading, and/or texture to indicate the fluid phase of the voxel and the age of that phase. Accordingly, the volume is rendered with different opacity values, colors, and shading. In this example, oil is shown as the lighter shading and water is shown using darker shading. Other colors can be used, for example, oil can be shown in orange and can have a lower opacity compared to water. In one example, the color of water can range from purple to light blue. Purple can represent young water that has only recently displaced the oil in the location represented by the voxel, the displacement front, while light blue is old water and shows locations which were displaced by water far earlier in the simulation. Generally, a water injection plane is a top surface of a volume shown in each of diagrams14,16.

Referring toFIG. 3A, diagram100illustrates visualization102. In this example, visualization102is a visualization of a volume (e.g., a porous media such as a rock sample) that includes a fluid phase, e.g., oil, at a particular time or at an initial/starting time T, denoted as T=t0. A data processing system generates visualization102(and the other visualizations described herein) by processing data sets that specify coordinates of a particular location (e.g., a location in a porous media, a location in a rock sample, a location in a simulation space of a simulation, and so forth) and an attribute of that location (e.g., presence of oil, water, oil and water, or an absence of a fluid phase) at a particular time. In this example, the data sets include a plurality of records, with each record specifying coordinates for a particular location and an attribute of that location at a particular time. As described herein, these data sets are generated from results of performing simulations, from performing an X-ray of a physical media, from analyzing an image or from performing other imaging modalities on a physical media (e.g., a rock sample). Based on the processed data set, the data processing system generates or reconstructs visualizations of the locations represented in the data set. This reconstructed visualization includes a plurality of locations in the visualization, with each location in the visualization corresponding to a location in the data set. The data processing system sets a color for each location (e.g., voxel) in the visualization based on a mapping between various time or aging thresholds and various colors, opacity, textures, shading, etc.

In another example, visualization102is a visualization of a pore space that includes oil. In this example, visualization102shows where oil is in the pore space by coloring or shading portions of visualization102to represent the oil. For example, locations104,112,128(or a portion of locations104,112,128, respectively) of visualization102are shaded to represent the oil. In this example, each of locations104,112,128corresponds to a location specified in a data set (e.g., a data set of simulation results, an image data set generated by performing X-rays on porous media, and so forth). Generally, a correspondence includes a mapping of one location to another location, of one item of data to another item of data and so forth.

Referring toFIG. 3B, diagram110illustrates visualization116of the volume at a time that is subsequent to T=t0. This subsequent time is denoted as T=t1. In this example, visualization116is a variation of visualization102, e.g., by updating visualization102to account for the introduction of another fluid phase (e.g., water) into the pore space. Color of location112in visualization116is shaded to represent an amount of elapsed time from when water occupied a location corresponding to location112at a first time (e.g., an initial time or T=t0) until another time, e.g., a current time or T=t1. In this example, the shading in location112represents new water in a location of a physical media (e.g., a rock sample), an image or a simulation. Generally, new water includes water that has occupied a location for more than a threshold period of time, e.g., a new water threshold period of time, but less than another, longer threshold period of time (e.g., an old water threshold period of time, as described below). In this example, the coloring of locations104,128in visualization116remain the same and do not change, thereby representing that at time T=t1water has not yet entered the locations (e.g., the physical locations or the locations in a simulation) corresponding to locations104,128.

Referring toFIG. 3C, diagram120illustrates visualization122of the volume at a time that is subsequent to T=t1. This subsequent time is denoted as T=t2. In this example, visualization122is a variation of visualization1116, e.g., by updating visualization116to account for the introduction of more of the other fluid phase (e.g., water) into the pore space. Color of location112in visualization122is darkly shaded (other colors can be used such as a dark blue (or mostly dark blue), to represent an amount of elapsed time from when water occupied a location corresponding to location112at a first time (e.g., an initial time or T=t0) until T=t2). In this example, the dark blue color in location112represents old water, at T=t2, in a location of a physical media (e.g., a rock sample), an image or a simulation that corresponds to location112. Generally, old water includes water that has occupied a location for more than a threshold period of time, e.g., an old water threshold period of time. In this example, the coloring of location128in visualization122is changed to represent that water has entered the location (e.g., in the physical media) corresponding to location128. The coloring of location128specifies that the water in the physical location corresponding to location128is new water. The coloring of location104in visualization122remains unchanged (relative to visualizations102,116), thereby representing that at time T=t2water has not yet entered the location (e.g., the physical location or the location in a simulation) corresponding to location104.

As indicated earlier, many more scenarios can be investigated using the proposed aging process, by defining new quantities which reflect the age of a property or the age of a variation of the property, as shown below.

Tracking of the age of a density variation: Often, a quantity undergoes a slow change in time. For example, the transition of an oil voxel to a water voxel can take many frames. In each frame, a small amount of the oil density is reduced while the water density is increased. This may happen for a very slow moving slug, for a growth of a water film and many other possible scenarios. In this case the algorithm may be modified in the following way. Every density change is assigned a certain duration for which the density is visualized, for example 100 frames. For example, if the water density changes by 10% between certain 2 frames, that density variation can be weighted in such a way that the density contribution can be identified for the next 100 frames. The weight can be either constant or it can decay over time, e.g. over 100 frames. In that case, the “aging density variation” could be defined as: rho_delta_age=weight(t)*delta_rho where the weight is decaying with time, e.g. is reduced by 10% between 2 frames. That way, small, but important density changes can be visualized in a competitive way of bulk fluid displacement.

Another implementation can include tracking the age of a fluid touching a surface. For example, a system can model a typical aging process to restore a rock sample's wettability. In general, wettability is the tendency of one fluid to spread on, or adhere to, a solid surface in the presence of other fluids. For example, a water-wet rock sample can be initially filled with 100% water and then drained with oil. This has the ability to alter the wetting behavior of the surface of the rock. Initially, all surface elements are attributed to be water-wet. Once the property of voxels which are close enough to surface elements so that the surface elements is exposed to the oil-wet character of the oil voxel, the surface element undergoes an alteration of wetting behavior. Over time, the water-wet character of the surface element transforms into an oil-wet character. Once the surface element is exposed to the oil voxel, the surface element is assigned an age. The change of wettability from water-wet to oil-wet can be determined as a function of the age of the oil contact.

In general, a quantity (e.g. velocity, pressure, Atwood Number, and so forth) can be assigned, e.g., by the data processing system, an age and can undergo a corresponding analysis. Furthermore, derivatives of the change of quantities can be assigned an age and correspondingly tracked. For example, the detection of convergence may be a function of the speed a certain quantity changes—so, for example, the question may not be whether the difference of the velocity is below a certain threshold between two frames, but the question may be whether the change of the difference of the velocity between two frames change. The history of velocity change may be part of the convergence criterion.

FIG. 4is a flowchart of an exemplary process400, executed by a data processing system, for visualizing the flow of two or more fluid phases. Examples of fluid phases include hydrocarbon (or oil) and brine (or water). The process400may be performed by a data processing system that is configured to process instructions stored on a non-transitory computer readable medium.

The process400determines402an amount of elapsed time from when a fluid phase occupies a particular location (e.g., specified in a data set, of a porous media or rock sample, and so forth) at a first time until a second time. In some implementations, the first time may represent the time when the fluid phase first occupies the particular location. For example, the time that water first occupies a particular location. As described above, the fluid phase may be identified by looking at the fluid density of the location. At the time when the fluid density is crosses a particular threshold (indicating that the fluid in the location is predominately water) the process400identifies the time as the first time. In some implementations, the second time is the current time. In some implementations, the second time may be represented by frames in a fluid flow simulation. The amount of time can be determined based on a data set that specifies coordinates of a location of a fluid phase at a particular time, or can be determined based on a simulation of the flow of two or more fluid phases in a physical media. The data set can be based on images where the particular location is a location within the images. The data set can be a 4 dimensional data set.

The data processing system generates404data for a visualization. A location in the visualization corresponds to the particular location. The location in the visualization is colored with a color, selected from a set of colors, that represents the amount of elapsed time from then the fluid phase occupies the particular location at the first time until the second time.

The colors may be determined by the data processing according to a set of rules that specify a mapping between an amount of elapsed time and a color. For example, the colors can be selected by the data processing system according rules in a rule set, represented by the chart below:

In some implementations, a color may be used to represent locations that have not been occupied by the fluid phase. For example, orange may be used to represent locations that are occupied by oil.

The visualization can therefore be a visualization of the data or can represent the simulation results, for example, the particular location in the data may represent a voxel in a simulation space. In some implementations, the process400may further generate a second visualization of a fluid phase for a subsequent time where a location in the second visualization corresponds to the particular location. The location in the second visualization is colored with a color that represents the amount of elapsed time from then the fluid phase occupies the particular location at the first time until the subsequent time.

In some implementations, locations in the visualization associated with decreased amounts of elapsed time, relative to other amounts of elapsed time of other locations in the visualization, represent a displacement front. In some implementations, the decreased amounts of elapsed time are minimum amounts of elapsed time.

The fluid phase can be a water fluid phase, and the locations in the visualizations that are associated with the decreased amounts of elapsed time represent locations in a pore space at which water has been more recently introduced, relative to other locations in the pore space at which water has been introduced. The location can be a location within or around a porous medium, such as a rock.

In some implementations, the process or the data processing system can adjust (or cause adjustment, e.g., by sending instruction to an external device or entity to adjust) at least one of the fluid phases based on the visualization. The process400or the data processing apparatus can also include adjusting (or causing adjustment), based on the visualization, at least one of the two or more fluid phases by adjusting a rate at which fluid of the fluid phase is introduced to a pore space (or physical media, such as a rock sample) or by adjusting a location in the pore space (or physical media) at which the fluid of the fluid phase is introduced into the pore space.

The data processing system (or a client device) can render the visualization. In some implementations, data processing system (or a client device) can render a visualization of the displacement front. In some implementations, the process400can be used by the data processing system to generate a video that represents a set of visualizations using a variety of different time intervals.

FIG. 5is a flowchart of another exemplary process500for visualizing the flow of two or more fluid phases. The process500may be performed by a data processing system that is configured to process instructions stored on a non-transitory computer readable medium, e.g., such as a hardware storage device. The process500determines502an amount of elapsed time from when one or more characteristics of the fluid phase at a particular location satisfy one or more specified criteria at a first time until a second time. For example, the process500can determine an amount of elapsed time from when the velocity of a fluid phase crossed a threshold.

The process500generates504data for a visualization of the fluid phase, with a location in the visualization corresponding to the particular location, and with the location in the visualization being colored with a color from a set of colors representing the amount of elapsed time. In some implementations, a color may be used to represent locations do not satisfy the criteria (for example, orange).

FIG. 6is a flowchart of another exemplary process600for visualizing characteristics of a surface. The process600may be performed by a data processing system that is configured to process instructions stored on a non-transitory computer readable medium.

The process600determines602an amount of elapsed time from when a location of a surface (such as the surface of a rock or other porous medium) satisfies one or more specified criteria at a first time until a second time. For example, the process600can determine an amount of elapsed time from when a fluid phase came in contact with the surface at the particular location. In some examples, the surface is a surface of a porous media.

The process600generates604data for a visualization of the surface, with a location in the visualization corresponding to the particular location being colored with a color from a set of colors representing the amount of elapsed time.

Thus, particular embodiments of the subject matter have been described. Other embodiments are within the scope of the following claims. For example, any of the above techniques that are described with reference to a pore space can also be performed with reference to or with regard to a physical media, such as a rock sample. In some cases, the actions recited in the claims can be performed in a different order and still achieve desirable results. In addition, the processes depicted in the accompanying figures do not necessarily require the particular order shown, or sequential order, to achieve desirable results. In certain implementations, multitasking and parallel processing may be advantageous.