Abstract:
A method is disclosed of inverting three dimensional fluid property distribution. The method includes comparing a detected NMR signal with a plurality of modeled signal values derived from precomputed values of NMR signal contribution values at prechosen (T 1 , T 2 , D) value tuples; identifying one or more modeled signals satisfying domain constraints and in respect of which an objective function involving a respective detected NMR signal and a modeled signal is optimised; selecting one or more of the solutions resulting in optimised objective; and using each selected optimized solution to characterize the one or more properties of fluid in the formation. The method also includes processing the resulting solutions as e.g. graphical or tabular data. Also disclosed is apparatus for performing the method.

Description:
BACKGROUND OF THE INVENTION 
       [0001]    Disclosed herein generally are methods and systems for nuclear magnetic resonance (NMR) logging of subterranean formations, especially those containing fuel hydrocarbons in liquid or gaseous form; water; or brine. The invention concerns a method and apparatus for inverting three-dimensional fluid property distribution from NMR log data, especially pulsed NMR log data. 
         [0002]    As is well known the logging of subterranean formations represents an extremely important contribution to the search for and recovery of rock-borne hydrocarbons that provide overwhelmingly the most commonly exploited sources of energy and chemicals used by mankind. 
         [0003]    NMR logging in general has been in use for some decades. So-called “pulsed” NMR logging has been in widespread use since the 1990&#39;s. 
         [0004]    Broadly speaking in pulsed NMR logging a cylindrical logging tool is moved (supported e.g. on wireline, the nature of which is known to the person of skill in the art; or on drill pipe, the nature of which is also known to the person of skill in the art) along a borehole formed in a fluid-bearing formation. In some NMR logging tool designs the logging tool is periodically halted in the borehole and in some other designs the logging tool is capable of logging while it is moving. 
         [0005]    The logging tool includes one or more magnets the purpose of which is to emit a static magnetic field B 0  into the formation in which the logging tool is deployed. This aligns (polarizes) protons in fluid contained within pores in the formation from a random (resting) state to the direction of the imposed B 0  magnetic field. 
         [0006]    It takes a certain time for the protons to become aligned in this way following the application of the static magnetic field. This time is known as the longitudinal relaxation time, denoted T 1 . T 1  is sometimes called the “spin-lattice” relaxation time. 
         [0007]    Protons that are aligned to an imposed magnetic field will precess towards the un-polarized, random state if the field is removed. 
         [0008]    Precession of the protons gives rise to a detectable, decaying magnetic field. One or more antennae in the logging tool detect the decaying magnetic field, which is related to the T 1  time by a known expression. The antennae generate signals indicative of the detected magnetic field values. It is possible to calculate T 1  values based on the signals detected as a result of the decaying magnetic fields caused by precession of the protons. 
         [0009]    T 1  is a useful quantity that may be regarded as indicating the ease with which the protons become aligned in the static magnetic field. Thus T 1  is in part indicative of the extent to which the protons interact with the boundaries of pores in the formation. In turn this can provide indications of the sizes of the pores. T 1  also can be used to derive a measure of the viscosity of fluids contained within the pores. 
         [0010]    The logging tool also generates timed bursts (pulse sequences) of radio frequency (RF) energy that give rise to an oscillating magnetic field B 1 . This tilts the aligned protons perpendicular to the direction of the applied magnetic field and causes them to precess in phase to one another. This phenomenon is referred to as nuclear magnetic resonance. 
         [0011]    The duration and profile of the B 1  field bursts are carefully controlled. When a B 1  burst ends the logging tool antennae detect a signal, sometimes referred to as an echo, and generate an NMR signal indicative thereof. The time taken for the aforesaid signal to decay is referred to as the transverse relaxation time, denoted T 2 . 
         [0012]    T 2  is sometimes referred to as the “spin-spin” relaxation time. In practice in a logging tool a multi-stage burst is used because this tends to provide a series of readily detectable signal peaks (referred to as an “echo train”) from which the T 2  amplitude may be calculated. In particular an initial RF emission that causes tilting of the spin axes of the protons by π/2 degrees is followed by a series of emissions that cause tilting by π degrees. The decay following the latter is detectable and is measured by the logging tool in order to generate a series of signal amplitude peaks from which the value of T 2  can be derived. 
         [0013]    The transverse relaxation time T 2  while typically of shorter duration than the longitudinal relaxation time T 1  also can be used to derive pore size information and information on pore fluid characteristics such as viscosity. The amplitude of the T 1  and T 2  relaxation time signals can be employed to derive a measure of the porosity of the formation. 
         [0014]    The measurements taken using an NMR logging tool also can give rise to a coefficient of molecular diffusion (D) that in turn is useful in characterising the hydrocarbon-bearing fluids in the pores in the formation. 
         [0015]    Use of an NMR logging tool therefore in theory can give rise to a three-dimensional dataset consisting of values related to T 1 , T 2  and D. Such a dataset may be known as a three-dimensional kernel matrix where each entry corresponds to an NMR signal contribution from a unit of porosity for a specified (T 1 , T 2 , D) value tuple associated with a said entry. The signal contributions may be computed from fundamental equations that are well-known in the art. 
         [0016]    The process of converting signal amplitude data generated in a logging tool into meaningful information that can be interpreted by a geoscientist or log analyst is sometimes referred to as “inversion”. In many cases an aim of inversion is to uncover unknown physical properties from associated measurements. In the case of pulsed NMR interpretation, the goal of inversion is to find the fluid property distribution over the domain of (T 1 , T 2 , D) given the measured NMR log and knowing the underlying 3D kernel matrix. 
         [0017]    Up to the present time it has not been possible to perform inversion on the full three-dimensional matrix in an acceptable timescale, that is a timescale that is regarded as desirable in downhole situations. Until now it has on the contrary been necessary to process 3D NMR signal contributions “offline”, using inefficient non-linear optimisation techniques. 
         [0018]    For reasons associated with the character of the fluids undergoing assessment it is however desirable to analyse NMR log data in real-time or near real-time (i.e. a relatively short time after the data have been generated). 
         [0019]    Early in the development of pulsed NMR logging the computing power available either in on-board processing devices installed in the NMR logging tools, or in computers at surface locations and in communication with the logging tools, was not adequate to allow the inversion of large amounts of log data in real-time. 
         [0020]    As a result geoscientists have historically confined themselves to inverting either the two-dimensional matrix constituted by the T 1  and T 2  data or the two-dimensional matrix constituted by the T 2  and D data, at least when wishing to process the data in real-time or near real-time. 
         [0021]    More recently the ability of portable computers to resolve complex inversion problems has improved significantly. However real-time or near-real-time inversion of NMR measurements from three-dimensional kernel matrix has hitherto remained unattempted. Furthermore, characterization of inversion uncertainty due to the underdetermined nature of the NMR inversion problem has also remained unaddressed until now. 
         [0022]    U.S. Pat. No. 5,517,115 to Prammer teaches an NMR data analysis technique in which a priori information about the likely nature of an NMR signal is modeled in advance of NMR logging activity. The modeled information is used in a constrained selection to approximate fluid properties from two-dimensional NMR log data. 
         [0023]    Publication US 2013/0080058 discloses a method of processing log data obtained from three mutually orthogonal logging tool antennae but does not discuss the solution of NMR log inversion problems. 
         [0024]    “A global inversion method for multi-dimensional NMR logging” [Sun et al, Journal of Magnetic Resonance 172 (2005) 152-160] describes an inversion technique for multi-dimensional NMR log information. This publication teaches the solving of a composite three-dimensional kernel that models the magnitude of NMR echoes detected by a logging tool. 
         [0025]    U.S. Pat. No. 6,960,913 to Heaton contains a historical survey of single value decomposition (SVD) techniques for analysing NMR log data. The method claimed in U.S. Pat. No. 6,960,913 is stated to be independent of prior knowledge of fluid sample properties. 
         [0026]    U.S. Pat. No. 6,937,014 to Sun et al discloses a method for obtaining a multi-dimensional proton density from a system of nuclear spins. 
         [0027]    Other publications believed to be of background relevance to the field of the invention include patents nos. U.S. Pat. No. 7,034,528, U.S. Pat. No. 7,388,374, U.S. Pat. No. 7,538,547, U.S. Pat. No. 7,565,833, U.S. Pat. No. 8,044,662, U.S. Pat. No. 8,633,691, U.S. Pat. No. 8,643,363 and U.S. Pat. No. 8,736,263 together with “ A new inversion method for  ( T   2   , D ) 2 D NMR logging and fluid typing ” [Tan et al, Computers and Geosciences 51 (2013) 366-380]. 
         [0028]    An aim of the invention is to solve or at least ameliorate one or more problems of prior art logging tools and associated methods of the kinds described herein. 
       BRIEF SUMMARY OF THE INVENTION 
       [0029]    According to the invention in a first aspect there is provided a method of inverting three-dimensional fluid property distribution from NMR log data comprising the steps of: 
         [0030]    a) causing an NMR logging tool to move along a borehole in a fluid-containing formation; 
         [0031]    b) generating a static magnetic field and a sequence of magnetic pulses using the NMR logging tool such that the formation is subjected to static and pulsed magnetic energy emitted during movement of the NMR logging tool along the borehole; 
         [0032]    c) detecting a plurality of NMR signals (y) resulting from interaction between the emitted magnetic energy and protons in the formation; 
         [0033]    d) comparing the detected NMR signal values with a plurality of modeled signal values (ŷ) derived from precomputed values of NMR signal contributions, at points in the space spanned by T 1 , and T 2 , and diffusion values D; 
         [0034]    e) identifying one or more said modeled signal values (ŷ) in respect of which an objective function involving a respective detected NMR signal value (y) and a said modeled signal value (ŷ) is optimised; 
         [0035]    f) determining one or more optimal solution vectors φ corresponding to the optimized signal values (ŷ) at the aforesaid points in the space spanned by T 1 , T 2  and D; 
         [0036]    g) generating graphical, image log, tabular or digital information representative of the one or more properties of fluid in the formation; and 
         [0037]    h) displaying, printing, storing, transmitting or processing the graphical, image log, tabular or digital information. 
         [0038]    The method of the invention may also include the further step of i) storing one or more of the detected NMR signal values. 
         [0039]    The method of the invention through pre-computing of modeled signal values for the first time permits the rapid inversion of three-dimensional pulsed NMR signal contributions data (i.e. a 3D kernel matrix) of the kind explained herein. The method of the invention readily lends itself to linear programming techniques known in the art. The invention represents a significant step forward in the ability of geoscientists and log analysts to describe formation fluids based on NMR log data. 
         [0040]    In a preferred embodiment of the invention the method includes the step j) of precomputing values of NMR signal contribution values at (T 1 , T 2 , D) value tuples using the 3D kernel expression 
         [0000]        K   [T     1     ,T     2     ,D] ( t )= K   T     1   ( t ) K   T     2   ( t ) K   D ( t ) 
         [0000]    in which the value of each individual kernel of the kernel matrix at decay time t is given by 
         [0000]    
       
         
           
             
               
                 K 
                 
                   T 
                   1 
                 
               
                
               
                 ( 
                 t 
                 ) 
               
             
             = 
             
               1 
               - 
               
                 exp 
                  
                 
                   ( 
                   
                     - 
                     
                       
                         WT 
                         t 
                       
                       
                         T 
                         1 
                       
                     
                   
                   ) 
                 
               
             
           
         
       
       
         
           
             
               
                 K 
                 
                   T 
                   2 
                 
               
                
               
                 ( 
                 t 
                 ) 
               
             
             = 
             
               exp 
                
               
                 ( 
                 
                   - 
                   
                     t 
                     
                       T 
                       2 
                     
                   
                 
                 ) 
               
             
           
         
       
       
         
           
             
               
                 K 
                 D 
               
                
               
                 ( 
                 t 
                 ) 
               
             
             = 
             
               exp 
                
               
                   
               
                
               
                 ( 
                 
                   
                     - 
                     
                       1 
                       12 
                     
                   
                    
                   
                     y 
                     2 
                   
                    
                   
                     g 
                     2 
                   
                    
                   
                     t 
                     E 
                     2 
                   
                    
                   Dt 
                 
                 ) 
               
             
           
         
       
     
         [0000]    wherein γ is a fundamental property of the protons in the fluid in the borehole; g is the gradient of the static magnetic field; t E  is the inter-echo time as defined herein; and WT t  is the wait time for magnetization before the particular decay associated with time tick t occurs. 
         [0041]    By inter-echo time is meant the time between measurements of the decay curve. Typically the inter-echo time is the time between successive peaks in the decay curve. 
         [0042]    Optionally the method of the invention includes the step k) of storing the precomputed NMR signal contribution values at (T 1 , T 2 , D) value tuples as a three-dimensional matrix. 
         [0043]    Further optionally the step e) of identifying one or more said modeled signal values (ŷ) in respect of which an objective function involving a respective detected NMR signal value (y) and a said modeled signal value (ŷ) is optimised includes evaluating the expression o(y, ŷ)=∥y−ŷ∥ wherein y is the NMR signal detected in step c); and ŷ is the modeled counterpart signal derived from precomputed values of three dimensional NMR signal contribution values at (T 1 , T 2 , D) value tuples in step d). 
         [0044]    This aspect of the invention amounts to an optimisation step that readily lends itself to a linear programming approach therefore achieving global optimality in the solution and efficient runtimes contrarily to nonlinear optimization based approaches. The complexity of this optimization is a function of the problem size defined in terms of the size of the kernel matrix and the number of time stamps i.e. the complete discrete set of decay time ticks t. Whereas the number of time stamps is controlled by the application, the size of the precomputed kernel matrix may be pre-chosen. Kernel matrix size is typically determined by the desired resolution of the (T 1 , T 2 , D) domain. If such resolution prohibits fast optimization runtime, then effective data summary techniques on the kernel matrix values can be employed to circumvent the matrix size. This linear formulation permits the calculations forming part of the method of the invention to be completed in real-time or near-real-time. This is a particular advantage in the context of geological logging because it is usually strongly desirable to obtain log results as quickly as possible after log data are generated. 
         [0045]    Using the said precomputed kernel matrix, the modeled NMR signal values may be obtained using an equation of the form: 
         [0000]    
       
      
       ŷ=k·φ 
      
     
         [0000]    wherein k represents the kernel matrix of entries representing the signal contributions at pre-chosen (T 1 , T 2 , D) values and φ represents a said vector of property values of the fluid/formation system at the pre-chosen (T 1 , T 2 , D) (step 1) herein). Such an equation may be utilized to optimize any chosen objective function involving the measured NMR signal y and its modeled homologue ŷ. 
         [0046]    The result of this optimization thus is an optimal solution vector φ*. In a practical embodiment of the method of the invention plural instances of the solution vector φ* may be computed. 
         [0047]    Conveniently the solution vector φ optimizing the objective function o(y, ŷ) is constrained to take account of one or more physical requirements of the system under evaluation. Also conveniently the solution vector φ optimizing the objective function o(y, ŷ) is further constrained to take account of a tendency of the solution vector to form a smooth surface when viewed in a three-dimensional space. 
         [0048]    To this end the solution vector φ is constrained according to: 
         [0000]      φ i ≧0∀ i  
 
         [0000]      Σ i φ i ≦φ max   Σ 
 
         [0000]      |Σ {i|i is even and 1≦i≦|φ     s     |} φ i   s −Σ {i|i is odd and 1≦i≦|φ     s     |} φ i   s   |≦τ∀S  
 
         [0000]    where s indexes any particular subset in the chosen partitioning of the solution vector&#39;s complete dimension set; φ max   Σ  is the maximum total solution value and T is a chosen smoothness factor. 
         [0049]    Such constraints take account of physical truths of the system under evaluation, as set out in more detail below; and also take account of the tendency of fluid porosity values to form a smooth surface when viewed within a three-dimensional space as defined herein. 
         [0050]    The method of the invention may include the further step of m) determining upper and lower bounds on any dimension or sum of dimensions of any optimal vector φ* residing in the set of optimal solutions for φ optimizing the objective function o(y, ŷ). Thus the method of the invention includes defining an optimal solution space wherein each solution admits an optimal value for the chosen objective function and satisfies the constraints. Such upper and lower bounds amount to an interpretative benefit, and do not in themselves constrain the problem. 
         [0051]    Furthermore the upper and lower bounds determined in step m) advantageously can be employed to characterize the uncertainty associated with any calculated optimal solution for φ* indicating a formation porosity distribution over the points T 1 , T 2 , D (step n) herein). 
         [0052]    Additionally or alternatively the method may include the step of characterizing uncertainty of a calculated optimal vector φ* indicating a formation porosity distribution by seeking an optimal vector φ** the distance of which to φ* is maximal whereby to provide a measure of confidence in the respective optimal solutions φ* and φ**. 
         [0053]    Conveniently the method includes the steps p) of iteratively calculating a set of plural optimal solution vectors {φ* (n) } n  lying on the boundaries of the solution space and q) using the said set to provide one or more measures of confidence in any optimal solution. 
         [0054]    Preferably φ** is calculated (step r) herein) using the expression 
         [0000]    
       
         
           
             
               ϕ 
               ** 
             
             = 
             
               
                 argmax 
                 
                   ϕε 
                    
                   
                       
                   
                    
                   P 
                 
               
                
               
                 
                    
                   
                     ϕ 
                     - 
                     
                       ϕ 
                       * 
                     
                   
                    
                 
                 2 
                 2 
               
             
           
         
       
     
         [0000]    where P denotes the optimal solution space resulting from confining the solutions to the ones satisfying the constraints and admitting an optimal objective value. 
         [0055]    Further preferably the method of the invention includes the step s) of calculating φ* (n)  using the expression 
         [0000]    
       
         
           
             
               ϕ 
               
                 * 
                 
                   ( 
                   n 
                   ) 
                 
               
             
             = 
             
               
                 
                   arg 
                    
                   
                       
                   
                    
                   max 
                 
                 
                   ϕ 
                    
                   
                       
                   
                   ∈ 
                   P 
                 
               
                
               
                 
                    
                   
                     
                       ϕ 
                       - 
                       
                         
                           ( 
                           
                             
                               
                                 arg 
                                  
                                 
                                     
                                 
                                  
                                 min 
                               
                               
                                 
                                   
                                     
                                       ∑ 
                                       
                                         i 
                                         = 
                                         1 
                                       
                                       
                                         n 
                                         - 
                                         1 
                                       
                                     
                                      
                                     
                                       α 
                                       i 
                                     
                                   
                                   = 
                                   1 
                                 
                                 
                                   
                                     α 
                                     i 
                                   
                                   ≥ 
                                   0 
                                 
                               
                             
                              
                             
                               
                                  
                                 
                                   ϕ 
                                   - 
                                   
                                     
                                       ∑ 
                                       
                                         i 
                                         = 
                                         1 
                                       
                                       
                                         n 
                                         - 
                                         1 
                                       
                                     
                                      
                                     
                                       
                                         α 
                                         i 
                                       
                                        
                                       
                                         ϕ 
                                         
                                           * 
                                           
                                             ( 
                                             i 
                                             ) 
                                           
                                         
                                       
                                     
                                   
                                 
                                  
                               
                               1 
                             
                           
                           ) 
                         
                          
                         
                           ( 
                           
                             ϕ 
                             
                               * 
                               
                                 ( 
                                 i 
                                 ) 
                               
                             
                           
                           ) 
                         
                          
                         i 
                       
                     
                     = 
                     
                       
                         1 
                          
                         
                             
                         
                          
                         … 
                          
                         
                             
                         
                          
                         n 
                       
                       - 
                       1 
                     
                   
                    
                 
                 2 
                 2 
               
             
           
         
       
     
         [0000]    where P denotes the optimal solution space wherein any solution satisfies the domain constraints and admits an optimal objective value. 
         [0056]    The method may also use the said optimal on-boundary solution set in a further step of fluid type identification and quantification with uncertainty analysis (step t) herein). 
         [0057]    More specifically the step u) of defining the boundaries of the solution space containing the one or more optimal solutions may include iteratively determining at least one optimal vector φ** the distance of which from an optimal vector φ* is maximal, the method including iterating the determination of optimal vectors {φ* (n) } n  such that the span of their convex hull is maximized in each iteration, continuing the iterative process until the increase in new gained span of the convex hull of the generated optimal solution set {φ* (n) } n  becomes less than a respective predetermined amount; labeling each optimal solution in the generated solution set (i.e. defining the boundaries to the solution space) according to the fluid types present therein; and calculating the volume of each of the one or more fluid types in each of the enumerated optimal solutions (i.e. defining the convex hull of the solution space). Thus the method of the invention involves classifying fluids and quantifying their volumes using the solutions lying on the boundaries of the optimal solution space. This, in turn, allows for fluid classification and volume quantification under uncertainty of the inversion. This is somewhat in contrast to prior art algorithmic fluid typing and quantifying techniques based on deterministic inversion methods (i.e. producing a single solution and not accounting for uncertainty of the inversion). 
         [0058]    Alternatively the step of defining the boundaries of the solution space containing the one or more optimal solutions may include (step v) herein) selecting, based on prior domain knowledge, one or more extreme solutions guaranteed to lie outside the solution space; projecting the extreme solutions onto the solution space in order to define the boundaries of the space; labeling each optimal solution in the generated solution set defining the set of all boundaries to the solution space according to fluid types present therein; and calculating the volume of each of the one or more fluid types in each enumerated optimal solution in the optimal solution set {φ* (n) } n  collectively defining the boundaries of the solution space. 
         [0059]    Furthermore, quantification of the fluid volumes for each of the optimal solutions in the enumerated optimal solution set defining the boundaries of the solution space leads to a probabilistic characterization of the volume of any identified fluid type via analyzing the point set distribution over the solution space defined by the enumerated solution set defining its convex hull. 
         [0060]    Conveniently the method of the invention includes the step w) of using the identified and volume-quantified optimal on-boundary solutions to characterize the volumetric distribution of each identified fluid. 
         [0061]    The invention is also considered to reside in apparatus for performing a method as aforesaid. Thus in a further aspect of the invention there is provided apparatus for inverting 3-dimensional fluid property distribution from NMR log data comprising: 
         [0062]    a) an NMR logging tool that is capable of moving along a borehole in a fluid-containing formation, the NMR logging tool including one or more generators of a static magnetic field that are emissive into the formation; one or more generators of a sequence of magnetic pulses that are emissive into the formation; and one or more antennae that detect NMR signals resulting from interaction between the emitted magnetic energy and protons in the formation and generate NMR signals therefrom; and 
         [0063]    b) one or more programmable devices that is programmed to: 
         [0064]    c) compare the detected NMR signal values with a plurality of modeled signal values (ŷ) derived from precomputed values of NMR signal contributions at points in the space spanned by T 1 , T 2 , and D; 
         [0065]    d) identify one or more said modeled signal values (ŷ) in respect of which a an objective function involving a respective detected NMR signal value (y) and a said modeled signal value (ŷ) is optimised; 
         [0066]    e) determine one or more optimal solution vectors φ corresponding to the optimized signal values (ŷ) at the aforesaid points in the space spanned by T 1 , T 2  and D space; 
         [0067]    f) generate graphical, tabular or digital information representative of the one or more properties of fluid in the formation; and 
         [0068]    g) display, print, store, transmit or process the graphical, tabular or digital information. 
         [0069]    Further features of the apparatus of the invention are analogous to the aspects of the method of the invention as set out herein. 
         [0070]    For the avoidance of doubt, the programmable device forming part of the apparatus of the invention may be integral with the remainder of the apparatus; or may lie remote therefrom but nonetheless able to process signal data generated by the NMR logging tool. The programmable device may be connected to the remainder of the apparatus e.g. by way of a cable that transmits signals as described herein to the programmable device. Alternatively the programmable device may receive the signals through use of any of a range of wireless communication methods as will be known to the person of skill in the art. 
         [0071]    The method and apparatus of the invention beneficially provide an effective means of inverting three-dimensional NMR signal contributions data in a timescale that is acceptable in downhole logging applications, and without requiring excessive (costly) computing resources. 
         [0072]    The method and apparatus of the invention are applicable in a wide variety of NMR logging situations, including but not limited to those summarised herein. 
     
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
         [0073]    There now follows a description of preferred embodiments of the invention, by way of non-limiting example, with reference being made to the accompanying drawings in which: 
           [0074]      FIG. 1  is a schematic, simplified view showing operation of one form of NMR logging tool; 
           [0075]      FIG. 2  shows in outline form further apparatus forming part of the invention; 
           [0076]      FIG. 3  is an exemplary plot of the output of a typical NMR logging tool such as that shown in  FIG. 1 ; 
           [0077]      FIG. 4  is a representation of a three-dimensional fluid property distribution over T 1 , T 2  and D that interprets the output plot of  FIG. 3 ; and 
           [0078]      FIG. 5  illustrates in graphical form an expression that makes up the output plot of  FIG. 3  and that illustrates the fundamental equation relating the NMR measurements and the associated fluid properties to be inverted. 
       
    
    
     DETAILED DESCRIPTION OF THE INVENTION 
       [0079]    Referring to the drawings  FIG. 1  shows in a simplified form the nature and operation of one type of NMR logging tool  10 . 
         [0080]    Logging tool  10  as illustrated includes an elongate cylindrical body  11  that is inserted into, and may move along, a borehole  12  formed in a formation  13  it is required to assess e.g. from the standpoint of its ability to yield useful hydrocarbons. 
         [0081]    As is typically the case formation  13  is porous. A hydrocarbon-bearing fluid, or more typically a mixture of fluids, is distributed in the pores. Among other characteristics of the formation fluid it is desired to assess its hydrogen (proton) content and its viscosity. These parameters are important when making an assessment of the make-up of the formation fluid, and in particular whether it includes useable oil or gas. 
         [0082]    It is also desired to assess the porosity of the formation  13  itself. One reason for this is that porosity data can indicate whether the extraction of formation fluid(s) is likely to be straightforward or problematic. A formation porosity value also can be used to provide a volumetric estimate of formation fluid(s). Such estimating may include partitioning of different fluids into respective volumes. 
         [0083]    An NMR logging tool is able to assist in all such assessments as aforesaid. 
         [0084]    As best illustrated schematically in  FIG. 2  the NMR logging tool  10  is operatively connected, or at least is connectable, to communicate with a programmable device that in the embodiment shown takes the form of a personal computer  17  (although other forms of programmable device are possible within the scope of the invention).  FIG. 2  shows the logging tool  10  connected to the computer by wireline  18  that is paid out into the borehole  12  by way of per se known paying out and rewinding equipment  19 . 
         [0085]    As is known to the person of skill in the art numerous variations on the simple logging tool connection arrangement are possible.  FIG. 2  represents one exemplary and non-limiting way in which the logging tool  10  may communicate with a programmable device located at a surface location. 
         [0086]    It is not however essential that wireline is the chosen method of connection; or that the programmable device is located externally of the borehole  12  as shown. On the contrary it is possible for instance for the programmable device to be located partly or entirely in a downhole location, for example forming part of a logging or drill string. All such variants are within the scope of the invention. The programmable device does not have to be in the personal computer configuration shown. Moreover various wireless communication methods are possible for causing communication between the logging tool  10  and a remotely located programmable device  17  when it is not possible or desired to use wireline or a similar connecting cable. 
         [0087]      FIGS. 1 to 5  show a so-called pulsed NMR logging tool  10 . The principles of the invention as broadly stated herein are applicable to NMR logging tools other than of the pulsed type, although the techniques of the invention have been developed specifically with pulsed NMR logging tool characteristics in mind. 
         [0088]    The borehole  12  is shown in  FIG. 1  as a straight, parallel-sided, vertically extending bore. This however represents a highly idealized situation for illustration purposes. In practice the borehole  12  may not be vertical (and indeed may extend e.g. inclinedly or horizontally); it is unlikely to be completely straight; and so-called “squeezing” of the borehole walls or other forms of collapse may lead it not to be parallel-sided as illustrated. In consequence the rugose borehole shown in  FIG. 2  may therefore be a more realistic representation. The invention is applicable in respect of all boreholes in which an NMR logging tool is useable, including non-idealized boreholes such as those described above or shown in  FIG. 2 . 
         [0089]    The borehole  12  in the example shown is filled with borehole fluid  14  which may be a drilling mud, a chemical introduced into the borehole in order to achieve certain effects as will be known to the person of skill in the art, water, brine, oil, tar, one or more gases or (very commonly) mixtures and/or solutions of two or more of the aforesaid components. 
         [0090]    In use of the NMR logging tool  10  the cylindrical body  11  is conveyed inside the borehole e.g. supported on wireline or on drill pipe to a chosen location that can be identified by any of a range of techniques known to a logging tool operator. 
         [0091]    As explained hereinabove, the NMR logging tool  10  includes one or more magnets  16  the purpose of which is to emit a static magnetic field B 0  into the formation  13  as illustrated in  FIG. 1 . This magnetic field on emission aligns (polarizes) protons in the formation fluid from a random (resting) state to the direction of the imposed B 0  magnetic field. 
         [0092]    It takes a certain time for the protons to become aligned in this way following the application of the static magnetic field. This time is the longitudinal relaxation time T 1  described above. 
         [0093]    Following alignment the protons precess towards the un-polarized, random state in accordance with the known operational principles of NMR devices. 
         [0094]    Precession of the protons gives rise to a detectable, decaying magnetic field. One or more antennae in the logging tool  10  detect the decaying magnetic field, which is related to the T 1  time by a known expression. The antennae, which are omitted from the drawings for ease of study, generate signals (voltages) indicative of the detected magnetic field values. 
         [0095]    The logging tool  10  as explained also generates short bursts of RF energy that give rise to an oscillating magnetic field B 1 , tilting the aligned protons as previously explained and causing them to precess in phase to one another. 
         [0096]    The duration and profile of the B 1  field burst are carefully controlled, again as described above. A typical burst from one known NMR logging tool has a peak power in the tens of kW and an amplitude in excess of 1000 volts. Other burst parameters are possible depending on the design of the logging tool  10 , and its programming. Typically a series of bursts is used to give rise to an echo train. 
         [0097]    When each pulse of the B 1  burst ends the logging tool antennae detect a signal (echo), and generate NMR signals (voltages) indicative thereof. The T 2  relaxation time explained above can be derived from such signals, which usually are great in number. 
         [0098]    Following the generation of signals in the aforesaid manner the logging tool is moved to a fresh location in the borehole and the aforesaid steps repeated. Usually the logging tool is initially deployed to a maximal depth in the borehole and gradually withdrawn towards the surface, collecting and/or transmitting data each time it halts by way of the aforesaid sequence of steps or variants thereof. 
         [0099]    As noted the signals generated by the antennae can be modeled using a three-dimensional NMR signal contribution dataset (kernel matrix). Hitherto it has not been possible to invert the fluid property distribution given the three-dimensional data matrix and the measured NMR logs (signals) while simultaneously taking account of all three dimensions of the 3-tuple (T 1 , T 2 , D) without any a priori assumptions and/or in an acceptable timescale to provide real-time or near real-time logging. 
         [0100]    Processing of the signals generated by the NMR logging tool is carried out by the programmable device  17  in accordance with the method steps set out below. 
         [0101]    The fundamental equation relating the desired fluid properties (i.e., T 1 , T 2 , and D) to the measured NMR signal at any particular time tick is characterized via a linear map. In particular, the value of the NMR signal at any given time tick is modeled as the inner product of the kernel vector (linearly indexed kernel matrix) at the underlying time tick and the fluid property vector. 
         [0102]    For a fixed time tick t, the kernel vector, denoted k t =(k t,i ) i , may be precomputed from a known physical model. Each dimension i in the kernel vector is completely determined by a particular choice for the 3-tuple (T 1 , T 2 , D). More generally, given a sufficiently fine discretization of the 3D box (i.e., orthogonally delimited space) occupied by (T 1 , T 2 , D) then each dimension i serves as a linearized index for a particular 3D grid cell and k t,i  is directly computable from the value tuple (T 1 , T 2 , D) at the grid cell indexed by i and for time tick t. Formally, if ŷ t  stands for the modeled observation at time tick t and φ for the fluid property vector then, 
         [0000]        ŷ   t   =k   t ·φ=Σ i   k   t,i φ i  
 
       Optimization Objective 
       [0103]    Let y t  denote the tool-measured signal value at time tick t. As ŷ t  should, in theory, “mimic” y t  for all time ticks, we presume some objectively defined similarity (distance) function between the observed and modeled signals i.e., o(y, ŷ) where y=(y t ) t  and ŷ=(ŷ t ) t  Hence, the method of the invention seeks ŷ that minimizes o(y, ŷ) and therefore inferring the property vector φ is amenable to an optimization problem. 
         [0104]    Although the method of the invention is not bound to any particular choice of o(·), a preferred embodiment chooses o(y, ŷ)=∥y−ŷ∥ 1  i.e., the similarity between any two signals is assessed in terms of the first norm of their difference. 
       Optimization Constraints 
       [0105]    The solution vector φ must satisfy some a priori domain constraints. Since, for all indices i, φ i  represents a porosity value, we have φ i ≧0 ∀i. Furthermore, the sum of all porosities cannot exceed 100% by definition, i.e. Σ i  φ i ≦100. More generally, we denote the maximum total porosity value with φ max   Σ . 
         [0106]    In addition to the physical constraints above, experience suggests that fluid porosity values form a smooth surface when viewed within the 3D box over all values for (T 1 , T 2 , D). Smoothness constraints should therefore help refine further the set of all allowed solutions. 
         [0107]    Consider a 3D-equivalent representation of φ, i.e. φ=(φ i,j,k ) i,j,k . The first order-smoothness constraint may be defined as 
         [0000]    
       
         
           
             
                
               
                 
                   
                     ϕ 
                     
                       i 
                       , 
                       j 
                       , 
                       k 
                     
                   
                   - 
                   
                     ϕ 
                     
                       
                         i 
                         ′ 
                       
                       , 
                       
                         j 
                         ′ 
                       
                       , 
                       
                         k 
                         ′ 
                       
                     
                   
                 
                 
                   
                     ( 
                     
                       
                         T 
                         
                           1 
                           i 
                         
                       
                       - 
                       
                         T 
                         
                           
                             1 
                             i 
                           
                            
                           ′ 
                         
                       
                     
                     ) 
                   
                    
                   
                     ( 
                     
                       
                         T 
                         
                           2 
                           j 
                         
                       
                       - 
                       
                         T 
                         
                           
                             2 
                             j 
                           
                            
                           ′ 
                         
                       
                     
                     ) 
                   
                    
                   
                     ( 
                     
                       
                         D 
                         k 
                       
                       - 
                       
                         D 
                         
                           k 
                           ′ 
                         
                       
                     
                     ) 
                   
                 
               
                
             
             ≤ 
             δ 
           
         
       
     
         [0000]    for any two neighboring grid cells of indices (i,j,k) and (i′, j′, k′) in the 3D grid space i.e., ∥(i,j,k)−(i′, j′, k′)∥ ∞ =1 and where δ is a threshold defining the smoothness factor. The first-order smoothness constraint is defined by analogy to first-order function smoothness using the finite-difference instead of the exact derivative. A similar construction can be done for the second-order smoothness constraint to get 
         [0000]    
       
         
           
             
                
               
                 
                   
                     
                       
                         
                           
                             
                               ϕ 
                               
                                 i 
                                 , 
                                 j 
                                 , 
                                 k 
                               
                             
                             - 
                             
                               ϕ 
                               
                                 
                                   i 
                                   ′ 
                                 
                                 , 
                                 
                                   j 
                                   ′ 
                                 
                                 , 
                                 
                                   k 
                                   ′ 
                                 
                               
                             
                           
                           
                             
                               ( 
                               
                                 
                                   T 
                                   
                                     1 
                                     i 
                                   
                                 
                                 - 
                                 
                                   T 
                                   
                                     1 
                                     
                                       i 
                                       ′ 
                                     
                                   
                                 
                               
                               ) 
                             
                              
                             
                               ( 
                               
                                 
                                   T 
                                   
                                     2 
                                     j 
                                   
                                 
                                 - 
                                 
                                   T 
                                   
                                     2 
                                     
                                       j 
                                       ′ 
                                     
                                   
                                 
                               
                               ) 
                             
                              
                             
                               ( 
                               
                                 
                                   D 
                                   k 
                                 
                                 - 
                                 
                                   D 
                                   
                                     k 
                                     ′ 
                                   
                                 
                               
                               ) 
                             
                           
                         
                         - 
                       
                     
                   
                   
                     
                       
                         
                           
                             ϕ 
                             
                               
                                 i 
                                 ′ 
                               
                               , 
                               
                                 j 
                                 ′ 
                               
                               , 
                               
                                 k 
                                 ′ 
                               
                             
                           
                           - 
                           
                             ϕ 
                             
                               
                                 i 
                                 ″ 
                               
                               , 
                               
                                 j 
                                 ″ 
                               
                               , 
                               
                                 k 
                                 ″ 
                               
                             
                           
                         
                         
                           
                             ( 
                             
                               
                                 T 
                                 
                                   1 
                                   i 
                                 
                               
                               - 
                               
                                 T 
                                 
                                   1 
                                   
                                     i 
                                     ′ 
                                   
                                 
                               
                             
                             ) 
                           
                            
                           
                             ( 
                             
                               
                                 T 
                                 
                                   2 
                                   j 
                                 
                               
                               - 
                               
                                 T 
                                 
                                   2 
                                   
                                     j 
                                     ′ 
                                   
                                 
                               
                             
                             ) 
                           
                            
                           
                             ( 
                             
                               
                                 D 
                                 k 
                               
                               - 
                               
                                 D 
                                 
                                   k 
                                   ′ 
                                 
                               
                             
                             ) 
                           
                         
                       
                     
                   
                 
                 
                   
                     ( 
                     
                       
                         T 
                         
                           1 
                           i 
                         
                       
                       - 
                       
                         T 
                         
                           1 
                           
                             i 
                             ″ 
                           
                         
                       
                     
                     ) 
                   
                    
                   
                     ( 
                     
                       
                         T 
                         
                           2 
                           j 
                         
                       
                       - 
                       
                         T 
                         
                           2 
                           
                             j 
                             ″ 
                           
                         
                       
                     
                     ) 
                   
                    
                   
                     ( 
                     
                       
                         D 
                         k 
                       
                       - 
                       
                         D 
                         
                           k 
                           ″ 
                         
                       
                     
                     ) 
                   
                 
               
                
             
             ≤ 
             δ 
           
         
       
     
         [0000]    where ∥(i,j,k)−(i′, j′, k′)∥ ∞ =1, ∥(i′,j′, k′)−(i″, j″, k″)∥ ∞ =1 and ∥(i,j,k)−(i″, j″, k″)∥ ∞ =2. This construction may be recursively repeated for any desired maximum smoothness order. 
         [0108]    As the complexity of the number of smoothness constraints can become prohibitively large even for a small maximum smoothness order, the method of the invention includes an alternate approximation scheme in a preferred embodiment. 
         [0109]    Consider again the vectorized representation of φ i.e., φ=(φ i ) i  and choose an m-partitioning of the φ vector&#39;s indices denoted {φ 1 , φ 2 , . . . , φ m } and where the subsets in the partitioning are contiguous collections of indices possibly overlapping. Then for any partition subset φ s , it is possible to impose the following constraint to implicitly control the smoothness of any solution. Precisely, it can be expected that the sum of all porosities over all odd indices in any partition subset is approximately equal to the sum over the even indices of the same partition subset. Formally, ∀s, |Σ {i|i is even and 1≦i≦|φ     s     |} φ i   s −Σ {i|i is odd and 1≦i≦|φ     s     |} φ i   s |≦τ where τ is some chosen smoothness factor. 
       Optimization Problem 
       [0110]    Succinctly, computing an optimal φ may be reduced to computing the following optimization problem, 
         [0000]    
       
         
           
             
               ϕ 
               * 
             
             = 
             
               
                 argmin 
                 ϕ 
               
                
               
                 
                    
                   
                     y 
                     - 
                     
                       y 
                       ^ 
                     
                   
                    
                 
                 1 
               
             
           
         
       
       
         
           
             subject 
              
             
                 
             
              
             to 
              
             
               { 
               
                 
                   
                     
                       
                         
                           y 
                           ^ 
                         
                         t 
                       
                       = 
                       
                         
                           ∑ 
                           i 
                         
                          
                         
                           
                             k 
                             
                               t 
                               , 
                               i 
                             
                           
                            
                           
                             ϕ 
                             i 
                           
                         
                       
                     
                   
                 
                 
                   
                     
                       
                         ϕ 
                         i 
                       
                       ≥ 
                       
                         0 
                          
                         
                           ∀ 
                           i 
                         
                       
                     
                   
                 
                 
                   
                     
                       
                         
                           ∑ 
                           i 
                         
                          
                         
                           ϕ 
                           i 
                         
                       
                       ≤ 
                       
                         ϕ 
                         max 
                         Σ 
                       
                     
                   
                 
                 
                   
                     
                       
                          
                         
                           
                             
                               ∑ 
                               
                                 { 
                                 
                                   i 
                                    
                                   
                                     
                                       i 
                                        
                                       
                                           
                                       
                                        
                                       is 
                                        
                                       
                                           
                                       
                                        
                                       even 
                                        
                                       
                                           
                                       
                                        
                                       and 
                                        
                                       
                                           
                                       
                                        
                                       1 
                                     
                                     ≤ 
                                     i 
                                     ≤ 
                                     
                                        
                                       
                                         ϕ 
                                         s 
                                       
                                        
                                     
                                   
                                 
                                 } 
                               
                             
                              
                             
                               ϕ 
                               i 
                               s 
                             
                           
                           - 
                           
                             
                               ∑ 
                               
                                 { 
                                 
                                   i 
                                    
                                   
                                     
                                       i 
                                        
                                       
                                           
                                       
                                        
                                       is 
                                        
                                       
                                           
                                       
                                        
                                       odd 
                                        
                                       
                                           
                                       
                                        
                                       and 
                                        
                                       
                                           
                                       
                                        
                                       1 
                                     
                                     ≤ 
                                     i 
                                     ≤ 
                                     
                                        
                                       
                                         ϕ 
                                         s 
                                       
                                        
                                     
                                   
                                 
                                 } 
                               
                             
                              
                             
                               ϕ 
                               i 
                               s 
                             
                           
                         
                          
                       
                       ≤ 
                       
                         τ 
                          
                         
                           ∀ 
                           s 
                         
                       
                     
                   
                 
               
             
           
         
       
     
         [0111]    The above constrained optimization problem can be cast almost immediately to a linear programming (LP) problem and thus any of the known LP solvers can be used to solve it. 
       Optimal Solution Space Characterization and Uncertainty Analysis 
       [0112]    Let o*=∥y−ŷ∥ 1 =∥y−Σ i k t,i φ i *∥ 1  be the optimal objective value. Then, the space of all optimal solutions (i.e., admitting o* as their objective value) is the polytope P satisfying, 
         [0000]    
       
         
           
             P 
             = 
             
               { 
               
                 
                   ϕ 
                   * 
                 
                  
                 
                   
                     
                       
                         
                           
                             o 
                             * 
                           
                           = 
                           
                             
                                
                               
                                 y 
                                 - 
                                 
                                   
                                     Σ 
                                     i 
                                   
                                    
                                   
                                     k 
                                     
                                       t 
                                       , 
                                       i 
                                     
                                   
                                    
                                   
                                     ϕ 
                                     i 
                                     * 
                                   
                                 
                               
                                
                             
                             1 
                           
                         
                         , 
                       
                     
                   
                   
                     
                       
                         
                           
                             ϕ 
                             i 
                             * 
                           
                           ≥ 
                           
                             0 
                              
                             
                               ∀ 
                               i 
                             
                           
                         
                         , 
                       
                     
                   
                   
                     
                       
                         
                           
                             
                               Σ 
                               i 
                             
                              
                             
                               ϕ 
                               i 
                               * 
                             
                           
                           ≤ 
                           
                             ϕ 
                             max 
                             Σ 
                           
                         
                         , 
                       
                     
                   
                   
                     
                       
                         
                            
                           
                             
                               
                                 Σ 
                                 
                                   { 
                                   
                                     i 
                                      
                                     
                                       
                                         i 
                                          
                                         
                                             
                                         
                                          
                                         is 
                                          
                                         
                                             
                                         
                                          
                                         even 
                                          
                                         
                                             
                                         
                                          
                                         and 
                                          
                                         
                                             
                                         
                                          
                                         1 
                                       
                                       ≤ 
                                       i 
                                       ≤ 
                                       
                                          
                                         
                                           ϕ 
                                           
                                             * 
                                             
                                               , 
                                               s 
                                             
                                           
                                         
                                          
                                       
                                     
                                   
                                   } 
                                 
                               
                                
                               
                                 ϕ 
                                 i 
                                 
                                   * 
                                   
                                     , 
                                     s 
                                   
                                 
                               
                             
                             - 
                             
                               
                                 Σ 
                                 
                                   { 
                                   
                                     i 
                                      
                                     
                                       
                                         i 
                                          
                                         
                                             
                                         
                                          
                                         is 
                                          
                                         
                                             
                                         
                                          
                                         odd 
                                          
                                         
                                             
                                         
                                          
                                         and 
                                          
                                         
                                             
                                         
                                          
                                         1 
                                       
                                       ≤ 
                                       i 
                                       ≤ 
                                       
                                          
                                         
                                           ϕ 
                                           
                                             * 
                                             
                                               , 
                                               s 
                                             
                                           
                                         
                                          
                                       
                                     
                                   
                                   } 
                                 
                               
                                
                               
                                 ϕ 
                                 i 
                                 
                                   * 
                                   
                                     , 
                                     s 
                                   
                                 
                               
                             
                           
                            
                         
                         ≤ 
                         
                           τ 
                            
                           
                             ∀ 
                             s 
                           
                         
                       
                     
                   
                 
               
               } 
             
           
         
       
     
         [0113]    Fix a cell of linear index i. Then any optimal φ i * admits lower and upper bounds, respectively, l i  and u i . Such bounds may be computed by solving the following two optimization problems. 
         [0000]    
       
         
           
             
               l 
               i 
             
             = 
             
               
                 
                   min 
                   
                     
                       ϕ 
                       * 
                     
                     ∈ 
                     P 
                   
                 
                  
                 
                   
                     ϕ 
                     i 
                     * 
                   
                    
                   
                       
                   
                    
                   and 
                    
                   
                       
                   
                    
                   
                     u 
                     i 
                   
                 
               
               = 
               
                 
                   max 
                   
                     
                       ϕ 
                       * 
                     
                     ∈ 
                     P 
                   
                 
                  
                 
                   ϕ 
                   i 
                   * 
                 
               
             
           
         
       
     
         [0114]    The bounds l i  and u i  may be used as a direct characterization of the uncertainty on the porosity value at of any cell of chosen index i. More generally, given any desired region of interest defined via a collection C of cell indices, the uncertainty in the total porosity over C may be similarly characterized via the following bounds, 
         [0000]    
       
         
           
             
               ( 
               
                 
                   l 
                   c 
                 
                 , 
                 
                   u 
                   c 
                 
               
               ) 
             
             = 
             
               ( 
               
                 
                   
                     min 
                     
                       
                         ϕ 
                         * 
                       
                       ∈ 
                       P 
                     
                   
                    
                   
                     
                       ∑ 
                       
                         i 
                         ∈ 
                         C 
                       
                     
                      
                     
                       ϕ 
                       i 
                       * 
                     
                   
                 
                 , 
                 
                   
                     max 
                     
                       
                         ϕ 
                         * 
                       
                       ∈ 
                       P 
                     
                   
                    
                   
                     
                       ∑ 
                       
                         i 
                         ∈ 
                         C 
                       
                     
                      
                     
                       ϕ 
                       i 
                       * 
                     
                   
                 
               
               ) 
             
           
         
       
     
         [0115]    One additional characterization of uncertainty with respect to any chosen optimal solution φ* may be done by seeking an optimal solution φ** admitting maximum distance to φ*. If the distance measure is taken to be the square of the second norm of the difference then computing φ** reduces to, 
         [0000]    
       
         
           
             
               ϕ 
               ** 
             
             = 
             
               
                 argmax 
                 
                   ϕ 
                   ∈ 
                   P 
                 
               
                
               
                 
                    
                   
                     ϕ 
                     - 
                     
                       ϕ 
                       * 
                     
                   
                    
                 
                 2 
                 2 
               
             
           
         
       
     
         [0116]    The maximized discrepancy between the two optimal solutions φ* and φ** provides a type of confidence measure in choosing either of such two optimal solutions. More generally, computing a set of iteratively generated new optimal solution instances i.e. {φ* (n) } n  may be performed according to the next section and the entire set can be collectively used to provide a confidence measure around any particularly chosen optimal solution. 
         [0000]    Fluid Typing with Uncertainty Analysis 
         [0117]    The previous section showed that any optimal solution (porosity vector) lives in a bounded polytope P of dimension on the order of the number of grid cells. Furthermore, given any prefixed grid region of interest, minimum and maximum total porosity volumes may be computed considering all solutions residing in P by solving the associated optimization problems. A potential difficulty is that whereas it is possible to compute volumes and volume bounds over any chosen regions, such regions may be completely arbitrary and cannot be directly mapped to a fluid label. A systematic scheme for fluid labeling that can be coupled with this framework is therefore required. 
         [0118]    The method of the invention therefore additionally includes enumeration of a sufficient number of solutions lying on the boundary of the solution space P (vertices). The enumerated solutions would provide a sufficiently accurate approximation to the convex hull of P computable within a given time budget. Two possible schemes for the approximate vertex enumeration problem are:
   i. Generalizing the maximum distance principle outlined in the previous section to iteratively generate vertices so that the span of the approximating convex hull at each iteration is maximally increased (greedy strategy), with the process terminating when either any additional gained space span becomes negligible or when a time budget is exhausted. Computing the n th  instance of the optimal solution according the aforesaid principle amounts to solving the following optimization problem:   
 
         [0000]    
       
         
           
             
               ϕ 
               
                 * 
                 
                   ( 
                   n 
                   ) 
                 
               
             
             = 
             
               
                 argmax 
                 
                   ϕ 
                   ∈ 
                   P 
                 
               
                
               
                 
                    
                   
                     ϕ 
                     - 
                     
                       
                         ( 
                         
                           
                             argmin 
                             
                               
                                 
                                   
                                     Σ 
                                     
                                       i 
                                       = 
                                       1 
                                     
                                     
                                       n 
                                       - 
                                       1 
                                     
                                   
                                    
                                   
                                     α 
                                     i 
                                   
                                 
                                 = 
                                 1 
                               
                               
                                 
                                   α 
                                   i 
                                 
                                 ≥ 
                                 0 
                               
                             
                           
                            
                           
                             
                                
                               
                                 ϕ 
                                 - 
                                 
                                   
                                     ∑ 
                                     
                                       i 
                                       = 
                                       1 
                                     
                                     
                                       n 
                                       - 
                                       1 
                                     
                                   
                                    
                                   
                                     
                                       α 
                                       i 
                                     
                                      
                                     
                                       ϕ 
                                       
                                         * 
                                         
                                           ( 
                                           i 
                                           ) 
                                         
                                       
                                     
                                   
                                 
                               
                                
                             
                             1 
                           
                         
                         ) 
                       
                        
                       
                         
                           ( 
                           
                             ϕ 
                             
                               * 
                               
                                 ( 
                                 i 
                                 ) 
                               
                             
                           
                           ) 
                         
                         
                           i 
                           = 
                           
                             
                               1 
                                
                               
                                   
                               
                                
                               … 
                                
                               
                                   
                               
                                
                               n 
                             
                             - 
                             1 
                           
                         
                       
                     
                   
                    
                 
                 2 
                 2 
               
             
           
         
       
     
         [0120]    Formally stated, the iterative process of computing φ* (n)  continues until at some iteration n and for some sufficiently small threshold ε, the maximized minimum distance to the current convex hull from any optimal solution satisfies, 
         [0000]    
       
         
           
             
               
                 max 
                 
                   ϕ 
                   ∈ 
                   P 
                 
               
                
               
                 
                    
                   
                     ϕ 
                     - 
                     
                       
                         ( 
                         
                           
                             argmin 
                             
                               
                                 
                                   
                                     Σ 
                                     
                                       i 
                                       = 
                                       1 
                                     
                                     
                                       n 
                                       - 
                                       1 
                                     
                                   
                                    
                                   
                                     α 
                                     i 
                                   
                                 
                                 = 
                                 1 
                               
                               
                                 
                                   α 
                                   i 
                                 
                                 ≥ 
                                 0 
                               
                             
                           
                            
                           
                             
                                
                               
                                 ϕ 
                                 - 
                                 
                                   
                                     ∑ 
                                     
                                       i 
                                       = 
                                       1 
                                     
                                     
                                       n 
                                       - 
                                       1 
                                     
                                   
                                    
                                   
                                     
                                       α 
                                       i 
                                     
                                      
                                     
                                       ϕ 
                                       
                                         * 
                                         
                                           ( 
                                           i 
                                           ) 
                                         
                                       
                                     
                                   
                                 
                               
                                
                             
                             1 
                           
                         
                         ) 
                       
                        
                       
                         
                           ( 
                           
                             ϕ 
                             
                               * 
                               
                                 ( 
                                 i 
                                 ) 
                               
                             
                           
                           ) 
                         
                         
                           i 
                           = 
                           
                             
                               1 
                                
                               
                                   
                               
                                
                               … 
                                
                               
                                   
                               
                                
                               n 
                             
                             - 
                             1 
                           
                         
                       
                     
                   
                    
                 
                 2 
                 2 
               
             
             ≤ 
             ɛ 
           
         
       
       
         ii. Using prior domain knowledge to pick trivial extreme solutions (guaranteed to lie outside of any solution space boundaries) and then projecting the said solutions onto P to represent the set of approximating vertices which are evidently made to satisfy all of the constraints in P. The convex hull of the projected vertices is then used to define the approximating solution space which becomes a sufficient surrogate for the entire collective set of constraints (defining the optimal solution space) previously incorporated. The runtime of this method is well-controlled in advance since the number of initial extreme solutions can be pre-chosen. 
       
     
         [0122]    The method then proceeds by labeling each solution in the enumerated vertex set. This method is not bound to any particular fluid labeling scheme given an input solution. Rather, the method of the invention presumes a readily existing fluid labeling method and exploits it to label the computed vertex set. Any such labeling method does not have to produce “crisp” (i.e., deterministic) target fluid labels. Rather the labeling can be probabilistic. Therefore, assuming the vertex solutions are adequately labeled (possibly probabilistically), the total volume for each fluid type in each of the vertex solutions is calculated. Next, the vertex set can be interpreted in terms of the computed fluid volumes and therefore from the standpoint of the answer product, the result is a vertex set defining a bounded polytope in 3D space (since three fluid types i.e., gas, water, and oil, are expected). If the vertices in the vertex set are computed probabilistically then any point in the bounded 3D polytope admits a weight value; otherwise all points have a uniform weight distribution. The final answer product can be visualized as a bounded 3D polytope with a heatmap in its inside illustrating the probability of any optimal solution. In addition to this visual answer product, queries can be performed to give answers to questions of the following forms:
       What is the complete volume range of a specified fluid type?   What is the confidence range of a specified fluid type based on a specified confidence level?   What is the probabilistic range distribution of a specified fluid type?   What is the likelihood that we have a specified minimum volume of a specified fluid type?       
 
         [0127]    The programmable device in a preferred embodiment of the apparatus of the invention includes programming aimed at carrying out the foregoing method steps. 
         [0128]    Preferences and options for a given aspect, feature or parameter of the invention should, unless the context indicates otherwise, be regarded as having been disclosed in combination with any and all preferences and options for all other aspects, features and parameters of the invention. 
         [0129]    The listing or discussion of an apparently prior-published document in this specification should not necessarily be taken as an acknowledgement that the document is part of the state of the art or is common general knowledge.