Patent Publication Number: US-11651125-B2

Title: Determination of oil removed by gas via miscible displacement in reservoir rock

Description:
CLAIM OF PRIORITY 
     This application claims priority under 35 USC § 119(e) to U.S. Provisional Patent Application Ser. No. 62/720,161, filed on Aug. 21, 2018 and entitled “Determination of Oil Removed by Gas via Miscible Displacement in Reservoir Rock,” the entire contents of which are hereby incorporated by reference. 
    
    
     BACKGROUND 
     This disclosure relates to enhanced oil recovery from porous media, especially estimating recoverable quantities at various stages of enhanced recovery. 
     The production of oil from a subsurface reservoir can be categorized into three phases primary recovery, secondary recovery, and tertiary recovery. Primary recovery involves well bores that are drilled into an oil containing reservoir. Oil is recovered due to a driving force resulting from there being a higher pressure in the reservoir compared to a pressure in the well bore. Over time, reservoir pressure decreases with a concomitant decrease of this driving force to move oil towards to the well bore. In secondary recovery, brine is pushed into injection well bores to increase the reservoir pressure and restore a ‘driving force’ to push oil towards extraction wells, (this process is often referred to as water-flooding). The tertiary phase, often referred to as Enhanced Oil Recovery (EOR), attempts to recover oil that remains trapped in the pore space of the reservoir rock even after primary and secondary recovery. One common type of EOR method is gas injection (also called gas flooding), in which a gas is injected into the injection wells. A gas flood can be miscible (gas and oil mix) or immiscible (gas and oil remain separate phases) depending on the gas and oil fluid properties and reservoir conditions such as temperature and pressure. 
     Injection of miscible gases are used to maintain a reservoir pressure and are used as solvents to reduce interfacial tension between oil and water, and thus enhance displacement of hydrocarbons such as oil from water. Miscible injection is an economically viable process that significantly increases oil recovery from many different types of reservoirs. Miscible fluids that are used as solvents to increase oil recovery include carbon dioxide (CO 2 ), nitrogen (N), and other gases such as liquefied petroleum gas (LPG), propane, methane under high pressure, and methane that is enriched with other hydrocarbons. 
     SUMMARY 
     According to an aspect, a computer implemented method for determining an amount of oil recoverable from porous reservoir rock by a miscible gas flood includes identifying locations of oil within a volume of voxels representing an original state of the porous reservoir rock, identifying locations of gas within the volume of voxels representing the original state of the porous reservoir rock, and determining voxels within the volume where oil is either coincident with gas or is connected to gas by a continuous oil path to estimate the amount of oil that is recoverable from the porous reservoir rock. 
     Aspects also include computer program products on non-transitory computer readable medium and data processing systems such as computers. 
     The following are some of the additional features of one or more of the above aspects. 
     Identifying locations of oil further includes executing a first numerical multiphase flow simulation to obtain predictions of flow behavior of oil in the presence of a waterflood of the porous reservoir rock; and wherein identifying locations of gas further includes executing a second numerical multiphase flow simulation to obtain predictions of flow behavior for a gas flood of the porous reservoir rock. 
     The amount of recoverable oil removed by a direct displacement is determined based on voxels within the volume where oil is coincident with the gas. The amount of recoverable oil removed by extraction and swelling is determined based on voxels within the volume where oil is connected to the gas by a continuous oil path. The aspect(s) further include generating a digital representation from data corresponding to a three dimensional imaging of the porous reservoir rock. The aspect(s) further include analyzing the digital representation to determine characteristics of a pore space network within the digital representation. Determining voxels within the volume where oil is coincident with the gas includes performing a logical AND operation on data representing the state of the pore space after the waterflood stage and the state of the pore space after the gas flood stage. Determining voxels within the volume where oil is connected to the gas by a continuous oil path includes identifying voxels that have oil and are in a direct displacement and identifying voxels that have connected hydrocarbon phases to one or more of the voxels within the volume where oil is coincident with the gas. 
     The foregoing and other embodiments can each optionally include one or more of the following features, alone or in combination. The amount of oil removed by direct displacement may be determined based on locations within the volume where oil is coincident with the gas. The amount of oil removed by extraction and swelling may be determined based on locations within the volume where oil is connected to the gas by a continuous oil path. 
     Other features and advantages will be apparent from the following description, including the drawings, and the claims. 
     The details of one or more embodiments of the subject matter of this specification are set forth in the accompanying drawings and the description below. Other features, aspects, and advantages of the subject matter will become apparent from the description, the drawings, and the claims. 
    
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
         FIG.  1    depicts a system for simulation of a waterflood and a gas flood with an estimation engine to determine an amount of oil removed (recoverable) by a miscible gas flood in a subsurface reservoir. 
         FIG.  2    depicts a flow chart showing operations for estimating recoverable oil by miscible gas flood in the subsurface reservoir. 
         FIG.  3    depicts a graph showing oil recovery as a function of injection for a laboratory study (prior art). 
         FIG.  4    depicts a graph showing relative permeability from simulation of a waterflood followed by a gas flood. 
         FIG.  5    is a flow chart showing operations for estimating recoverable oil. 
         FIG.  6    is a diagrammatical view of residual oil remaining after a waterflood that is followed by a gas flood. 
         FIGS.  7 A- 7 D  are views of a pore network showing residual oil after waterflood, a gas flood, direct displacement and after swelling and extraction. 
     
    
    
     DESCRIPTION 
     Referring to  FIG.  1   , a system  10  that simulates miscible gas flooding for determining an amount of oil removed by the miscible gas flood in subsurface reservoir is shown. The system  10  in this implementation is based on a client-server or cloud based architecture and includes a server system  12  implemented as a massively parallel computing system  12  (stand alone or cloud-based) and a client system  14 . The server system  12  includes memory  18 , a bus system  11 , interfaces  20  (e.g., user interfaces/network interfaces/display or monitor interfaces, etc.) and a processing device  24 . In memory  18  are a 3D imaging engine  32  that generate a digital representation of a porous reservoir rock formation and an image analysis engine  32   b  that determines characteristics of the geometry of a pore space network in the porous reservoir rock formation from analysis of the digital representation of the porous reservoir rock formation. Also in memory is a simulation engine  34  that executes a numerical multiphase flow simulation for various saturation values to obtain predictions of flow behavior including relative permeability as a function of saturation through the digital representation of the porous reservoir rock formation. In some embodiments, simulating multi-phase flow behavior occurs through a reservoir rock adjacent a gas or oil well (e.g., drilling rig  37 ). 
     The digital representation of the porous reservoir rock formation and the image analysis conducted by engines  32   a ,  32   b , respectively, which are used to determine the characteristics of the pore space network can be third party applications that are executed on a different system than server  12 . The system  10  merely requires the digital representation of the formation and the analysis of the pore space network available as input to the simulation engine  34 . One approach to provide the digital representation  32 ′ of the reservoir rock sample is to obtain the representation  32 ′, for example, from a 3D imaging of the porous reservoir rock formation that is generated from a micro CT scan of reservoir rock sample(s). 
     The memory  18  also stores parameters used by the engine  32 , such as grain surface properties obtained by assigning mineral types  33   a  to the grains to determine the surface properties for each of those mineral types, and surface texture and roughness properties. The memory  18  also stores parameters such as fluid properties  33   b , e.g., fluid density and viscosity of each expected fluid, (e.g., two or more of water, gas, oil) and fluid-fluid interfacial tension properties. The memory  18  also stores parameters such as chemical composition data  33   c  of the fluids and affinity data  33   d  of the fluid components for the particular mineral types. The memory  18  also stores disjoining pressure  33   e  for each mineral type in combination with the fluids, and a selected  33   f  aging time used by the aging engine  32 . In addition, reservoir pressure and temperature data are also stored. The mineral types evaluated can be those found or expected at the actual site of the reservoir. 
     The simulation engine  34  includes a module  34   a  to set up the reservoir rock sample simulation environment, a module  34   b  to perform pore-scale numerical simulation of a waterflood, a module to perform a gas flood, and a module  34   c  to calculate to determine how much oil is produced by the gas flood, and how much of that produced oil is due to direct displacement versus extraction and swelling. The system  10  accesses a data repository  38  that stores 2D and/or 3D meshes, coordinate systems, and libraries that can be used in the simulations using any well-known computational technique such as computational fluid dynamics or the so called Lattice Boltzmann method. 
     Referring now to  FIG.  2   , a process  40  to determine amount of oil removed by the miscible gas flood in subsurface reservoir is shown. Upon receiving or retrieving a digital representation of the pore space and grain space of a reservoir rock sample, the simulation engine  34  sets up input parameters and conditions  42  to perform a pore-scale numerical simulation of a waterflood on a first, typically original state of the porous medium (or media). The simulation engine  34  using the set up simulation environment, performs  43   a  a pore-scale numerical simulation of a waterflood. Upon performing the waterflood  43   a , the simulation engine  34  stores  43   b  the state of the pore space in memory and performs a gas flood simulation  44   a  using the same first, typically original state of the porous medium (or media). Upon performing the gas flood  44   a , the simulation engine  34  also stores  44   b  the state of the pore space in memory after performance of the gas flood simulation  44   a.    
     Using results of the simulation of the gas flood, the estimation engine  35  that can be part of the simulation engine calculates  46   a  an amount of oil that is recovered by the gas flood due to direct displacement and calculates  46   b  the amount that is recovered due to extraction and swelling. The system  10  will be described as using the LBM technique for conducting the waterflood and gas flood simulations, however as mentioned above, any of the various well-known computational techniques in computational fluid dynamics can be used. 
     For explanatory purposes a brief description of multiphase simulations is provided using the “Lattice Boltzmann Method” (LBM) for fluid flow simulation. Unlike other Computation Fluid Dynamic techniques that numerically solve conservation equations of macroscopic properties (i.e., mass, momentum, and energy), the LBM technique models fluids as “particles”, and such particles perform consecutive propagation and collision processes over a lattice mesh made up of voxels. Voxels can be of different sizes and serve as basic unit area of fluid flow analysis. Voxels are associated with characteristics that describe the state of a fluid in a particular region (including, for example, velocity vectors that describe the velocity of the fluid in that region). During each time-step of a simulation, fluid may move from one voxel to another voxel according to the velocity vectors. Collision operators describe the effect of different fluids colliding due to the fluid movement. 
     The LBM technique can be implemented efficiently on scalable computer platforms and run with great robustness for time unsteady flows and complex boundary conditions. In one example, pore-scale multiphase fluid flow simulation results can be used to understand the fluid displacement mechanisms in reservoir rock. Micro-CT images of reservoir rock can be used to construct the geometry of the porosity that is used as input to each of the simulations. 
     The system  10  using the LBM technique determines, relative permeability and multi-phase flow through the porous media, which, in general, are dependent on various characteristics of the fluid-fluid-rock system, including rock surface properties, physical properties of each fluid, and flow conditions. One flow condition is the non-dimensional Capillary number (Ca) that represents the ratio of viscous forces over capillary forces, and is usually defined as the average fluid velocity times the viscosity of a reference fluid divided by the fluid-fluid interfacial tension. Another property is the wettability, which represents the preference of the rock surface for one fluid over another one, and manifests as a measurable property known as contact angle. 
     The system  10  when configured for conducting simulations of waterfloods and gas floods, is first configured for conducting the waterflood simulation on the original state of the porous medium, obtaining results, and subsequently conducting the gas flood simulation on the original state of the porous medium. 
     For simulating a waterflood, the simulation is set up as a two fluid simulation, with water being the one fluid that is injected into the pore space and oil being the other fluid. Simulating a waterflood process is essentially simulating a wettability alteration resulting from injection of water. The process is set up to be an iterative process where wettability alteration is performed followed by fluid phase redistribution. The process is repeated until the engine  34  determines that the wettability alteration converges (as measured by further repetitions not significantly changing the results (e.g., contact angles). The process  40  references an established threshold value that provides an amount by which a contact angle would need to vary to otherwise halt further iterations of wettability alternation simulations. One such process is disclosed in U.S. patent application Ser. No. 16/243,285, filed Jan. 9, 2019, entitled “DETERMINING FLUID FLOW CHARACTERISTICS OF POROUS MEDIUMS,” the entire contents of which are incorporated herein by reference. The wettability process uses a two-phase relative permeability (kr) process to determine how easily one fluid, e.g., oil, can be moved through the in the presence of another fluid, e.g., water. 
     Two-phase relative permeability is an important characteristic of hydrocarbon reservoir rocks and a crucial input to oil and gas reservoir modeling and simulation activities. One technique to determine two-phase relative permeability is disclosed in U.S. patent application Ser. No. 14/277,909, filed May 15, 2014 entitled “MASS EXCHANGE MODEL FOR RELATIVE PERMEABILITY SIMULATION” published as US-2014-0343858-A1 on Nov. 20, 2014, the entire contents of which are incorporated herein by reference. 
     The system  10  when configured for conducting simulations of waterfloods and gas floods, may also track blobs in the formation. One technique to determine two-phase relative permeability is disclosed in U.S. patent application Ser. No. 14/660,019, filed Mar. 17, 2015 entitled “FLUID BLOB TRACKING FOR EVALUATION OF MULTIPHASE FLOW SIMULATIONS” published as US-2015-0268080-A1 on Sep. 24, 2015, the entire contents of which are incorporated herein by reference. 
     Upon performance of the waterflood simulation, the gas flood simulation is conducted. The simulation engine  34  is thus configured for conducting the gas flood simulation from the state of the original porous medium, e.g., the state of pore space prior to the waterflood simulation, with residual water in the pore space being one of the fluids and hydrocarbon (miscible gas+oil) being the other fluid. The gas flood simulation is conducted using the techniques discussed above, except that the simulation is configured for the hydrocarbon (combined quantities of injected gas and oil) and the residual water. 
     While exemplary simulation techniques for the waterflood and gas flood simulations have been described above, it is understood that these are exemplary. Thus in some implementations of estimating a predicted amount of potential oil recovery due to EOR techniques, other simulation techniques could be used. In addition, in some embodiments, actual field data of the state of a pore space can be used in lieu of conducting simulations. 
     The recovery of additional oil by a miscible gas flood occur by two pore-scale mechanisms. One mechanism is direct displacement, where oil is directly contacted by the injected gas, and the oil is quickly dissolved and swept away by the flowing gas. Another mechanism is extraction and swelling. Extraction and swelling is a relatively slower process than direct displacement. Extraction and swelling is a process in which oil that is connected by an oil path to the flowing gas eventually reaches the gas and dissolves into it. This process requires a diffusive mixing of fluids in which gas molecules enter the oil phase and oil molecules enter the gas phase. Gas phase which contains oil molecules is also called rich gas. 
       FIG.  3    shows pore-scale diagrams of these two mechanisms (bottom) and an example plot of oil recovery during a waterflood followed by a gas flood, taken from https://petrowiki.org/Miscible_flooding (prior art). The graph shows a plot of percentage of Original Oil in Place (OOIP) vs. total pore volumes injected. The schematics at the bottom of  FIG.  3    illustrate pore-level recovery mechanisms for each of a waterflood phase, an early miscible (or gas) flood stage, and a late miscible flood stage showing that some of the oil is recovered by displacement by solvent and some of the oil is recovered by extraction and swelling. 
     At the end of the waterflood, in the example, the residual oil is a discontinuous phase that occupies approximately 40% of the pore space. Early in the miscible flood [3.0 to 3.5 total pore volumes (PV) injected], some of this oil has been miscibly displaced by solvent (gas) from the higher-permeability flow path (on the pore scale). However, some oil also has been initially bypassed by solvent (gas). As depicted in the schematic view, late in the waterflood (to 7.0 total PV injected), part of the locally bypassed oil is subsequently recovered by extraction and swelling that takes place as solvent continues to flow past the bypassed oil. (The above discussion of  FIG.  3   , adapted from https://petrowiki.org/Miscible_flooding (prior art)). 
     Thus as shown in  FIG.  3   , the displacement process of a gas flood involves three types of fluid: water, oil, and gas. 
     As used herein assuming full miscibility of oil and gas, the oil and gas hydrocarbons mix and for the purposes of the described simulations, the oil and gas mix will be considered as a single hydrocarbon phase. This assumption reduces a three-phase flow simulation to a two-phase flow simulation of water and hydrocarbon (oil and gas that is treated as a single phase). 
     Referring to  FIG.  4   , an example of a set of relative permeability curves resulting from a pore-scale numerical simulation of a water flood (solid lines) followed by a gas flood (dashed lines) is shown. In the water flood procedure (narrow black lines), water displaces oil and water saturation increases (left to right) until no more oil can be displaced. For the gas flood procedure (wide black lines), gas and oil are treated as a single hydrocarbon fluid, and the water saturation decreases, as gas is injected and the combined gas-oil phase displaces water. 
     However, it is not straightforward to know from these results how much oil was produced during gas injection, because gas and oil are modeled as one fluid phase in the simulation. While the amount of oil produced by the waterflood is clear, it would be valuable to also be able to determine how much oil is produced by the gas flood, and how much of that produced oil is due to direct displacement versus extraction and swelling. 
     Referring to  FIG.  5   , a process  50  to estimate amounts of oil recovered by the gas flood stage and the amounts of that recovered oil that result from direct displacement versus extraction and swelling is shown. The process  50  is performed by one or more computer systems including memory and processors, as shown in  FIG.  1   . 
     Fluid data are loaded and the simulation space is configured for a waterflood simulation  51 . For example, a digital representation based on 3D imaging of the porous reservoir rock is used and connectivity information is derived from an analysis of the digital representation that determines the geometry of the porous space. A mesh (or a lattice grid) is affixed to the digital representation of the pore space. The mesh is comprised of voxels that represent values on the mesh in three-dimensional space. For each voxel within the mesh, there is a density for each phase (e.g., a density for water and a density for the hydrocarbon (oil only at this stage)). 
     A waterflood is performed  52 . The waterflood can be a physical waterflood of a reservoir rock formation or a numerical simulation of the reservoir rock formation or another technique that leaves in the pore space a water background and remaining oil. The state of the pore space after the waterflood stage is determined  54  by any one of physical imaging or numerical simulation techniques or another technique. The loaded fluid data are for example from results of an actual waterflood or a simulation of a waterflood. A simulation of a waterflood would include a flow simulation through a digital representation of the pore space based on the 3D imaging of the porous reservoir rock. Connectivity information would be derived from an analysis of the digital representation that determines the geometry of the porous space. 
     From either the flow simulation or the actual waterflood data, a state matrix is built  55   a . The state matrix identifies which cells in the simulation or actual waterflood data (derived from imaging) are identified as being part of which phase. Identifying the phase of the cell in the matrix can include comparing the density of the phases in the voxel for waterflood simulation. For example, if a cell is mostly water but contains a little oil, then the density of the water in the cell will be much higher than the density of the oil. An Atwood number can be calculated for each voxel. The Atwood number can be used to determine a weighting of how much of each phase is present in the voxel. From these data, oil blobs are identified  55   b . Oil blobs (or blobs) are made up of voxels that include the target phase, here oil, and are in contact on at least one side. Blobs can be identified by employing a filling algorithm on voxels that are identified as including the target phase. 
     Thus, at this junction after the waterflood there is a state of the pore space of blobs and pore space that is saved  55   c  in computer memory. These data are processed during the simulation, and the data can include information such as blob identification numbers, blob volumes, blob locations, and other characteristics. These data can be processed to generate graphical output (for example, the depiction shown in  FIG.  7 A  (discussed below). The processed data will also indicate where there are blobs of oil that are trapped. Trapped blobs may refer to oil in pore spaces that cannot be moved because of capillary forces. 
     The state of the pore space after the waterflood stage is stored  55   c  in computer memory as a data structure. Any of several data structure types could be used, or the data could be stored as graph structures, flat files, in databases, etc. The state of the pore space comprises location information and whether or not oil is present in each voxel after the waterflood stage. 
     A gas flood stage involves loading fluid data and configuring the simulation space for a gas flood  56  (using the state of the pore space at  55   c ). The gas flood stage uses a gas, as a solvent, which gas is any one of the gases commonly used for gas flooding, as explained above (other gases that could be used as the solvent). The gas flood stage is performed  58 . The gas flood can be a physical gas flood of a reservoir rock formation or a numerical simulation of the reservoir rock formation or another technique that leaves a gas background, trapped oil and displace-able oil. 
     The state of the pore space after the gas flood stage is determined  60  by any one of physical imaging or numerical simulation techniques or another technique and is stored in computer memory. These data are processed during the gas flood stage simulation, and the data can include information such as the blob identification numbers, the blob volumes, the blob locations, and other characteristics. These data can be processed to generate graphical output (for example, the depiction shown in  FIG.  7 B  (discussed below). The processed data will also indicate where there are blobs of hydrocarbon (oil and gas) that are trapped. Trapped blobs may refer to hydrocarbon (oil and gas) in pore spaces that cannot be moved because of capillary forces. As mentioned there are only two phases (gas and oil) involved in the gas flooding stage. Because when I read the paragraph, I feel the reader may think there are three phases here (gas, oil and water). 
     The state of the pore space after the gas flood stage is stored in computer memory as a data structure and can include building a state matrix  62   a , identify oil blobs  62   b  and store  62   c  the state of the state space in memory. Any of several data structure types could be used, or the data could be stored as graph structures, flat files, in databases, etc. The state of the pore space comprises location information and whether or not hydrocarbon (oil and gas) is present in each voxel after the gas flood stage. 
     Subsequent to the analysis performed after the gas flood stage, the data from the waterflood stage (the state of the pore space after a waterflood simulation) and the data from the gas flood stage (the state of the pore space after gas flood simulation) are processed  63  to estimate amounts of oil recovered by the gas flood stage. 
     The amount of oil recovered from direct displacement can be calculated by performing  65  a logical “AND” operation on data representing the state of the pore space after the waterflood stage and on data representing state of the pore space after the gas flood stage. That is, performing the logical operation AND operation involves evaluating voxels V i,j,k  at the end of waterflood stage that have oil (can be indicated by a logical 1 value in the state matrix), which are “ANDed” with the state of those voxels V i,j,k  at the end of gas flood stage that have the gas. That is, direct displacement involves oil that is removed by the injected gas at locations where there is both remaining oil (after waterflood) and injected gas (after gas flood) as shown in  FIG.  7   c    (discussed below). Thus any voxel that has combined oil and gas, i.e., hydrocarbon that voxel V i,j,k  will be considered to have contributed its oil to oil recovery at the direct displacement stage. 
     The amount of oil can further be estimated by knowing the volume of a given voxel and for each of the voxel having oil and oil added the volumes of those voxels to produce a volume estimate. The estimate can be further refined by taking into consideration the density of the contents of each voxel, with voxels that have higher densities being predominantly water vs. voxels having lower densities being predominately hydrocarbons. 
     The state of the pore space after determining the amount of oil recovered from direct displacement is stored  66  in computer memory as a data structure. Any of the several data structure types discussed above could be used. The state of the pore space comprises location information and whether or not oil in given voxel was displaced. 
     To estimate amounts of oil recovered by extraction and swelling after the gas flood stage the state of the pore space after the gas flood stage (the state of the pore space after gas flooding) is analyzed to identify  67  any blobs that were recovered and which had connected hydrocarbon phases that were not contained in the estimated recovery by direct displacement. Thus a voxel V i+n,j+o,k+p  will be considered to have contributed its oil to oil recovery at the extraction and swelling stage if voxel V i+1,j+1,k+1  is connected to V i,j,k  and voxel V i,j,k  had contributed its oil to oil recovery at the direct displacement stage, where i+n, j+o, k+p are indices of arbitrary locations relative to voxel V i,j,k . 
     The amount of oil recovered by extraction and swelling after the gas flood stage can further be estimated by knowing the volume of a given voxel and for each of the voxels having oil and gas added the volumes of those voxels to produce a volume estimate. The estimate can be further refined by taking into consideration the density of the contents of each voxel, with voxels that have higher densities being predominantly water vs. voxels having lower densities being predominately hydrocarbons. The process  50  can then store state space after calculated oil quantity from extraction and swelling  68 . 
       FIG.  6    shows an illustrative view of a three dimensional (3D) distribution of oil in pore space after a waterflood, as would be predicted by a pore-scale numerical simulation. 
     Referring now to  FIGS.  7 A- 7 D , these figures are two dimensional views that show rock generally  70  in different stages of oil recovery. The pore space  70  is present in reservoir rock that is indicated as very dark grey areas  72 . 
       FIG.  7 A  shows the pore space  70  with water indicated as moderately dark grey water background  74  and remaining oil indicated as lighter outlined grey areas S α , at the end of a waterflood within the water background  72 , as determined by any one of physical imaging or numerical simulation, or another technique. 
       FIG.  7 B  shows where in this pore space  70  injected gas (white  76 ) flows during an ensuing gas flood, as determined by physical imaging or numerical simulation or another technique. 
       FIG.  7 C  shows the amount of oil that is remove from the pore space by the miscible gas flood. Oil is removed by the injected gas at locations where there is both remaining oil (indicated as lighter outlined grey areas δS α ) and the injected gas (white  76 ) in the pore space  70 . 
       FIG.  7 D  shows gas phase and residual oil after swelling and extraction. During the extraction and swelling phase, after the direct displacement phase all remaining oil that was connected to the gas phase by an oil path is removed from the pore space  70 . These locations where remaining oil that was connected to the gas phase are located using a connectivity test. On the other hand, only isolated oil blobs that do not have an oil path connection to the gas will remain after extraction and swelling, as shown. 
     Thus, also referring back to  FIG.  7 C , the oil blob  75   a  was flushed out as it lied directly in the gas path. Bobs  75   b  and  75   c  were also removed as portions of those blobs also lied directly in the gas path, and remaining portions of those blobs were connected to the portions of the blobs and hence connected to or entrained by the gas stream. On the other hand isolated oil blobs  75   d ,  75   e  remain as these blobs did not have an oil path connection to the injected gas, and thus remain in the pore space  70  after extraction and swelling. 
     The amount of oil removed from the pore space by the miscible gas flood is determined by calculating the amount of oil that is recovered by direct displacement: oil is removed by the injected gas at locations where there is both remaining oil ((indicated as lighter outlined grey areas δS α )) and injected gas (white  76 ) as shown in  FIG.  7 C . 
     Extraction and swelling thus entails determining after direct displacement, all remaining oil connected to the gas phase by an oil path that can be removed from the formation. These locations can be found using a connectivity test (e.g., having common facets or faces of a voxel, etc.). Conversely, only isolated oil blobs with no oil path connection to the gas will remain after extraction and swelling, as indicated in  FIG.  7 D . 
     Embodiments of the subject matter and the operations described in this specification can be implemented in digital electronic circuitry, or in computer software, firmware, or hardware, including the structures disclosed in this specification and their structural equivalents, or in combinations of one or more of them. Embodiments of the subject matter described in this specification can be implemented as one or more computer programs (also referred to as a data processing program) (i.e., one or more modules of computer program instructions, encoded on computer storage medium for execution by, or to control the operation of, data processing apparatus). A computer storage medium can be, or be included in, a computer-readable storage device, a computer-readable storage substrate, a random or serial access memory array or device, or a combination of one or more of them. The computer storage medium can also be, or be included in, one or more separate physical components or media (e.g., multiple CDs, disks, or other storage devices). The subject matter may be implemented on computer program instructions stored on a non-transitory computer storage medium. 
     The operations described in this specification can be implemented as operations performed by a data processing apparatus on data stored on one or more computer-readable storage devices or received from other sources. 
     The term “data processing apparatus” encompasses all kinds of apparatus, devices, and machines for processing data, including by way of example: a programmable processor, a computer, a system on a chip, or multiple ones, or combinations, of the foregoing. The apparatus can include special purpose logic circuitry (e.g., an FPGA (field programmable gate array) or an ASIC (application specific integrated circuit)). The apparatus can also include, in addition to hardware, code that creates an execution environment for the computer program in question (e.g., code that constitutes processor firmware, a protocol stack, a database management system, an operating system, a cross-platform runtime environment, a virtual machine, or a combination of one or more of them). The apparatus and execution environment can realize various different computing model infrastructures, such as web services, distributed computing and grid computing infrastructures. 
     A computer program (also known as a program, software, software application, script, or code) can be written in any form of programming language, including compiled or interpreted languages, declarative or procedural languages, and it can be deployed in any form, including as a stand-alone program or as a module, component, subroutine, object, or other unit suitable for use in a computing environment. A computer program may, but need not, correspond to a file in a file system. A program can be stored in a portion of a file that holds other programs or data (e.g., one or more scripts stored in a markup language document), in a single file dedicated to the program in question, or in multiple coordinated files (e.g., files that store one or more modules, sub programs, or portions of code). A computer program can be deployed to be executed on one computer or on multiple computers that are located at one site or distributed across multiple sites and interconnected by a communication network. 
     The processes and logic flows described in this specification can be performed by one or more programmable processors executing one or more computer programs to perform actions by operating on input data and generating output. The processes and logic flows can also be performed by, and apparatus can also be implemented as, special purpose logic circuitry (e.g., an FPGA (field programmable gate array) or an ASIC (application specific integrated circuit)). 
     Processors suitable for the execution of a computer program include, by way of example, both general and special purpose microprocessors, and any one or more processors of any kind of digital computer. Generally, a processor will receive instructions and data from a read only memory or a random access memory or both. The essential elements of a computer are a processor for performing actions in accordance with instructions and one or more memory devices for storing instructions and data. Generally, a computer will also include, or be operatively coupled to receive data from or transfer data to, or both, one or more mass storage devices for storing data (e.g., magnetic, magneto optical disks, or optical disks), however, a computer need not have such devices. Moreover, a computer can be embedded in another device (e.g., a mobile telephone, a personal digital assistant (PDA), a mobile audio or video player, a game console, a Global Positioning System (GPS) receiver, or a portable storage device (e.g., a universal serial bus (USB) flash drive)). Devices suitable for storing computer program instructions and data include all forms of non-volatile memory, media and memory devices, including by way of example, semiconductor memory devices (e.g., EPROM, EEPROM, and flash memory devices), magnetic disks (e.g., internal hard disks or removable disks), magneto optical disks, and CD ROM and DVD-ROM disks. The processor and the memory can be supplemented by, or incorporated in, special purpose logic circuitry. 
     To provide for interaction with a user, embodiments of the subject matter described in this specification can be implemented on a computer having a display device (e.g., a CRT (cathode ray tube) or LCD (liquid crystal display) monitor) for displaying information to the user and a keyboard and a pointing device (e.g., a mouse or a trackball) by which the user can provide input to the computer. Other kinds of devices can be used to provide for interaction with a user as well; for example, feedback provided to the user can be any form of sensory feedback (e.g., visual feedback, auditory feedback, or tactile feedback) and input from the user can be received in any form, including acoustic, speech, or tactile input. In addition, a computer can interact with a user by sending documents to and receiving documents from a device that is used by the user (for example, by sending web pages to a web browser on a user&#39;s user device in response to requests received from the web browser). 
     Embodiments of the subject matter described in this specification can be implemented in a computing system that includes a back end component (e.g., as a data server), or that includes a middleware component (e.g., an application server), or that includes a front end component (e.g., a user computer having a graphical user interface or a Web browser through which a user can interact with an implementation of the subject matter described in this specification), or any combination of one or more such back end, middleware, or front end components. The components of the system can be interconnected by any form or medium of digital data communication (e.g., a communication network). Examples of communication networks include a local area network (“LAN”) and a wide area network (“WAN”), an inter-network (e.g., the Internet), and peer-to-peer networks (e.g., ad hoc peer-to-peer networks). 
     The computing system can include users and servers. A user and server are generally remote from each other and typically interact through a communication network. The relationship of user and server arises by virtue of computer programs running on the respective computers and having a user-server relationship to each other. In some embodiments, a server transmits data (e.g., an HTML page) to a user device (e.g., for purposes of displaying data to and receiving user input from a user interacting with the user device). Data generated at the user device (e.g., a result of the user interaction) can be received from the user device at the server. 
     While this specification contains many specific implementation details, these should not be construed as limitations on the scope of any inventions or of what may be claimed, but rather as descriptions of features specific to particular embodiments of particular inventions. Certain features that are described in this specification in the context of separate embodiments can also be implemented in combination in a single embodiment. Conversely, various features that are described in the context of a single embodiment can also be implemented in multiple embodiments separately or in any suitable subcombination. Moreover, although features may be described above as acting in certain combinations and even initially claimed as such, one or more features from a claimed combination can in some cases be excised from the combination, and the claimed combination may be directed to a subcombination or variation of a subcombination. 
     Similarly, while operations are depicted in the drawings in a particular order, this should not be understood as requiring that such operations be performed in the particular order shown or in sequential order, or that all illustrated operations be performed, to achieve desirable results. In certain circumstances, multitasking and parallel processing may be advantageous. Moreover, the separation of various system components in the embodiments described above should not be understood as requiring such separation in all embodiments, and it should be understood that the described program components and systems can generally be integrated together in a single software product or packaged into multiple software products. 
     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 reservoir 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.