Patent Publication Number: US-2019186238-A1

Title: Parallel production simulation of a mature hydrocarbon field

Description:
CROSS-REFERENCE TO RELATED APPLICATION(S) 
     The present application is related to U.S. application Ser. No. 12/816,940, filed on Jun. 16, 2010, now U.S. Pat. No. 8,412,501, and U.S. application Ser. No. 13/675,691, filed on Nov. 13, 2012, now U.S. Pat. No. 9,031,821, both of which are incorporated herein by reference in their entireties. 
    
    
     BACKGROUND 
     1. Technical Field 
     The technical domain of the present disclosure is the exploitation of hydrocarbon fields. More particularly the present disclosure concerns a method of building a reliable simulator able to forecast quantities produced vs. production parameters, in the particular case of mature fields. 
     2. Background Art 
     Mature hydrocarbon fields represent a special challenge both in terms of investment and allocation of human resources, because the net present value of any new investment diminishes with the degree of maturity. Therefore, less and less time and effort can be invested in reservoir studies to support field exploitation. Still, there remain opportunities to improve the production over a so-called “baseline” or “business as usual” behavior of an entire mature field, even with little investment. Past strategic choices in the way to operate the hydrocarbon field have created some heterogeneity in pressure and saturation. These can be drastically revisited and production parameters reshuffled accordingly. With respect to a mature hydrocarbon field, many production avenues have been explored in the past, and a learning process can be applied: reshuffled parameters can be implemented with low risk. 
     Two prior art approaches are currently known to model the behavior of a hydrocarbon field and to forecast an expected quantity produced in response to a given set of applied production parameters. 
     A first approach, called “meshed model” or “finite element modeling” parts a reservoir into more than 100,000s of elements (cells, flowlines . . . ), each cell carrying several parameters (permeability, porosity, initial saturation . . . ), and applies physical laws over each of said cells in order to model the behavior of fluids in the hydrocarbon field. In that case the so-called Vapnik-Chervonenkis, VC-dimension h of the space of solutions S, from which the simulator is selected, is very large. Therefore, the available number m of measured data in history data remains comparatively small, even for mature fields, and the ratio 
     
       
         
           
             h 
             m 
           
         
       
     
     appears to be very large compared to 1. As a result of the Vapnik learning theory, which is further mentioned later, the forecast expected risk R is not properly bounded (due to the Φ term), and such a simulator cannot be considered to be reliable, even if it presents a very good match with history data. In practice, it is widely recognized that for such meshed models, a good history match does not guarantee a good forecast: there are billions of ways to match the past, leaving large uncertainty on which one provides a good forecast. 
     A second approach, by contrast, uses over-simplified models, such as, for instance, decline curves or material balance. However, this is too simplified to properly take into account the relevant physics and geology of the reservoir, in particular complex interaction and phenomena. In such case, the forecast expected risk R is not minimized, because no good match can be reached (the empirical Risk R emp  term remains large). 
     SUMMARY 
     In summary, the present disclosure represents a proper compromise between too complex and too simplistic modeling approaches. It is valid only for mature fields, which deliver enough past information, in the form of history data HD, to allow building a space S of candidates for becoming a field production simulator, large enough to take into account all key phenomena at stake in the field, without becoming too complex and hence requiring too many history data to be calibrated. 
     The Vapnik statistical learning theory defines under which conditions such a simulator can be devised. Such a simulator may be designed in such a way it complies with the conditions for a reliable forecasting capacity. 
     The object of the present disclosure is a production simulator, for simulating a mature hydrocarbon field, providing quantity produced per phase, per well, per layer (or group of layers) and per time as a function of production parameters, wherein said production simulator matches sufficiently well history data of said mature hydrocarbon field and verifies a Vapnik condition. This said Vapnik condition ensures that the quantities calculated to be produced per phase, per well, per layer (or group of layers) and per time to be accurate. This will allow the users of this simulator to play different production scenarios, according to different production parameters, each of them delivering reliable quantities, so that such scenarios can be properly compared to each other and an appropriate one can be selected according to specific criteria. As all production scenarios will deliver reliable quantities, the selected one will also deliver a reliable forecast of the production, and therefore it will become a low risk and preferred path for producing the field. 
     According to another feature of the present disclosure, a match with history data is obtained when: 
     
       
         
           
             
               
                 
                   
                      
                     
                       
                         Q 
                         
                           ϕ 
                            
                           
                               
                           
                            
                           ktb 
                         
                       
                       - 
                       
                         Q 
                         
                           ϕ 
                            
                           
                               
                           
                            
                           ktbHD 
                         
                       
                     
                      
                   
                   
                     [ 
                     
                       
                         
                           T 
                           1 
                         
                         - 
                         Xy 
                       
                       , 
                       
                         T 
                         1 
                       
                     
                     ] 
                   
                 
                 
                   
                      
                     
                       Q 
                       
                         ϕ 
                          
                         
                             
                         
                          
                         ktbHD 
                       
                     
                      
                   
                   
                     [ 
                     
                       
                         
                           T 
                           1 
                         
                         - 
                         Xy 
                       
                       , 
                       
                         T 
                         1 
                       
                     
                     ] 
                   
                 
               
               ≤ 
               
                 ɛ 
                 1 
               
             
             , 
           
         
       
     
     for more than p % of existing Q φktbHD  values and the cumulated oil produced over the same [T 1 −Xy, T 1 ] time interval is accurate up to ϵ 2 , where 
     Q φktb  are quantities produced per phase φ∈{oil, water, gas}, per well k, per layer b (or group of layers) and per time t, determined by the production simulator, 
     Q φktbHD  are the same quantities produced per phase, per well, per layer (or group of layers) and per time, found in history data (HD), 
     [T 1 −Xy, T 1 ] is the time interval comprising the most recent X years before time T 1 , 
     T 1  being the last date for which history data is available, 
     ∥Z∥ [T     1     ,T     2     ]  denotes a norm of Z over time interval [T 1 ,T 2 ], 
     ϵ 1  being a positive number small with respect to 1, and 
     ϵ 2  being a positive number small with respect to 1, and p being a positive number close to 100%. 
     Such feature allows to practically defining the situation when a simulator can be considered as delivering a satisfactory history match, which is a necessary condition, to be a candidate for showing satisfactory forecasting capacities. 
     According to another feature of the present disclosure, X=5, ϵ 1 =0.2, and ϵ 2 =0.15 and p=90%. 
     Such feature allows framing the conditions under which the history match can be considered as accurate; it gives an order of magnitude of the accuracy, which can be expected for satisfactory forecasted quantities. 
     According to another feature of the present disclosure, the Vapnik condition is expressed as 
     
       
         
           
             
               
                 h 
                 m 
               
               ≤ 
               0 
             
             , 
           
         
       
     
     where: 
     h is the Vapnik-Chervonenkis dimension of the space S of solutions, from which the simulator is selected, and 
     m is the number of independent measures available in history data. Such feature allows framing the conditions, when they can be calculated, for achieving a satisfactory forecasting capacity. 
     According to another feature of the present disclosure, the Vapnik condition is verified by realizing a satisfactory blind test over N years, as defined by the following steps:
         determining a production simulator matching history data over a time interval preceding T−Ny,   forecasting quantities produced over a time interval [T−Ny, T] given production parameters over the same time interval [T−Ny, T],   the blind test being satisfactory when:       

     
       
         
           
             
               
                 
                   
                      
                     
                       
                         Q 
                         
                           ϕ 
                            
                           
                               
                           
                            
                           ktb 
                         
                       
                       - 
                       
                         Q 
                         
                           ϕ 
                            
                           
                               
                           
                            
                           ktbHD 
                         
                       
                     
                      
                   
                   
                     [ 
                     
                       
                         T 
                         - 
                         Ny 
                       
                       , 
                       T 
                     
                     ] 
                   
                 
                 
                   
                      
                     
                       Q 
                       
                         ϕ 
                          
                         
                             
                         
                          
                         ktbHD 
                       
                     
                      
                   
                   
                     [ 
                     
                       
                         T 
                         - 
                         Ny 
                       
                       , 
                       T 
                     
                     ] 
                   
                 
               
               ≤ 
               
                 ɛ 
                 1 
               
             
             , 
           
         
       
     
     for more than p % of existing Q φktbHD  values and the cumulated oil produced over the same [T−Ny, T] time interval is accurate up to ϵ 2 , where 
     Q φktb  are quantities produced per phase, per well, per layer (or group of layers) and per time, determined by the production simulator, 
     Q φktbHD  are the same quantities produced per phase, per well, per layer (or group of layers) and per time, found in history data, 
     [T−Ny, T] is the time interval comprising the most recent N years before time T, 
     T being the last date for which history data is made available, 
     ∥X∥ [T     1     ,T     2     ]  denotes a norm of X over time interval [T 1 ,T 2 ], 
     ϵ 1  being a positive number small with respect to 1, and 
     ϵ 2  being a positive number small with respect to 1, and p being a positive number close to 100%. 
     Such feature allows defining a discriminating test for deciding whether a simulator exhibits a satisfactory forecasting capacity, without looking at the way it has been set up, but rather at the actual results it can achieve. Such feature allows carrying out the test without the need to wait for years and measure the results, but rather to use data already available to the third party conducting the test, and not available to the party setting up the simulator (the latter party is “blind”). 
     According to another feature of the present disclosure, ϵ 1 =0.1, and ϵ 2 =0.1, p=90% and N=3. 
     Such feature allows framing practical conditions for the blind test, which can be accepted for properly discriminating a satisfactory simulator from a non-satisfactory simulator. 
     According to another feature of the present disclosure, the Vapnik condition is a forecast stability property verified when if 
     
       
         
           
             
               
                 
                    
                   
                     PP 
                     - 
                     
                       PP 
                       ′ 
                     
                   
                    
                 
                 
                   [ 
                   
                     
                       T 
                       0 
                     
                     , 
                     T 
                   
                   ] 
                 
               
               
                 
                    
                   PP 
                    
                 
                 
                   [ 
                   
                     
                       T 
                       0 
                     
                     , 
                     T 
                   
                   ] 
                 
               
             
             ≤ 
             
               ɛ 
                
               
                   
               
                
               and 
             
           
         
       
       
         
           
             
               
                 
                    
                   
                     
                       Q 
                       
                         ϕ 
                          
                         
                             
                         
                          
                         ktbHD 
                       
                     
                     - 
                     
                       Q 
                       
                         ϕ 
                          
                         
                             
                         
                          
                         ktbHD 
                       
                       ′ 
                     
                   
                    
                 
                 
                   [ 
                   
                     
                       T 
                       0 
                     
                     , 
                     T 
                   
                   ] 
                 
               
               
                 
                    
                   
                     Q 
                     
                       ϕ 
                        
                       
                           
                       
                        
                       ktbHD 
                     
                   
                    
                 
                 
                   [ 
                   
                     
                       T 
                       0 
                     
                     , 
                     T 
                   
                   ] 
                 
               
             
             ≤ 
             
               ɛ 
                
               
                   
               
                
               then 
                
               
                   
               
                
               
                 
                   
                      
                     
                       
                         Q 
                         
                           ϕ 
                            
                           
                               
                           
                            
                           ktb 
                         
                       
                       - 
                       
                         Q 
                         
                           ϕ 
                            
                           
                               
                           
                            
                           ktb 
                         
                         ′ 
                       
                     
                      
                   
                   
                     [ 
                     
                       T 
                       , 
                       
                         T 
                         + 
                         Ny 
                       
                     
                     ] 
                   
                 
                 
                   
                      
                     
                       Q 
                       
                         ϕ 
                          
                         
                             
                         
                          
                         ktb 
                       
                     
                      
                   
                   
                     [ 
                     
                       T 
                       , 
                       
                         T 
                         + 
                         Ny 
                       
                     
                     ] 
                   
                 
               
             
             ≤ 
             
               n 
                
               
                   
               
                
               ɛ 
             
           
         
       
     
     where 
     PP are production parameters, 
     PP′ are slightly varying different production parameters, 
     Q φktbHD  are quantities produced per phase, per well, per layer (or group of layers) and per time, found in history data, 
     Q φktbHD ′ are slightly varying different quantities produced per phase, per well, per layer (or group of layers) and per time, found in a slightly varying different history data, 
     Q φktb  are quantities produced per phase, per well, per layer (or group of layers) and per time, determined by the production simulator, 
     Q φktb ′ are quantities produced per phase, per well, per layer (or group of layers) and per time, determined by another close enough production simulator determined out of slightly varying different history data, 
     [T 0 , T] is the time interval from time T 0  to time T, being respectively the initial and the last date for which history data is available, 
     [T, T+Ny] is the time interval comprising the Ny years after time T, 
     ∥Z∥ [T     1     ,T     2     ]  denotes a norm of Z over time interval [T 1 ,T 2 ], 
     ϵ being a positive number small with respect to 1, and 
     n being a small integer less than 5. 
     Such feature allows defining whether a simulator exhibits properties, which are a pre-requisite to reliably calculate forecasted quantities. This test does not require comparing with another existing simulator, nor does it require knowing about the way this simulator has been set up, as only its resulting properties are tested. 
     According to another feature of the present disclosure, ϵ=0.05, n=2 and N=3. 
     This feature allows practically framing the forecast stability, over a period of three years. 
     According to another feature of the present disclosure, the production simulator is built following the steps of:
         defining initial detailed reservoir partition, rock properties, laws of reservoir physics and laws of well physics,   upscaling said reservoir partition, rock properties, laws of reservoir physics and laws of well physics until said Vapnik condition is verified, and   calibrating said production simulator by choosing among the production simulator candidate solutions, the candidate solution, defined by α and minimizing an expected so called “empirical risk” R emp (α).       

     Upscaling means reducing complexity. Upscaling is carried out in such a way that the space of solutions candidates for becoming a simulator is such as 
     
       
         
           
             Φ 
             ( 
             
               
                 h 
                 m 
               
               , 
               δ 
             
             ) 
           
         
       
     
     is as small as possible, where: 
     δ is a positive number close to zero, 1-δ defining a probability and 
     Φ is a positive function defined by: 
     
       
         
           
             
               
                 Φ 
                 ( 
                 
                   
                     h 
                     m 
                   
                   , 
                   δ 
                 
                 ) 
               
               = 
               
                 2 
                  
                 
                   
                     
                       2 
                       m 
                     
                      
                     
                       ( 
                       
                         
                           h 
                            
                           
                               
                           
                            
                           
                             log 
                             ( 
                             
                               
                                 2 
                                  
                                 
                                     
                                 
                                  
                                 em 
                               
                               h 
                             
                             ) 
                           
                         
                         + 
                         
                           log 
                           ( 
                           
                             2 
                             δ 
                           
                           ) 
                         
                       
                       ) 
                     
                   
                 
               
             
             , 
           
         
       
     
     where 
     h is the Vapnik-Chervonenkis dimension of the space of solutions, and 
     m is the number of independent measures available in history data, 
     e is equal to exp(1). 
     Calibrating the production simulator among the candidates of the space of solutions means making the “empirical risk” R emp (α) as small as possible, while choosing the appropriate parameters α that completely defines a solution within the space of solutions. This empirical risk R emp (α) measures a (positive) distance between actual past data and the corresponding data calculated by the simulator. 
     This upscaling process is a way to reach a trade-off between 
     
       
         
           
             Φ 
             ( 
             
               
                 h 
                 m 
               
               , 
               δ 
             
             ) 
           
         
       
     
     and R emp (α) values, which need to be together as small as possible, as the objective is to minimize their sum 
     
       
         
           
             
               
                 R 
                 emp 
               
                
               
                 ( 
                 α 
                 ) 
               
             
             + 
             
               Φ 
                
               
                 ( 
                 
                   
                     h 
                     m 
                   
                   , 
                   δ 
                 
                 ) 
               
             
           
         
       
     
     with a given probability 1-δ. 
     In minimizing the above-mentioned sum, this minimizes the expected risk of the forecast, R(α), according to the Vapnik inequality: 
     
       
         
           
             
               R 
                
               
                 ( 
                 α 
                 ) 
               
             
             ≤ 
             
               
                 
                   R 
                   emp 
                 
                  
                 
                   ( 
                   α 
                   ) 
                 
               
               + 
               
                 Φ 
                  
                 
                   ( 
                   
                     
                       h 
                       m 
                     
                     , 
                     δ 
                   
                   ) 
                 
               
             
           
         
       
     
     Such feature allows minimizing the expected risk of the forecast R(α), while starting from large values of 
     
       
         
           
             Φ 
              
             
               ( 
               
                 
                   h 
                   m 
                 
                 , 
                 δ 
               
               ) 
             
           
         
       
     
     (as starting models are complex) and small empirical risks R emp  (α) (as such complex models can properly picture past data) and gradually decrease the complexity, and therefore 
     
       
         
           
             Φ 
              
             
               ( 
               
                 
                   h 
                   m 
                 
                 , 
                 δ 
               
               ) 
             
           
         
       
     
     while keeping a good match of past data, therefore keeping the empirical risk R emp (α) small. 
     According to another feature of the present disclosure, said reservoir partition is upscaled following the steps of:
         partitioning a reservoir G into elementary parts G ab , such that       

     
       
         
           
             G 
             = 
             
               
                 ⋃ 
                 
                   a 
                   = 
                   1 
                 
                 A 
               
                
               
                 
                   ⋃ 
                   
                     b 
                     = 
                     1 
                   
                   B 
                 
                  
                 
                   G 
                   ab 
                 
               
             
           
         
       
     
     with G ab ∩G a′b′ =Ø for (a,b)≠(a′,b′), where a∈{1 . . . A} describes a x-y area, and b∈{1 . . . B} describes one or several layers,
         grouping adjacent elementary parts exhibiting homogeneous rock properties, into sub-geologies G z  where z∈{1, . . . , Z}.       

     Such feature gives a practical way of upscaling the field geology in identifying a reasonably small number of sub-geologies G z . 
     According to another feature of the present disclosure, rocks properties are upscaled by following a step of averaging out rock properties over each sub-geology, according to formula: 
     
       
         
           
             
               
                 RP 
                 z 
               
               = 
               
                 
                   1 
                   
                     V 
                     z 
                   
                 
                  
                 
                   
                     ∫ 
                     
                       ∫ 
                       ∫ 
                     
                   
                   
                     G 
                     z 
                   
                 
                  
                 
                   RP 
                    
                   
                     ( 
                     
                       x 
                       , 
                       y 
                       , 
                       z 
                     
                     ) 
                   
                 
                  
                 dxdydz 
               
             
             , 
           
         
       
     
     where V z  is the volume of sub-geology G z . 
     This feature explains a way to practically define the properties to be used in a given sub-geology G z . 
     According to another feature of the present disclosure, laws of reservoir physics are upscaled in such a way they apply with functioning parameters of the sub-geology and wherein space and times scales associated with the sub-geology are determined in such a way that the associated space of solutions is consistent with the complexity of history data at the well level. 
     Such feature gives the rules to look for upscaled reservoir physics laws, in focusing on their behavior measured at well level. 
     According to another feature of the present disclosure, the production simulator is built following the steps of:
         defining initial coarse reservoir partition, rock properties, laws of reservoir physics and laws of well physics,   downscaling said reservoir partition, rock properties, laws of reservoir physics and laws of well physics while keeping said Vapnik condition verified, until the production simulator matches history data and   calibrating said production simulator by choosing among the production simulator candidate solutions, the candidate solution minimizing a forecast expected risk.       

     Downscaling means increasing complexity, starting from a simplistic description of the field, and adding relevant reservoir and/or well phenomena, which will properly picture the behavior of the entire field, well by well. Downscaling is carried out in such a way that the space of solutions candidates for becoming a simulator remains such as 
     
       
         
           
             Φ 
              
             
               ( 
               
                 
                   h 
                   m 
                 
                 , 
                 δ 
               
               ) 
             
           
         
       
     
     is as small as possible, where: 
     δ is a positive number close to zero, 1-δ defining a probability and 
     Φ is a positive function defined by: 
     
       
         
           
             
               
                 Φ 
                  
                 
                   ( 
                   
                     
                       h 
                       m 
                     
                     , 
                     δ 
                   
                   ) 
                 
               
               = 
               
                 2 
                  
                 
                   
                     
                       2 
                       m 
                     
                      
                     
                       ( 
                       
                         
                           h 
                            
                           
                               
                           
                            
                           
                             log 
                              
                             
                               ( 
                               
                                 
                                   2 
                                    
                                   em 
                                 
                                 h 
                               
                               ) 
                             
                           
                         
                         + 
                         
                           log 
                            
                           
                             ( 
                             
                               2 
                               δ 
                             
                             ) 
                           
                         
                       
                       ) 
                     
                   
                 
               
             
             , 
           
         
       
     
     where 
     h is the Vapnik-Chervonenkis dimension of the space of solutions, and 
     m is the number of independent measures available in history data, 
     e is equal to exp(1). 
     Calibrating the production simulator among the candidates of the space of solutions means making the “empirical risk” R emp (α) as small as possible, while choosing the appropriate parameters “α” that completely defines a solution within the space of solutions. This empirical risk measures a distance between actual past data and the corresponding data calculated by the simulator. 
     This downscaling process is a way to reach a trade-off between 
     
       
         
           
             Φ 
              
             
               ( 
               
                 
                   h 
                   m 
                 
                 , 
                 δ 
               
               ) 
             
           
         
       
     
     and R emp (α) values, which need to be together as small as possible, as the objective is to minimize their sum 
     
       
         
           
             
               
                 R 
                 emp 
               
                
               
                 ( 
                 α 
                 ) 
               
             
             + 
             
               Φ 
                
               
                 ( 
                 
                   
                     h 
                     m 
                   
                   , 
                   δ 
                 
                 ) 
               
             
           
         
       
     
     with a given probability 1-δ. 
     In minimizing the above-mentioned sum, this minimizes the expected risk of the forecast, R(α), according to the Vapnik inequality: 
     
       
         
           
             
               R 
                
               
                 ( 
                 α 
                 ) 
               
             
             ≤ 
             
               
                 
                   R 
                   emp 
                 
                  
                 
                   ( 
                   α 
                   ) 
                 
               
               + 
               
                 Φ 
                  
                 
                   ( 
                   
                     
                       h 
                       m 
                     
                     , 
                     δ 
                   
                   ) 
                 
               
             
           
         
       
     
     Such feature allows minimizing the expected risk of the forecast R(α), while starting from small values of 
     
       
         
           
             Φ 
              
             
               ( 
               
                 
                   h 
                   m 
                 
                 , 
                 δ 
               
               ) 
             
           
         
       
     
     (as starting models are simplistic) and large empirical risks R emp (α) (as such simplistic model do not properly picture past data) and gradually increasing the complexity, and therefore increasing 
     
       
         
           
             Φ 
              
             
               ( 
               
                 
                   h 
                   m 
                 
                 , 
                 δ 
               
               ) 
             
           
         
       
     
     in order to better match past data, therefore decreasing the empirical risk R emp (α). 
     According to another feature of the present disclosure, said reservoir partition is downscaled following the steps of:
         starting from the whole reservoir,   parting said reservoir into sub-geologies where a substantial change of reservoir properties is present at around the boundary between said sub-geologies.       

     Such feature describes the process of going from global field description to a refined understanding, where local behaviors are identified at a finer scale G z . 
     According to another feature of the present disclosure, wherein rocks properties are downscaled by defining new separate rock field properties over each sub-geology. 
     Such feature describes the principle of allocating different physical properties at the G z  level. 
     According to another feature of the present disclosure, laws of reservoir physics are downscaled in such a way they apply with functioning parameters of the sub-geology and wherein space and times scales associated with the sub-geology are determined in such a way that the associated space of solutions is consistent with the complexity of history data at the well level. 
     Such feature gives the rules to look for downscaled reservoir physics laws, in focusing on their behavior measured at well level. 
     According to another feature of the present disclosure, the laws of reservoir physics are derived from the (Navier-)Stokes equations of conservation of momentum and conservation of mass for a fluid or gas evolving in a rock modeled as a porous medium, only characterized by its averaged porosity and relative/permeability per time per phase per sub-geology. 
     This feature explains how general laws of reservoir physics can be simplified at the sub-geology level, while averaging out some key parameters over the entire sub-geology G z . 
     According to another feature of the present disclosure, the laws of reservoir physics comprise formulas: 
     
       
         
           
             
               
                 u 
                 
                   ϕ 
                    
                   
                       
                   
                    
                   k 
                 
               
               = 
               
                 
                   - 
                   
                     k 
                     
                       μ 
                       b 
                     
                   
                 
                  
                 
                   
                     k 
                     
                       r 
                        
                       
                           
                       
                        
                       ϕ 
                     
                   
                    
                   
                     ( 
                     
                       
                         ∇ 
                         
                           P 
                           ϕ 
                         
                       
                       - 
                       
                         
                           ρ 
                           ϕ 
                         
                          
                         g 
                       
                     
                     ) 
                   
                 
               
             
             , 
           
         
       
     
     where: 
     u φkz  is the velocity of phase φ at well k, at sub-geology z, 
     μ φc  is the viscosity of phase φ, at sub-geology z, 
     P φz  is the pressure of phase φ at sub-geology z, 
     ρ φc  is the density of phase φ, at sub-geology z, 
     g is the gravity vector, 
     k is a permeability coefficient, and 
     k rφz  is a relative permeability coefficient of phase φ, at sub-geology z. k rφz  is a function of time, through its dependency on phase saturation. 
     This feature explains what law is considered in practice for fluid transport and how it is parameterized. 
     According to another feature of the present disclosure, the laws of reservoir physics further comprise heat transfer laws between a fluid or a gas and a rock given by the following formulas: 
       Φ∂ t (ρ w   S   w +ρ g   S   g )+∇·(ρ w   u   w +ρ g   u   g )=0
 
       Φ∂ t (ρ o   S   o )+∇·(ρ o   u   o )=0,
 
         S   o   +S   w   +S   g =1, 
       ∂ t ( E   s   +E   f )+∇·( U   f −λ( T )∇ T )=0, where
 
     T=T(x,y,z) is the temperature and can vary over the reservoir,
         φ is the rock porosity,   S φ  is the saturation of phase φ,   ρ φ  is the density of phase φ,   u φ  is the velocity of phase φ,   E is the volumetric internal energy (indices s and f corresponding respectively to solid and fluid phases),       

         U   f   =U   g   +U   o   +U   w  is the enthalpy flux, where  U   φ =ρ φ   h   φ   u   φ ,
 
     h φ  is the specific enthalpy of phase φ, 
     h g =h w +Λ, Λ being the specific heat of water vaporization, 
     g, w, o indexes being respectively for gas, water and oil, 
     λ(T) is the reservoir conductivity coefficient. 
     This feature describes which heat transfer laws need to be considered and how they can be parameterized. 
     According to another feature of the present disclosure, the laws of reservoir physics further comprise phase laws given by: 
     μ φz =μ φz (P,T) the viscosity of phase φ at sub-geology z, function of the local pressure P and the local temperature T; 
     ρ φz =ρ φz (P,T) the density of phase φ at sub-geology z, function of the local pressure P and the local temperature T; 
     k rφz =k rφz (P,T) the relative permeability coefficient of phase φ at sub-geology z, function of the local pressure P and the local temperature T. 
     This feature explains how laws of fluid propagation and laws of heat transfer are coupled, through dependency of pressure and temperature. 
     According to another feature of the present disclosure, laws of well physics comprise formulas: 
         Q   φktz   =T   kz ( PP   ktz   ,u   φkz ) where: 
     Q φktz  is the quantity produced of phase φ at well k in sub-geology z at time t, 
     T kz  is a transfer function of well k, in sub-geology z 
     PP ktz  are the production parameters applied to well k in sub-geology z at time t, 
     u φkz  is the velocity of phase φ at well k in sub-geology z. 
     This feature explains how wells behaviors can be modeled, for instance through transfer functions. Such functions have the same “fineness” than the modeling of the reservoir: if a sub-geology G z  includes several layers b, these will be averaged out together at the well level. 
     The present disclosure also concerns a method for optimally exploiting a mature hydrocarbon field, comprising the steps of:
         building a production simulator according to any one of the preceding embodiments,   iterating several runs of said production simulator in order to find the optimal production parameters optimizing a gain value derived from said quantity produced,   applying said optimal production parameters so obtained to exploit the hydrocarbon field.       

     This feature describes a generic optimization process, aimed at maximizing a gain function on the field. It fully uses an aforementioned feature of the production simulator, namely its relative low-complexity, which allows very low computing time for calculating a given production scenario, defined by its corresponding production parameters. This low computing time renders possible playing a vast number of scenarios, typically more than millions of them in 24 hours. 
     According to another feature of the present disclosure, said optimized gain value is a net present value or reserves of said hydrocarbon field. 
     This feature illustrates a practical use of the present disclosure, which turns out to generate large financial gains, against non-optimized scenarios. 
     According to another feature of the present disclosure, said net present value can be determined using the formula: 
     
       
         
           
             NPV 
             = 
             
               
                 
                   ∑ 
                   i 
                 
                  
                 
                   
                     ( 
                     
                       
                         ∑ 
                         k 
                       
                        
                       
                         
                           ∑ 
                           z 
                         
                          
                         
                           
                             P 
                             kz 
                           
                           * 
                           
                             ( 
                             
                               1 
                               - 
                               
                                 R 
                                 ik 
                               
                             
                             ) 
                           
                         
                       
                     
                     ) 
                   
                   * 
                   
                     
                       S 
                       i 
                     
                     
                       
                         ( 
                         
                           
                             1 
                             &#39; 
                           
                            
                           0 
                            
                           d 
                         
                         ) 
                       
                       i 
                     
                   
                 
               
               - 
               
                 
                   ∑ 
                   i 
                 
                  
                 
                   
                     ( 
                     
                       
                         
                           ∑ 
                           k 
                         
                          
                         
                           I 
                           ik 
                         
                       
                       + 
                       
                         
                           ∑ 
                           k 
                         
                          
                         
                           OC 
                           ik 
                         
                       
                       + 
                       
                         
                           ∑ 
                           k 
                         
                          
                         
                           
                             ∑ 
                             z 
                           
                            
                           
                             ( 
                             
                               
                                 
                                   TO 
                                   i 
                                 
                                 * 
                                 
                                   P 
                                   kz 
                                 
                               
                               + 
                               
                                 
                                   TL 
                                   i 
                                 
                                 * 
                                 
                                   L 
                                   kz 
                                 
                               
                             
                             ) 
                           
                         
                       
                     
                     ) 
                   
                   * 
                   
                     1 
                     
                       
                         ( 
                         
                           1 
                           + 
                           d 
                         
                         ) 
                       
                       i 
                     
                   
                 
               
             
           
         
       
     
     where: 
     P kz  is oil production (in barrels) for well k and sub-geology z, 
     R ik  is tax and royalties for well k and year i, 
     S i  is the oil sale price (per barrel) for year i, 
     d is the percentage discount rate, 
     I ik  is investment made on well k during year i, 
     OC ik  is operating costs for well k during year i, 
     L kz  is the liquid production (in barrels) for well k and sub-geology z, 
     TO i  is treatment cost (per barrel of oil), for year i. 
     TL i  is treatment cost (per barrel of liquid), for year i. 
     This feature gives a practical way to define a gain function, which can be completely calculated using the production of wells, per phase per time and per sub-geology, which is itself calculated by the production simulator for any given set of production parameters. 
    
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
       The accompanying drawings, which are incorporated herein and form a part of the specification, illustrate the present disclosure and, together with the description, further serve to explain the principles of the disclosure and to enable a person skilled in the pertinent art to make and use the disclosure. 
         FIG. 1  shows an illustrative hydrocarbon field. 
         FIG. 2  is a block diagram of a simulator according to an embodiment. 
         FIG. 3  is a block diagram detailing a production simulator according to an embodiment. 
         FIG. 4  is a schematic view of an example oil field. 
         FIG. 5  illustrates example scenarios of an oil field. 
         FIG. 6  illustrates an example memory representation of multiple scenarios according to an embodiment. 
         FIG. 7  illustrates a multiple scenarios simulation run using a Single Instruction, Multiple Threads (SIMT) architecture according to an embodiment. 
         FIG. 8  illustrates a multiple scenarios simulation run using a Single Instruction, Multiple Data (SIMD) architecture according to an embodiment. 
         FIG. 9  illustrates a process for simulating the production of an oil field according to an embodiment. 
         FIG. 10  illustrates an example computer system which can be used to implement embodiments. 
     
    
    
     DETAILED DESCRIPTION OF EMBODIMENTS 
     According to  FIG. 1 , a hydrocarbon field is a subterranean (or submarine) reservoir G comprising rock and gas and fluids of which oil. Said reservoir G is drilled from the surface  10  by several wells  11 , in a known fashion. Said wells  11  may be injectors in charge of injecting a fluid, generally water, gas or steam, into the reservoir in order to change its properties, for instance to get its pressure or its temperature modified. Said wells  11  may instead be producers in charge of extracting gas, oil and associated fluids (and maybe other components) from the reservoir. Appropriate fluids or gas can also be injected into these producers, in order to enhance their production effectiveness or to get local reservoir properties to be modified. 
     The aim of the present disclosure is to calculate future hydrocarbon production per well, per phase and per sub-geology over time. 
     Another aim of the present disclosure is to determine and apply the optimal production parameters PP, that is, the production parameters PP that optimize a gain value e.g. the production, the NPV, reserves, of a mature hydrocarbon field. 
     The present disclosure concerns a method, for optimally exploiting a mature hydrocarbon field, based on an optimizer  1 . Said optimizer  1  uses a production simulator  2  module that provides quantities produced Q φzkt  per phase φ, per well k,  11 , per sub-geology z, and per time t (said time is generally expressed in month) as a function of production parameters PP. The phase φ can be oil, gas, water or other relevant fluids like chemical additives (oil may be considered as a single phase or split into many different hydrocarbon phases). There can be several oil or gas phases, depending of hydrocarbons chains. Gas can be hydrocarbon, vapor or any other element. 
     Production parameters PP comprise all the driving parameters impacting the production. These production parameters include: injection rates that define the behavior of injectors, production rates, e.g. in terms of pumping rates, that define the behavior of producers but also well work-over, like perforation, completion, acidification, fracturation . . . , or some other impacting choices such as a possible conversion of a producer into an injector or else a drilling of an new additional well (be it a producer and/or an injector). PP can be sub-geology-dependent (e.g. for wells produced with multiple strings). 
     Such an optimizer  1  allows the test of new production strategies that would imply modifying production parameters against the baseline (“business as usual” production strategy). 
     Since said production simulator  2  is simple enough to quickly compute the result, the optimizer  1  may iterate many runs of said production simulator  2 , thus trying a lot of strategies or scenarios, in order to find the optimal production parameters PP that optimize a gain value  5  derived from said quantity produced Q φzkt . 
     As figured by block diagram of  FIG. 2 , the essential brick of optimizer  1  is production simulator  2 . For a given set of production parameters PP, it provides a forecast of quantities produced Q φzkt . 
     From said quantities produced Q φzkt  a gain value  5 , to be optimized, can be computed by a module  4 . 
     In optimizer  1  a module  3  is in charge of proposing said scenarios in the form of sets of production parameters PP. Several heuristics/algorithms may be used in said module  3 , ranging from random Monte-Carlo methods to more efficient context aware methods to propose relevant candidate sets of production parameters PP. 
     As is figured by a feedback arrow, said module  3  may take advantage of the feedback value  5 , to determine new sets, and to drive toward new scenarios, according to known optimization methods. 
     By so iterating, optimizer  1  may determine an optimal set of production parameters that optimize the gain value  5 . 
     The method also comprises applying said optimal production parameters PP so obtained to drive the exploitation of the hydrocarbon field. As simulated, the expected gain or revenue can be optimal and at least better than the baseline. 
     To be efficient, according to an essential feature of the present disclosure, without reproducing the drawback of prior art solutions, said production simulator  2  must first match history data HD, that is provides a result that rather well compare to quantities produced Q φzkt  for the past, when applying the production parameters PP historically applied, thus differentiating from too simplistic models. Also, said production simulator  2  must verify a Vapnik condition. 
     The production simulator  2  is intended to produce estimated data for the future, starting from instant T, as accurate as possible. One necessary condition to pretend to such an accuracy is first that said production simulator matches history data HD, that is its reproduces known data in the past, that is so-called history data HD. Matching history data thus means the production simulator  2  is accurate enough to reproduce data produced such as quantities produced Q φzkt  per phase φ, per well k, per sub-geology z and per time t, and total cumulated oil produced, when known, that is before T. The quality of said match is appreciated by relatively comparing known quantities produced Q φzktHD  recorded in history data HD to quantities produced Q φzkt  as computed by mean of production simulator  2 , to which past production parameters are applied. Cumulated oil produced is also compared between the sum of quantities produced Q φzktHD  recorded in history data HD, and the sum of quantities produced Q φzkt  as computed by mean of production simulator  2 . Such a comparison can be expressed by 
     
       
         
           
             
               
                 
                    
                   
                     
                       Q 
                       
                         ϕ 
                          
                         
                             
                         
                          
                         ckt 
                       
                     
                     - 
                     
                       Q 
                       
                         ϕ 
                          
                         
                             
                         
                          
                         zktHD 
                       
                     
                   
                    
                 
                 
                   [ 
                   
                     
                       
                         T 
                         1 
                       
                       - 
                       Xy 
                     
                     , 
                     
                       T 
                       1 
                     
                   
                   ] 
                 
               
               
                 
                    
                   
                     Q 
                     
                       ϕ 
                        
                       
                           
                       
                        
                       cktHD 
                     
                   
                    
                 
                 
                   [ 
                   
                     
                       
                         T 
                         1 
                       
                       - 
                       Xy 
                     
                     , 
                     
                       T 
                       1 
                     
                   
                   ] 
                 
               
             
             ≤ 
             
               ɛ 
               1 
             
           
         
       
     
     for p % of the quantities Q φzktHD  and 
     
       
         
           
             
                
               
                 
                   
                     ∑ 
                     
                       Q 
                       
                         ϕ 
                          
                         
                             
                         
                          
                         ckt 
                       
                     
                   
                   
                     k 
                     , 
                     z 
                     , 
                     
                       t 
                       ∈ 
                       
                         [ 
                         
                           
                             
                               T 
                               1 
                             
                             - 
                             Zy 
                           
                           , 
                           
                             T 
                             1 
                           
                         
                         ] 
                       
                     
                   
                 
                 - 
                 
                   
                     ∑ 
                     
                       Q 
                       
                         ϕ 
                          
                         
                             
                         
                          
                         cktHD 
                       
                     
                   
                   
                     k 
                     , 
                     z 
                     , 
                     
                       t 
                       ∈ 
                       
                         [ 
                         
                           
                             
                               T 
                               1 
                             
                             - 
                             Xy 
                           
                           , 
                           
                             T 
                             1 
                           
                         
                         ] 
                       
                     
                   
                 
               
                
             
             ≤ 
             
               ɛ 
               1 
             
           
         
       
     
     where 
     Q φzkt  are quantities produced per phase φ, per well k, per sub-geology z and per time t, determined by the production simulator  2 , 
     Q φzktHD  are the same quantities produced per phase φ, per well k, per sub-geology z and per time t, found in history data (HD), 
     [T 1 −Xy, T 1 ] is the time interval comprising the most recent X years before time T 1 , 
     T 1  being the last date for which history data HD is available, 
     ∥Z∥ [T     1     ,T     2     ]  denotes a norm of Z over time interval [T 1 ,T 2 ], 
     ϵ 1  being a positive number small with respect to 1, and 
     ϵ 2  being a positive number small with respect to 1, 
     p being a number close to 100%. 
     The length of the interval considered for the matching condition may be adapted to the available length of history data. However if possible, length of five years is considered to be satisfactory. Such a length is consistent with a comparable horizon of expected accurate forecast for the production simulator  2 , of five years. 
     The particular values of X=5, p=90%, ϵ 1 =0.2 and ϵ 2 =0.15 have been found satisfactory to detect a good match. 
     The norm used herein for comparison may be any one among: least square or weighted least square. 
     In addition to the matching condition, an accurate production simulator  2  must also verify a Vapnik condition. Said Vapnik condition may be expressed in different ways. 
     One of the results of the learning theory as developed by Vapnik shows that, from a given history data HD set of dimension m, that is, comprising m independent measures, one can derive, by learning, a model within a space of VC-dimension h, with a reliability forecasting expected risk R(α) associated to parameters α, bounded from above by the sum of two additive terms R emp (α)+Φ. The first term R emp (α) is an empirical risk associated with parameters α, indicative of the quality of the matching to history data HD provided by said parameters α. The second term Φ is characteristic of the model and can be expressed by 
     
       
         
           
             
               
                 Φ 
                  
                 
                   ( 
                   
                     
                       h 
                       m 
                     
                     , 
                     δ 
                   
                   ) 
                 
               
               = 
               
                 2 
                  
                 
                   
                     
                       2 
                       m 
                     
                      
                     
                       ( 
                       
                         
                           h 
                            
                           
                               
                           
                            
                           
                             log 
                              
                             
                               ( 
                               
                                 
                                   2 
                                    
                                   em 
                                 
                                 h 
                               
                               ) 
                             
                           
                         
                         + 
                         
                           log 
                            
                           
                             ( 
                             
                               2 
                               δ 
                             
                             ) 
                           
                         
                       
                       ) 
                     
                   
                 
               
             
             , 
           
         
       
     
     wherein δ is a positive number close to zero, 1-δ defining a probability of said forecast expected risk R(α) is indeed bounded by R emp (α)+Φ, where h is the aforementioned VC-dimension of the space S of solutions, also named Vapnik-Chervonenkis or VC dimension, and in is the aforementioned number of independent measures available in history data HD. 
     According to said result, prior art oversimplified models all suffer from a high R emp (α) due to the over simplification of the model. Instead, prior art complex meshed models may provide a small R emp (α), but suffer from a high Φ value, due to an high 
     
       
         
           
             h 
             m 
           
         
       
     
     ratio, since the VC-dimension h of the space of solutions is too large with respect to the number m of independent measures available in history data HD. 
     A trade-off has then to be reached. m value is constant and given by history data HD available for a given hydrocarbon field. The size h of the space of solutions has then to be adapted so that the 
     
       
         
           
             h 
             m 
           
         
       
     
     ratio remains small. With an average objective of a five years forecast with a reliability of around +/−5%, a value 
     
       
         
           
             
               
                 h 
                 m 
               
               ≤ 
               0 
             
             , 
           
         
       
     
     has been found to be compatible with both the objective reliability and the possibility of scaling, as will be detailed further, to obtain a model. 
     Another way to express and check said Vapnik condition is by realizing a blind test. A blind test over N years may be realized by parting history data into two time intervals. A first “past” interval runs from an initial time T 0  for which history data are available, to a time T−Ny preceding the final time T by N years. A second “blind” interval runs from T−Ny to time T corresponding to the last time for which history data is available. T is generally the actual time. The data of “past” interval are considered as known, and are used to build a matching production simulator  2 , by learning on said data. The data of “blind” interval are considered unknown or at least are concealed during the building of production simulator. They are then compared to data forecast by production simulator  2  over said “blind” interval given production parameters over the “blind” interval. A blind test is considered satisfactory when the forecast data reproduce with enough accuracy the history data over said concealed interval. 
     A blind test then comprises the following steps:
         determining a production simulator  2  matching history data HD over a time interval preceding T−Ny,   forecasting quantities produced over a time interval [T−Ny, T],   the blind test being satisfactory when:       

     
       
         
           
             
               
                 
                   
                      
                     
                       
                         Q 
                         
                           ϕ 
                            
                           
                               
                           
                            
                           ktb 
                         
                       
                       - 
                       
                         Q 
                         
                           ϕ 
                            
                           
                               
                           
                            
                           ktbHD 
                         
                       
                     
                      
                   
                   
                     [ 
                     
                       
                         T 
                         - 
                         Ny 
                       
                       , 
                       T 
                     
                     ] 
                   
                 
                 
                   
                      
                     
                       Q 
                       
                         ϕ 
                          
                         
                             
                         
                          
                         ktbHD 
                       
                     
                      
                   
                   
                     [ 
                     
                       
                         T 
                         - 
                         Ny 
                       
                       , 
                       T 
                     
                     ] 
                   
                 
               
               ≤ 
               
                 ɛ 
                 1 
               
             
             , 
           
         
       
     
     for more than p % of existing Q φktbHD  values and the cumulated oil produced over the same [T−Ny, T] time interval is accurate up to ϵ 2 , where 
     Q φktb  are quantities produced per phase, per well, per layer (or group of layers) and per time, determined by the production simulator, 
     Q φktbHD  are the same quantities produced per phase, per well, per layer (or group of layers) and per time, found in history data, 
     [T−Ny, T] is the time interval comprising the most recent N years before time T, 
     T being the last date for which history data is made available, 
     ∥Z∥ [T     1     ,T     2     ]  denotes a norm of Z over time interval [T 1 ,T 2 ], 
     ϵ 1  being a positive number small with respect to 1, and 
     ϵ 2  being a positive number small with respect to 1, and p being a positive number close to 100%. 
     The particular values of p=90%, ϵ 1 =0.1 and ϵ 2 =0.1 have been found satisfactory to assert a good blind test. A period of N=3 years is also satisfactory. 
     The norm used herein for comparison may be any one, for instance: least square or weighted least square. 
     Another way to check the Vapnik condition is expressed by measuring a forecast stability property. Such property test the stability of the production simulator  2  toward its output data in response of a slight variation of the input data. Input data are history data HD comprising production parameters PP and quantities produced Q φktbHD  in the past, that is over a [T 0 , T] time interval. Based on these nominal data PP and Q φktbHD , a nominal production simulator  2  is built. These data are then slightly varied to obtain corresponding data PP′ and Q φktbHD ′. Based on these slightly varied input data another production simulator is built that is expected to be close enough to nominal production simulator  2 . 
     Output data, that is quantities produced Q φktb  and Q φktb ′ are forecast respectively by nominal production simulator  2  and by other production simulator, over a future time interval [T, T+My], and are then compared. 
     The forecast stability property is verified when 
     
       
         
           
             
               
                 
                    
                   
                     PP 
                     - 
                     
                       PP 
                       ′ 
                     
                   
                    
                 
                 
                   [ 
                   
                     
                       T 
                       0 
                     
                     , 
                     T 
                   
                   ] 
                 
               
               
                 
                    
                   PP 
                    
                 
                 
                   [ 
                   
                     
                       T 
                       0 
                     
                     , 
                     T 
                   
                   ] 
                 
               
             
             ≤ 
             
               ɛ 
                
               
                   
               
                
               and 
                
               
                   
               
                
               
                 
                   
                      
                     
                       
                         Q 
                         
                           ϕ 
                            
                           
                               
                           
                            
                           ktbHD 
                         
                       
                       - 
                       
                         Q 
                         
                           ϕ 
                            
                           
                               
                           
                            
                           ktbHD 
                         
                         ′ 
                       
                     
                      
                   
                   
                     [ 
                     
                       
                         T 
                         0 
                       
                       , 
                       T 
                     
                     ] 
                   
                 
                 
                   
                      
                     
                       Q 
                       
                         ϕ 
                          
                         
                             
                         
                          
                         ktbHD 
                       
                     
                      
                   
                   
                     [ 
                     
                       
                         T 
                         0 
                       
                       , 
                       T 
                     
                     ] 
                   
                 
               
             
             ≤ 
             ɛ 
           
         
       
     
     implies that 
     
       
         
           
             
               
                 
                    
                   
                     
                       Q 
                       
                         ϕ 
                          
                         
                             
                         
                          
                         ktb 
                       
                     
                     - 
                     
                       Q 
                       
                         ϕ 
                          
                         
                             
                         
                          
                         ktb 
                       
                       ′ 
                     
                   
                    
                 
                 
                   [ 
                   
                     T 
                     , 
                     
                       T 
                       + 
                       My 
                     
                   
                   ] 
                 
               
               
                 
                    
                   
                     Q 
                     
                       ϕ 
                        
                       
                           
                       
                        
                       ktb 
                     
                   
                    
                 
                 
                   [ 
                   
                     T 
                     , 
                     
                       T 
                       + 
                       My 
                     
                   
                   ] 
                 
               
             
             ≤ 
             
               n 
                
               
                   
               
                
               ɛ 
             
           
         
       
     
     Where 
     PP are production parameters, 
     PP′ are slightly varying production parameters, 
     Q φktbHD  are quantities produced per phase φ, per well k, per layer (or group of layers) b and per time t, found in history data HD, 
     Q φktbHD ′ are slightly varying quantities produced per phase φ, per well k, per layer (or group of layers) b and per time t, found in a slightly varying history data, 
     Q φktb  are quantities produced per phase φ, per well k, per layer (or group of layers) b and per time t, determined by the production simulator  2 , 
     Q φktb ′ are quantities produced per phase φ, per well k, per layer (or group of layers) b and per time t, determined by another close enough production simulator determined out of slightly varying history data, 
     [T 0 , T] is the time interval from time T 0  to time T, being respectively the initial and the last date for which history data (HD) is available, 
     [T, T+My] is the time interval comprising the M years after time T, 
     ∥Z∥ [T     1     ,T     2     ]  denotes a norm of Z over time interval [T 1 ,T 2 ], 
     ϵ being a positive number small with respect to 1, and 
     n being a small integer lesser than 5. 
     The important value here is the ratio n between the input variation allowed ϵ, and the output variation nϵ obtained. The values of ϵ=0.05, n=2 have been found satisfactory. A horizon of M=3 years is also satisfactory when considering the accuracy objectives. 
     The norm used herein for comparison may be any one, for instance: least square or weighted least square. 
     The three described ways to check the Vapnik condition can be use either separately or concurrently. 
     As already mentioned, the heart of the present disclosure is the production simulator  2 . Said production simulator  2  may use behavioral physics laws such as reservoir physics laws  6  and well physics laws  7  in order to be sufficiently precise to accurately match the history data HD. However the VC-dimension h of the space of solutions S must remain small enough so as to verify said Vapnik condition. 
     Two approaches are proposed here to reach such result. Both approaches comprise using physics laws and applying them to a reservoir model. 
     In a first approach, also called upscaling, both said reservoir model and physics laws start with detailed formulations that are gradually simplified/scaled by approximating when and where some homogeneity can be observed, until a stop condition is reached. Said condition is reached by upscaling a reservoir partition, rock properties RP, laws of reservoir physics  6  and laws of well physics  7  until said Vapnik condition is verified. 
     According to a second approach, also called downscaling, both said reservoir model and physics laws start with coarse formulations that are gradually complexified/scaled by detailing when and where some substantial variation can be observed, until a stop condition is reached. Said condition is reached by downscaling a reservoir partition, rock properties RP, laws of reservoir physics  6  and laws of well physics  7  will keeping said Vapnik condition verified, until the production simulator  2  matches history data HD. 
     Both approaches may be used alone separately or may be used alternately. For instance, one may upscale the geology from a fine model by merging parts, and then locally downscale back one sub-geology that cannot be matched, thus revealing a substantial change of properties inside. 
     At this step, whatever the approach used, the structure of the production simulator  2  is defined. However, said production simulator  2  depends on several parameters α, that must be further trimmed in order for the production simulator  2  to be operative. Depending on parameters α, several production simulators  2  may be candidate solutions. These several candidate solutions are checked against a forecast expected risk R(α) for each possible set of parameters α until finding the optimal set of parameters α minimizing said expected risk R(α). 
     According to  FIG. 1 , a reservoir G may be modeled by considering its geology, that is, the closure of the rock volume containing oil, and parting it using a reservoir partition. 
     When using an upscaling approach, a first fine partition may be defined by crossing x-y areas indexed by letter a, each e.g. comprising at least one well  11 , and z areas indexed by letter b. In the example of  FIG. 1 , four such x-y areas (a=1 . . . 4) are used and five (b=1 . . . 5)  1  areas are used to initially part the reservoir G. The reservoir G is thus initially parted into elementary parts G ab  such that 
     
       
         
           
             G 
             = 
             
               
                 ⋃ 
                 
                   a 
                   = 
                   1 
                 
                 A 
               
                
               
                 
                   ⋃ 
                   
                     b 
                     = 
                     1 
                   
                   B 
                 
                  
                 
                   G 
                   ab 
                 
               
             
           
         
       
     
     with G ab ∩G a′b′ =Ø for (a,b)≠(a′,b′) (two different parts are disjoined), where a {1 . . . A} describes a x-y area, and b {1 . . . B} describes a 1 layer. 
     Starting from this initial reservoir partition, said partition is upscaled by considering elementary parts G ab , and gradually merging adjacent ones together when they exhibit homogeneous rock properties RP. The result is a new coarser partition, comprising sub-geologies G z  where z∈{1 . . . Z}. In  FIG. 1 , three such sub-geologies are shown. G 1  gathers G 11 , G 12 , G 13 , G 14  and G 15 , exhibiting a homogenous behavior. G 2  gathers G 21 , G 22 , G 23 , G 24 , G 25 , G 31 , G 32 , G 33 , G 34  and G 35 . G 3  gathers G 31 , G 32 , G 33 , G 34  and G 35 . In real cases a sub-geology typically includes from 3 to 50 wells. Said upscaling of the geology partition is a first way to reduce the dimension h of the space of solutions S. The size of the space of solutions then depends on the number of geologies which is of an order of few units instead of over 100 000s cells as in a meshed prior art model. 
     When using a downscaling approach, the process starts from a coarse partition, e.g. composed of a single part corresponding to the whole reservoir G. Said coarse partition s then parte into sub-geologies G z  where z∈{1 . . . Z} where and every time a substantial change of properties is present around the boundary between said sub-geologies. So doing, a homogeneous behavior may be expected in every sub-geology, while keeping the number of such sub-geologies as reduced as possible. 
     Rock properties RP comprises mainly the rock porosity, permeability k and relative permeability k rφz , used to determine the dynamic of fluid through rock, but also other property such as net pay, heat capacity or conductivity, as relevant. Since the sub-geology becomes the new elementary volume unit, all of these rock properties RP, are considered to be fairly constant over a given sub-geology G z . 
     When using a upscaling approach rock properties RP are homogenized over each sub-geology G z , according to averaging formula: 
     
       
         
           
             
               
                 RP 
                 z 
               
               = 
               
                 
                   1 
                   
                     V 
                     z 
                   
                 
                  
                 
                   
                     ∫ 
                     
                       ∫ 
                       ∫ 
                     
                   
                   
                     G 
                     z 
                   
                 
                  
                 
                   RP 
                    
                   
                     ( 
                     
                       x 
                       , 
                       y 
                       , 
                       z 
                     
                     ) 
                   
                 
                  
                 dxdydz 
               
             
             , 
           
         
       
     
     where V z  is the volume of sub-geology G z . 
     When instead using a downscaling approach, rocks properties (RP) are downscaled by defining new separate rock properties RP z  over each new sub-geology (G z ) obtained by parting along a discontinuity. 
     With respect to  FIG. 3 , is now described in more details the content of production simulator  2 . Said production simulator  2  module may be parted into two main modules  6 ,  7 . A first module implements laws of reservoir physics  6 . Given a set of production parameters PP, said module provides dynamic characteristics of the fluids across the reservoir, at least at the entrance of each well  11  and at each sub-geology b. Said dynamic characteristics are e.g. expressed as a velocity field. 
     Said laws of reservoir physics  6  are either upscaled or downscaled in such a way they apply with functioning parameters of the sub-geology G z . Also, space and times scales associated with the sub-geology G z  are determined in such a way that the associated space of solutions is consistent with the complexity of history data HD at the well level. For instance, if insufficient data richness is available on layer-related production (m too small), well production will be summed up, partially (some layers are grouped) or totally (all layers are grouped): 
     
       
         
           
             
               Q 
               
                 ϕ 
                  
                 
                     
                 
                  
                 kt 
               
             
             = 
             
               
                 ∑ 
                 
                   b 
                   ∈ 
                   
                     { 
                     
                       1 
                        
                       … 
                        
                       
                           
                       
                        
                       B 
                     
                     } 
                   
                 
               
                
               
                 Q 
                 
                   ϕ 
                    
                   
                       
                   
                    
                   ktb 
                 
               
             
           
         
       
     
     In such instance, the production simulator  2  only describes production per well and not production per well and per layer (or group of layers). 
     The upscaling/downscaling process also applies to the laws. A variation in number and complexity of laws of physics and of well may be obtained by using more simple or instead more detailed behavior models and formulas. For instance Darcy&#39;s law is a simplification of the more general Navier-Stokes&#39;s law. The order of the formulas can also be changed either increased or decreased according to the Vapnik condition intended. Some parameters may either be constant or refined by a varying function of another parameter or variable. Depending on the way the field has been exploited so far, heat transfer can be considered or not, thus employing or disregarding heat transfer laws. 
     In a similar fashion, well transfer functions may sometimes be linearized or approximated around their functioning point. 
     Such concordance is to be considered on partial time intervals or on partial spatial areas of the hydrocarbon field in accordance with the richness (dimension m) of detail of data available in history data HD. 
     The laws of reservoir physics  6  are, in a known manner, derived from the (Navier)-Stokes equations of conservation of momentum and conservation of mass for a fluid, said fluid successively corresponding to phases, evolving in a rock modeled as a porous medium only characterized by its averaged porosity Φ, permeability k and relative permeability k rφz . 
     Usual laws of reservoir physics  6  are derived by using general flow model such as the Navier-Stokes equations coupled with multiphase transport considered at the microscopic scale. Fluids are evolving in a domain obtained as the complement of rock, which may contain a large variety of obstacle topologies and geometries. The upscaling/downscaling process consists in determining the effective dynamics of fluids in the porous medium in which the rock structure is only described by the average porosity, permeability and relative permeability at a given time t. 
     Fluid propagation in the reservoir G is derived from the general Navier-Stokes equations, which describe conservation of momentum for a fluid: 
     
       
         
           
             
               ρ 
                
               
                 ( 
                 
                   
                     
                       ∂ 
                       u 
                     
                     
                       ∂ 
                       t 
                     
                   
                   + 
                   
                     
                       ( 
                       
                         u 
                         · 
                         ∇ 
                       
                       ) 
                     
                      
                     u 
                   
                 
                 ) 
               
             
             = 
             
               
                 ∇ 
                 
                   · 
                   T 
                 
               
               + 
               f 
             
           
         
       
     
     where u is the fluid velocity, ρ is the fluid density, T the stress tensor and f body forces acting on the fluid (for oil in a reservoir, f is the gravity: f=ρ·g). 
     These are complemented by the conservation of fluid mass: 
     
       
         
           
             
               
                 
                   ∂ 
                   ρ 
                 
                 
                   ∂ 
                   t 
                 
               
               + 
               
                 ∇ 
                 
                   · 
                   
                     ( 
                     
                       ρ 
                        
                       
                           
                       
                        
                       u 
                     
                     ) 
                   
                 
               
             
             = 
             0 
           
         
       
     
     And for each phase φ∈{oil, water, gas}: 
     
       
         
           
             
               
                 
                   ∂ 
                   
                     ( 
                     
                       ρ 
                        
                       
                           
                       
                        
                       
                         S 
                         ϕ 
                       
                     
                     ) 
                   
                 
                 
                   ∂ 
                   t 
                 
               
               + 
               
                 ∇ 
                 
                   · 
                   
                     ( 
                     
                       ρ 
                        
                       
                           
                       
                        
                       
                         S 
                         ϕ 
                       
                        
                       u 
                     
                     ) 
                   
                 
               
             
             = 
             
               ∇ 
               
                 · 
                 
                   J 
                   ϕ 
                 
               
             
           
         
       
     
     Where S φ  denotes phase φ saturation and J φ  at diffusion flux. Of course, one has: 
     
       
         
           
             
               
                 ∑ 
                 ϕ 
               
                
               
                 S 
                 ϕ 
               
             
             = 
             
               
                 1 
                  
                 
                     
                 
                  
                 and 
                  
                 
                     
                 
                  
                 
                   
                     ∑ 
                     ϕ 
                   
                    
                   
                     J 
                     ϕ 
                   
                 
               
               = 
               0 
             
           
         
       
     
     Since reservoir flows are usually characterized by small Reynolds numbers, i.e. creeping flows, the Navier-Stokes equations can generally be simplified into Stokes equations, assuming stationary, incompressible flow: 
     μ∇ 2 u i +ρg i −∂ i p=0 and ∇·u=0 where u is the viscosity, u i  is the velocity in the i direction, g i  is the gravity component in direction i and p is the pressure. 
     Using a volume averaging procedure, the Stokes equations may be homogenized so that the effective viscous resisting force is proportional to the velocity, and opposite in direction. One may therefore write in the case of isotropic porous media 
     
       
         
           
             
               
                 
                   
                     - 
                     
                       μΦ 
                       k 
                     
                   
                    
                   
                     u 
                     i 
                   
                 
                 + 
                 
                   ρ 
                    
                   
                       
                   
                    
                   
                     g 
                     i 
                   
                 
                 - 
                 
                   
                     ∂ 
                     i 
                   
                    
                   p 
                 
               
               = 
               0 
             
             , 
           
         
       
     
     where k denotes the permeability of the porous medium and Φ is the porosity. This gives the velocity in terms of pressure gradient 
     
       
         
           
             
               
                 u 
                 i 
               
               = 
               
                 
                   - 
                   
                     k 
                     Φμ 
                   
                 
                  
                 
                   ( 
                   
                     
                       
                         ∂ 
                         i 
                       
                        
                       p 
                     
                     - 
                     
                       ρ 
                        
                       
                           
                       
                        
                       
                         g 
                         i 
                       
                     
                   
                   ) 
                 
               
             
             , 
           
         
       
     
     which gives Darcy&#39;s law. In the case of anisotropic porous media, one ends up with 
     
       
         
           
             
               
                 u 
                 i 
               
               = 
               
                 
                   - 
                   
                     1 
                     Φμ 
                   
                 
                  
                 
                   
                     ∑ 
                     j 
                   
                    
                   
                     
                       K 
                       ij 
                     
                      
                     
                       ( 
                       
                         
                           
                             ∂ 
                             j 
                           
                            
                           p 
                         
                         - 
                         
                           ρ 
                            
                           
                               
                           
                            
                           
                             g 
                             j 
                           
                         
                       
                       ) 
                     
                   
                 
               
             
             , 
           
         
       
     
     where K denotes the symmetric permeability tensor and the sum is over the three directions j. The resulting equation of mass conservation of fluid is given by 
     
       
         
           
             
               
                 
                   ∂ 
                   
                     ( 
                     ρΦ 
                     ) 
                   
                 
                 
                   ∂ 
                   t 
                 
               
               + 
               
                 ∇ 
                 
                   · 
                   
                     ( 
                     
                       ρ 
                        
                       
                           
                       
                        
                       u 
                     
                     ) 
                   
                 
               
             
             = 
             0. 
           
         
       
     
     Actually, the fluid is generally made of gas (g), oil (o) and water (w), whose composition might be complex, depending for instance on their salinity and hydrocarbon chains. Mass conservation of phase φ∈{o,w,g} at the upscaled level may be written as: 
     
       
         
           
             
               
                 
                   ∂ 
                   
                     ( 
                     
                       
                         ρ 
                         ϕ 
                       
                        
                       
                         S 
                         ϕ 
                       
                        
                       Φ 
                     
                     ) 
                   
                 
                 
                   ∂ 
                   t 
                 
               
               + 
               
                 ∇ 
                 
                   · 
                   
                     ( 
                     
                       
                         ρ 
                         ϕ 
                       
                        
                       
                         u 
                         ϕ 
                       
                     
                     ) 
                   
                 
               
             
             = 
             0 
           
         
       
     
     where u φ , ρ φ , S φ  respectively denote the velocity, density, saturation and diffusion flux of phase φ. 
     In any case, one has to determine closure laws for phase velocity u φ  in terms of average flow characteristics like velocity u and pressure p and phase φ saturation. Consistency relations have to be satisfied such as 
     
       
         
           
             
               
                 ∑ 
                 ϕ 
               
                
               
                 S 
                 ϕ 
               
             
             = 
             1. 
           
         
       
     
     Closure of phase φ velocity involves the so-called relative permeability coefficient k rφ  accounting for differential mobility of phases 
     
       
         
           
             
               u 
               
                 ϕ 
                  
                 
                     
                 
                  
                 k 
               
             
             = 
             
               
                 - 
                 
                   k 
                   
                     Φμ 
                     ϕ 
                   
                 
               
                
               
                 
                   k 
                   
                     r 
                      
                     
                         
                     
                      
                     ϕ 
                   
                 
                  
                 
                   ( 
                   
                     
                       ∇ 
                       
                         P 
                         ϕ 
                       
                     
                     - 
                     
                       
                         ρ 
                         ϕ 
                       
                        
                       g 
                     
                   
                   ) 
                 
               
             
           
         
       
     
     where μ φ  denotes the viscosity of phase φ. 
     Finally module  6  implements the laws of reservoir physics by following formulas: 
     
       
         
           
             
               
                 u 
                 
                   ϕ 
                    
                   
                       
                   
                    
                   kz 
                 
               
               = 
               
                 
                   - 
                   
                     k 
                     
                       Φμ 
                       
                         ϕ 
                          
                         
                             
                         
                          
                         c 
                       
                     
                   
                 
                  
                 
                   
                     k 
                     
                       r 
                        
                       
                           
                       
                        
                       ϕ 
                        
                       
                           
                       
                        
                       c 
                     
                   
                    
                   
                     ( 
                     
                       
                         ∇ 
                         
                           P 
                           
                             ϕ 
                              
                             
                                 
                             
                              
                             z 
                           
                         
                       
                       - 
                       
                         
                           ρ 
                           
                             ϕ 
                              
                             
                                 
                             
                              
                             z 
                           
                         
                          
                         g 
                       
                     
                     ) 
                   
                 
               
             
             , 
           
         
       
     
     where: 
     u φkz  is the velocity of phase φ at well k, in sub-geology z, 
     μ φc  is the viscosity of phase φ, in sub-geology z, 
     ρ φc  is the density of phase φ, in sub-geology z, 
     P φz  is the pressure of phase φ, in sub-geology z, 
     g is the gravity vector, 
     k is a permeability coefficient, and 
     k rφz  is a relative permeability coefficient of phase φ, in sub-geology z. 
     The laws of reservoir physics  6  may also comprise, if corresponding data are available in history data HD, heat transfer laws between a fluid or a gas and a rock given by the following formulas: 
       Φ∂ t (ρ w   S   w +ρ g   S   g )+∇·(ρ w   u   w +ρ g   u   g )=0
 
       Φ∂ t (ρ o   S   o )+∇·(ρ o   u   o )=0,
 
         S   o   +S   w   +S   g =1, 
       ∂ t ( E   s   +E   f )+∇·( U   f −λ( T )∇ T )=0, where
 
     T=T(x,y,z) is the temperature and can vary over the reservoir,
         Φ is the rock porosity,   S φ  is the saturation of phase φ,   ρ φ  is the density of phase φ,   u φ  is the velocity of phase φ,   E is the volumetric internal energy (indexes s and f corresponding respectively to solid and fluid phases),       

         U   f   =U   g   +U   o   +U   w  is the enthalpy flux, where  U   φ =ρ φ   h   φ   u   φ ,
 
     h φ  is the specific enthalpy of phase φ, 
     h g =h w +Λ, Λ being the specific heat of water vaporization, 
     g, w, o indexes being respectively for gas, water and oil, 
     λ(T) is the reservoir conductivity coefficient. 
     Additionally, some variables in the production simulator  2  may be constant or may be detailed by considering them as variables e.g. of local pressure P and the local temperature T. So the laws of reservoir physics  6  may further comprise phase laws given by: 
     μ φz =μ φz (P,T) the viscosity of phase φ at sub-geology z, function of the local pressure P and the local temperature T; 
     ρ φz =ρ φz (P,T) the density of phase φ at sub-geology z, function of the local pressure P and the local temperature T; 
     k rφz =k rφz (P,T) the relative permeability coefficient of phase φ at sub-geology z, function of the local pressure P and the local temperature T. 
     From said velocities u φkz , known at least at a perforation in layers of the sub-geology z of each well k, second module  7 , implementing well models in the form of laws of well physics  7 , determines the quantities produced Q φktz  of phase φ in sub-geology z, at well k at time t, in function of the production parameters PP ktz  applied to each well k, in sub-geology z, at time t, and of the velocity u φhb  of phase φ at layer b at well k, using formulas: Q φktz =T kz (PP ktz ,u φkz ) where T kz  is a transfer function defined for each well k and each sub-geology z. Such transfer functions are functions depending, inter alia, on local reservoir pressure, geology, skin effect, well/pump design and completion. They can vary over time, as a result of ageing or damage. They are usually tabulated functions, which are derived from past production data. 
     The space of solutions candidate for becoming a production simulator  2  of the hydrocarbon field, is the combination of T (well transfer physics) and u (propagation physics of the reservoir). Each such candidate is associated to and defined by a set of parameters α. These parameters α are those defining the candidate simulator that will link input production parameters PP ktz  to the quantities produced Q φktz . The space of candidate simulators in which they are defined is the result of the upscaling/downscaling process of the reservoir, wells and laws. The simulator, defined by such parameters α will fully characterize the field behavior, well by well, sub-geology by sub-geology, as a response to given PP ktz . These are valid for a given space of allowed values for input production parameters. Said space of allowed values is typically not greater than the envelope of all past production parameters, with an additional variation of +/−30%. 
     Based on the history data HD, each production simulator candidate solution is compared against past data. The candidate solution whose set of parameters minimizes the forecast expected risk R(α) is determined by iteration over said sets of parameters α. 
     In the case of mature fields, the amount m of past production or history data HD is large enough to allow defining a space of solutions S embedding the appropriate physical richness able to capture all key phenomena that (have and) will matter for the future production of the same wells. Such situation allows a trade-off for which the VC-dimension h of space of solutions is suitable with respect to the complexity of available data, therefore minimizing the 
     
       
         
           
             h 
             m 
           
         
       
     
     ratio and hence the Φ and the R(α) values. The forecast expected risk R(α) is minimized and the forecast provided by the production simulator  2  may be considered reliable. 
     For each candidate solution, the forecast expected risk R(α) is bounded from above using the Vapnik formula: 
     
       
         
           
             
               R 
                
               
                 ( 
                 α 
                 ) 
               
             
             ≤ 
             
               
                 
                   R 
                   emp 
                 
                  
                 
                   ( 
                   α 
                   ) 
                 
               
               + 
               
                 Φ 
                  
                 
                   ( 
                   
                     
                       h 
                       m 
                     
                     , 
                     δ 
                   
                   ) 
                 
               
             
           
         
       
     
     R(α) is the forecast expected risk associated with parameters α, 
     R emp (α) is an empirical risk associated with parameters α, determined by a matching process with history data HD, 
     δ is a positive number close to zero, 1-δ defining a probability that the inequality holds, and 
     Φ is a function defined by: 
     
       
         
           
             
               
                 Φ 
                  
                 
                   ( 
                   
                     
                       h 
                       m 
                     
                     , 
                     δ 
                   
                   ) 
                 
               
               = 
               
                 2 
                  
                 
                   
                     
                       2 
                       m 
                     
                      
                     
                       ( 
                       
                         
                           h 
                            
                           
                               
                           
                            
                           
                             log 
                              
                             
                               ( 
                               
                                 
                                   2 
                                    
                                   em 
                                 
                                 h 
                               
                               ) 
                             
                           
                         
                         + 
                         
                           log 
                            
                           
                             ( 
                             
                               2 
                               δ 
                             
                             ) 
                           
                         
                       
                       ) 
                     
                   
                 
               
             
             , 
           
         
       
     
     where 
     h is the Vapnik-Chervonenkis dimension of the space of solutions, and 
     m is the number of independent measures available in history data HD, 
     e is equal to exp(1). 
     The best retained production simulator  2  is determined and defined by a set of optimal parameters α opt  that minimizes the forecast expected risk R(α). 
     Once a production simulator  2  is thus determined and optimized so as to respect the matching condition, the Vapnik condition and to minimize the forecast expected risk R(α), it can be used inside an optimizer  1 . The optimizer  1  generates scenarios of production parameters PP and applies the production simulator  2  over these scenarios. Many such runs are then iterated over different sets of production parameters PP. At each iteration, a gain value  5  is calculated derived from the quantity produced Q φktz  forecast by production simulator  2 . The resulting gain value  5  may be used to select the next scenario. So doing an optimal set of production parameters PP can be obtained that optimize said gain value  5 . 
     Said optimized gain value  5  can be a net present value NPV or reserves RES of the hydrocarbon field. 
     Any gain values  5  can be determined by module  4  from quantities produced Q φktz  output by optimizer  1 , by taking into account the necessary economic parameters or indexes, as is well known by the one skilled in the art. 
     Said net present value NPV may e.g. be determined using the formula: 
     
       
         
           
             NPV 
             = 
             
               
                 
                   ∑ 
                   i 
                 
                  
                 
                   
                     ( 
                     
                       
                         ∑ 
                         k 
                       
                        
                       
                         
                           ∑ 
                           z 
                         
                          
                         
                           
                             P 
                             kz 
                           
                           * 
                           
                             ( 
                             
                               1 
                               - 
                               
                                 R 
                                 ik 
                               
                             
                             ) 
                           
                         
                       
                     
                     ) 
                   
                   * 
                   
                     
                       S 
                       i 
                     
                     
                       
                         ( 
                         
                           1 
                           + 
                           d 
                         
                         ) 
                       
                       i 
                     
                   
                 
               
               - 
               
                 
                   ∑ 
                   i 
                 
                  
                 
                   
                     ( 
                     
                       
                         
                           ∑ 
                           k 
                         
                          
                         
                           I 
                           ik 
                         
                       
                       + 
                       
                         
                           ∑ 
                           k 
                         
                          
                         
                           OC 
                           ik 
                         
                       
                       + 
                       
                         
                           ∑ 
                           k 
                         
                          
                         
                           
                             ∑ 
                             z 
                           
                            
                           
                             ( 
                             
                               
                                 
                                   TO 
                                   i 
                                 
                                 * 
                                 
                                   P 
                                   kz 
                                 
                               
                               + 
                               
                                 
                                   TL 
                                   i 
                                 
                                 * 
                                 
                                   L 
                                   kz 
                                 
                               
                             
                             ) 
                           
                         
                       
                     
                     ) 
                   
                   * 
                   
                     1 
                     
                       
                         ( 
                         
                           1 
                           + 
                           d 
                         
                         ) 
                       
                       i 
                     
                   
                 
               
             
           
         
       
     
     where: 
     P kz  is oil production (in barrels) for well k and sub-geology z, 
     R ik  is tax and royalties for well k and year i, 
     S i  is the oil sale price (per barrel) for year i, 
     d is the percentage discount rate, 
     I ik  is investment made on well k during year i, 
     OC ik  is operating costs for well k during year i, 
     L kz  is the liquid production (in barrels) for well k and sub-geology z, 
     TO i  is treatment cost (per barrel of oil), for year i. 
     TL i  is treatment cost (per barrel of liquid), for year i 
     An alternate choice is reserves RES value of the hydrocarbon field, defined as the cumulative oil produced over a given time period. Others choices are possible. 
     Parallel Production Simulator 
     In the above, embodiments were described for building a reliable production simulator for a mature oil or natural gas field. The production simulator allows to model the behavior of the oil or natural gas field and to forecast produced quantities for a given scenario of production parameters. However, in practice, substantial variations in operation can be envisaged such that billions of billions of scenarios may exist. Traditional simulators, such as meshed-based or behavior-based simulators, iterate timewise on the model and as such require an excessive amount of computation time to run multiple scenarios associated with multiple hypotheses. 
     In the following, embodiments for implementing the production simulator described above to allow for running multiple scenarios in parallel are provided. The embodiments, as further described below, make use of vectorized computation hardware to provide a parallel production simulator over multiple scenarios. By leveraging the computation power of the vectorized computation hardware, multiple scenarios can be computed in the time that it takes to compute a single scenario in a state of the art simulator. Specifically, the production of the oil field is predicted, well by well, in parallel, for each scenario of the multiple scenarios. In an embodiment, the production parameters of the multiple scenarios are aligned in the memory of the vectorized computation hardware, which allows leveraging the hardware power to compute multiple scenarios in a single pass. 
     For the purpose of illustration, embodiments will be described with reference to an example oil field  400  illustrated in  FIG. 4 . However, as would be understood by a person of skilled in the art based on the teachings herein, embodiments are not limited to example oil field  400 . As shown in  FIG. 4 , example oil field  400  includes a plurality of wells  404   a - g  (W 1 -W 7 ). According to embodiments, wells  404   a - g  may include horizontal and vertical wells. In addition, alternatively or additionally, wells  404   a - g  may include, without limitation, field elements like perforations, multiple strings, or any controlled device that can affect production of the oil field. 
     According to embodiments, oil field  400  can form a single zone or can be divided into multiple zones. In the embodiment illustrated in  FIG. 4 , oil field  400  is divided into a plurality of zones  402   a - c  (Z 1 -Z 3 ). Each well  404  of the plurality of wells  404   a - g  belongs to a respective zone  402  of the plurality of zones  402   a - c . Specifically, wells  404   a - c  belong to zone  402   a , wells  404   d - e  belong to zone  402   b , and wells  404   f - g  belong to zone  402   c . A zone may defined as an arbitrary group of wells, a physical region of the oil field, an administrative partition of the oil field, a vertical separation of layers, a part of the oil field separated by a fault from other parts, a surface installation, a sub-geology or a local region exhibiting a specific behavior. A zone may be independent or connected to other zones of the oil field. For example, in example oil field  400 , zones  402   a - c  may or may not be connected to each other by having fluid transfer between them. Further, a zone may be divided into a number of subzones, which themselves may also contain subzones. 
     As noted above, embodiments enable scaling the production simulator described above to run multiple scenarios at the same time. A scenario according to embodiments is defined by a data set that includes production parameters of existing wells and, if any, the locations and production parameters of one or more new wells envisioned by the scenario. The scenario may also include production parameters of existing injectors and, if any, the locations and production parameters of new injectors. According to embodiments, the production parameters may include any measured or calculated data, such as, Tubing Head Pressure (THP), Bottom Hole Flowing Pressure (BHFP), well head pressure, gas lift rate, pump frequency, work-over, change of completion, etc., and for new wells, the drilling time or completion, for example. 
     Different scenarios can be tested using the production simulator according to embodiments. The scenarios are executed on the same model of the oil field, as generated by the production simulator, but using different production parameter data sets. For example and without limitation, scenarios for changing the current production parameters of the oil field, converting an existing producer to an injector, adding one or more new wells (producers, injectors, etc.), perforating into a new layer, and/or isolating an existing layer can be tested. 
     For the purpose of illustration,  FIG. 5  shows example scenarios S 1 , S 2 , and S 3  that may be tested for example oil field  400  discussed above with reference to  FIG. 4 . Scenario S 1  describes operating oil field  400  with normal production parameters, for example, corresponding to current production parameters. Scenario S 1  may be used as a baseline for evaluating other scenarios. Scenario S 2  describes making a conversion  502  at well W 7  of the oil field. For example, well W 7  may be converted from a producer well to an injector well. Scenario S 3  describes the addition of a new well  504  (W 8 ) in the zone Z 3  of the oil field. 
     For each scenario, as further described below, the production simulator predicts the production of the oil field, well by well, and in the case of a multi-layered geology, by layer or group of layers. In an embodiment, for each scenario, the production simulator computes the quantities Q φktz =f(PP) per phase φ (oil, water, and gas), per well ω and per time step t as a function of production parameters PP corresponding to the scenario. In another embodiment, as discussed above, the computed quantities may be of the form Q φktz , i.e., the quantities produced of phase φ at well k in sub-geology z at time step t. 
     In an embodiment, to fully leverage the computation power of the vectorized computation hardware, the simulation data is organized in memory to facilitate the simulation of multiple scenarios in parallel. This is illustrated, for example, in  FIG. 6  which shows a memory representation of the scenarios S 1 , S 2 , and S 3  described above. As shown, the simulation data is organized by data type (e.g., production parameter, equation result, output) with each data type being represented by a single one-dimensional array at each time step t of the simulation. Each well of each scenario is assigned the same index in each of the one-dimensional arrays corresponding to the different data types. 
     At the beginning of the simulation (e.g., time step t=1), production parameter data sets  608   a ,  608   b , and  608   c  corresponding respectively to the plurality of scenarios being tested are received. The production parameter data sets are aligned into corresponding one-dimensional arrays  602  formed in memory. For example, as shown in  FIG. 6 , the production parameter data set of each scenario S 1 , S 2 , and S 3  may include any measured or calculated data, such as, a THP value and a Choke value for each well in the scenario. The production parameter data sets are aligned into a THP one-dimensional array  602   a  and a Choke one-dimensional array  602   b . The THP/Choke one-dimensional array  602   a/b  includes the THP/Choke parameter value of each well of each scenario. A well that appears in multiple scenarios, such as well  404   a  for example, will be associated with multiple entries in the one-dimensional array, each entry corresponding to one of the multiple scenarios. The alignment of production parameter data sets into one-dimensional arrays as described above is performed repeatedly for each time step t of the simulation. 
     In an embodiment, the one-dimensional array containing the production parameters for each scenario at each time step t can be reduced to only include changes across time steps of said production parameter during the duration of the simulation. In another embodiment, the one-dimensional array containing the production parameters for each scenario is only created for time steps of the simulation that induce a change for the corresponding production parameter. This will reduce the memory taken by the simulation. 
     In an embodiment, the production parameter data sets are grouped per scenario when aligned in the one-dimensional arrays such that the production parameter data set values of a scenario occupy consecutive cells of the arrays. The starting cell index of each scenario is stored during the simulation. 
     In another embodiment, when a scenario includes new wells or zones, the same new wells or zones may be added to the other scenarios in order to match the scenario with the highest number of wells. The results of the new wells or zones are ignored for the other scenarios. This approach ensures that the production simulator works the same way for all wells without adding special case processing and branching (if-then-else for instance). 
     The actual locations of wells in memory may vary. For example, depending on the underlying hardware, wells of the same zone and/or scenario may be packed together for better memory locality or dispatched in different memory locations to enhance memory bandwidth and layout. Alternatively, wells of the same zone and/or scenario may be partitioned without memory locality, i.e., without them being stored physically near each other. 
     Intermediate/equation results (e.g., BHFP, phase velocities, etc.) and outputs (e.g., produced Oil, Water, and Gas volumes and NPV) of the simulation are organized in a similar fashion as the production parameters in one-dimensional arrays  604  and  606  respectively. Arrays  602 ,  604 , and  606  have all the same size. 
     In an embodiment, arrays  604  and  606  are generated in time step t′=t+1 based on the arrays  602  associated with time step t. In an embodiment, intermediate/equation results and outputs may be stored for each time step of the simulation. 
     In an embodiment, each well of each scenario is associated with the same index in each of the one-dimensional arrays  602 ,  604 , and  606  (i.e., production parameters arrays, equation results arrays, and outputs arrays). For example, well  404   a  of the Scenario S 1  is associated with the first cell in all of the one-dimensional arrays  602 ,  604 , and  606 . Accordingly, a given well of a given scenario can be readily assigned to a data pipeline (e.g., processing thread or lane) by associating its corresponding index with the data pipeline. In an embodiment, once the data is organized in the memory of the vectorized computation hardware, the production simulator is executed in parallel on all scenarios in memory assuming that the computing power is available. 
     In an embodiment, illustrated in  FIG. 7 , the vectorized computation hardware supports Single Instruction, Multiple Threads (SIMT) processing. For example, the vectorized computation hardware may be a General-Purpose Graphics Processing Unit (GPGPU), i.e., a graphics processing unit that performs non-specialized functions typically performed on a Central Processing Unit (CPU). In this embodiment, each well of each scenario is assigned a thread of a plurality of available threads based on the cell index of each well. 
     Using this approach, the production simulator can be scaled up to the maximum number of threads that can be supported by the underlying hardware. Typically, the number of available threads is higher than or equal to the aggregate number of wells in the tested scenarios. If the aggregate number of wells is greater than the number of available threads, the vectorized computation hardware can be leveraged sequentially, testing as many scenarios as can be fitted in a single run and testing additional scenarios in subsequent runs. 
     As shown in  FIG. 7 , in a SIMT architecture, a simulation run begins in step  702 , which includes, in the first step of the simulation, loading the data into the memory of the vectorized computation hardware. In an embodiment, step  702  includes receiving a plurality of production parameter data sets corresponding respectively to a plurality of scenarios. As discussed above, the plurality of scenarios each includes one or more zones and a set of wells of the oil field, and the plurality of production parameter data sets each includes one or more production parameter values for each well of the corresponding scenario. The one or more production parameter values may include, without limitation, for example, a Tubing Head Pressure (THP), a Choke value, and any other measured or calculated Production Parameter relevant to the model. 
     In an embodiment, step  702  may further include assigning each well of each scenario a cell index; and assigning each zone of each scenario a zone cell index. For example, with reference to  FIG. 7 , the well W 1  of the first scenario is assigned the index 0 as a cell index, and the well W 2  of the first scenario is assigned the index 1 as a cell index. The zone comprising the wells W 1  and W 2  in the first scenario is assigned the index 0 as a zone index. Accordingly, the zone cell index assigned to the zone is identical to the cell index assigned to the well W 1  but different than the cell index assigned to the well W 2 . According to embodiments, the cell index assigned to a well may be based on or independent from a zone and/or a scenario comprising the well. 
     Subsequently, step  702  may further include aligning the plurality of production parameter data sets in at least a first one-dimensional array formed in the memory such that a production parameter value for each well of each scenario is stored in a respective cell of the first one-dimensional array, where the respective cell has an index equal to the cell index assigned to the well. For example, with reference to  FIG. 6 , the first one-dimensional array may be THP array  602   a . Accordingly, in this example, the THP production parameter value for the well W 1  of the first scenario is stored in the cell of THP array  602   a  having the index 0, which is equal to the cell index assigned to the well W 1  of the first scenario. 
     Next, thread assignment is performed. Specifically, in an embodiment, the cell index, for each well of each scenario, is associated with a first thread of a plurality of thread; and the zone cell index, for each zone of each scenario, is associated with a second thread of the plurality of threads. The first thread may be identical to or different than the second thread. In the example of  FIG. 7 , the cell index assigned to the well W 1  of the first scenario is associated with a thread  722  of the plurality of threads. The zone cell index assigned to the zone comprising the well W 1  of the first scenario is also associated with thread  722  in this example, though it may be associated with a different thread of the plurality of threads. 
     Once the data has been loaded and thread assignment has been performed, an iteration of the simulation run is executed. In an embodiment, an iteration of the simulation run includes the steps  704 ,  706 ,  708 ,  710 ,  712 ,  714 ,  716 , and  718  further described below. As would be understood by a person of skill in the art based on the teachings herein, these steps may be performed in a different order than shown in  FIG. 7 . For example, the order of steps  712 ,  714 , and  716  may be different in another embodiment. 
     In each iteration, steps  704 ,  706 ,  708 ,  710 ,  712 ,  714 ,  716 , and  718  are performed in parallel for each thread of the plurality of threads, i.e., for each well of each scenario. For the purpose of clarity, steps  704 ,  706 ,  708 ,  710 ,  712 ,  714 ,  716 , and  718  are described below with respect to a given well of a given scenario. 
     In an embodiment, step  704  includes computing, using the first thread associated with the cell index assigned to the well, an intermediate result for the well based on the one or more production parameter values for the well. In an embodiment, the intermediate result includes a Bottom Hole Flowing Pressure (BHFP) at the well, computed according to the equation BHFP(w,t)=F (BHFP,w) (THP(w,t),Choke(w,t),Q(φ,w,t−1)), where F (BHFP,w)  is a function taking as input the production parameters THP and Choke and the quantity produced during the previous time step t−1 at the well w, to forecast the local BHFP of well w at time step t. In an embodiment, the intermediate result for the well is stored in a cell of a one-dimensional array having an index that is equal to the cell index assigned to the well. 
     Step  706  includes synchronizing the plurality of threads and dispatching the intermediate result, computed in step  704 , to a cell of a second one-dimensional array, where the cell of the second one-dimensional array has an index equal to the zone cell index assigned to the zone comprising the well. For example, as shown in  FIG. 7 , the intermediate result associated with well W 1  (as well as the intermediate results associated with the wells W 2  and W 3  belonging to the same zone Z 1  in the first scenario) is dispatched to a cell of a second one-dimensional array  708  having an index (0) equal to the zone cell index assigned to the zone comprising the well W 1  in the first scenario. 
     Step  708  includes computing, using the second thread associated with the zone comprising the well, a zone-based intermediate result for the well based on the intermediate result of the well. In an embodiment, the zone-based intermediate result comprises one or more velocities of one of more phases for each well in the zone. In an embodiment, the velocity of a phase φ in zone Z at time step t is given by the equation: 
     
       
         
           
             
               u 
               
                 ϕ 
                  
                 
                     
                 
                  
                 t 
               
             
             = 
             
               
                 - 
                 
                   k 
                   
                     φμ 
                     b 
                   
                 
               
                
               
                 
                   k 
                   
                     r 
                      
                     
                         
                     
                      
                     ϕ 
                      
                     
                         
                     
                      
                     t 
                   
                 
                  
                 
                   ( 
                   
                     
                       ∇ 
                       
                         P 
                         ϕ 
                       
                     
                     - 
                     
                       
                         ρ 
                         ϕ 
                       
                        
                       g 
                     
                   
                   ) 
                 
               
             
           
         
       
     
     where μ b  is the viscosity of phase φ, ϕ the rock porosity, P φ  is the pressure of phase φ, ρ φ  is the density of phase φ, g is the gravity vector, k is a permeability coefficient, and k rφt  is a relative permeability coefficient of phase φ, at time step t through its dependency on phase saturation. In an embodiment, step  708  further includes the computation of related intermediate zone-based parameters. In an embodiment, the computation in step  708  is done in parallel for all zones of each scenario. As noted above, the second thread may be identical to or different from the first thread associated with the cell index assigned to the well. In another embodiment, the second thread can be independent of any threads associated with any wells of the corresponding zone. 
     Step  710  includes synchronizing the plurality of threads and dispatching the zone-based intermediate result to a cell of a third one-dimensional array having an index equal to the cell index assigned to the well. For example, for the wells W 1 , W 2 , and W 3  of the first scenario, the zone-based intermediate result computed on the second thread associated with the zone comprising the wells (which, in this example, is identical to the first thread associated with the well W 1 ) is dispatched to respective cells (of the third one-dimensional array) having indices that correspond respectively to the cell indices assigned to the wells W 1 , W 2  and W 3  of the first scenario. 
     Subsequently, steps  712 ,  714 , and  716  include computing, using the first thread, quantity results for the well based on the zone-based intermediate result computed in step  708  and/or the intermediate result computed in step  704 . The quantity results computed in steps  712 ,  714 , and  716  may be computed in parallel in an embodiment. In an embodiment, the quantity results comprise one or more volumes of one or more phases, produced at the well during the simulation time step. In an example embodiment, the quantities at the current time step t for each zone Z are given by the equation: 
         Q   φwt   =T   w (BHFP wt   ,u   φt ) 
     where Q φwt  is the quantity produced of phase φ (Oil, Water, Gas) at well w in zone Z at time step t, T w  is a transfer function of well w in zone Z, and u φwt  is the velocity of phase φ at well w in zone Z at time step t. 
     In an embodiment, the simulation run optionally includes in step  718  calculating a Net Present Value (NPV) for each zone of each scenario based on the quantity results computed in steps  712 ,  714 , and  716 . In an embodiment, the NPV is computed as a running sum up to the current time step t according to the equation: 
     
       
         
           
             NPV 
             = 
             
               
                 
                   ∑ 
                   t 
                 
                  
                 
                   
                     ( 
                     
                       
                         ∑ 
                         w 
                       
                        
                       
                         
                           ∑ 
                           z 
                         
                          
                         
                           
                             P 
                             wzt 
                           
                           * 
                           
                             ( 
                             
                               1 
                               - 
                               
                                 R 
                                 tw 
                               
                             
                             ) 
                           
                         
                       
                     
                     ) 
                   
                   * 
                   
                     
                       S 
                       t 
                     
                     
                       
                         ( 
                         
                           1 
                           + 
                           d 
                         
                         ) 
                       
                       t 
                     
                   
                 
               
               - 
               
                 
                   ∑ 
                   t 
                 
                  
                 
                   
                     ( 
                     
                       
                         
                           ∑ 
                           w 
                         
                          
                         
                           I 
                           tw 
                         
                       
                       + 
                       
                         
                           ∑ 
                           w 
                         
                          
                         
                           OC 
                           tw 
                         
                       
                       + 
                       
                         
                           ∑ 
                           w 
                         
                          
                         
                           
                             ∑ 
                             z 
                           
                            
                           
                             ( 
                             
                               
                                 
                                   TO 
                                   tw 
                                 
                                 * 
                                 
                                   P 
                                   wzt 
                                 
                               
                               + 
                               
                                 
                                   TL 
                                   tw 
                                 
                                 * 
                                 
                                   L 
                                   wzt 
                                 
                               
                             
                             ) 
                           
                         
                       
                     
                     ) 
                   
                   * 
                   
                     1 
                     
                       
                         ( 
                         
                           1 
                           + 
                           d 
                         
                         ) 
                       
                       t 
                     
                   
                 
               
             
           
         
       
     
     where P wzt  is the oil quantity (in barrel) produced at time step t for well w∈Z, R tw  is the tax and royalty at time step t for well w∈Z in %, S t  is the oil sale price (per barrel) at time step t, d is the percentage discount rate, I tw  is the investment made at time step t for well w∈Z, OC tw  is the operating cost at time step t for well w∈Z, TO tw  is the treatment cost (per barrel of oil) at time step t for well w∈Z, TL nt  is the treatment cost (per barrel of liquid) at time step t for well w∈Z, and L wzt  is the liquid quantity (in barrel) produced at time step t for well w∈Z. 
     At the end of each iteration, a check is made to determine if the simulation run final time step t final  has been reached. If not, the current time step value is incremented by one and the above described process is repeated beginning at step  704 . Otherwise, the simulation run is terminated in step  720 . The produced quantities (Oil volume, Water volume, Gas volume, NPV) for each well of each scenario over the life of the simulation are output to the user. 
     In another embodiment, illustrated in  FIG. 8 , the vectorized computation hardware supports Single Instruction, Multiple Data (SIMD) processing. For example, the vectorized computation hardware may be a multi-core processor capable of performing the same instruction on multiple data points simultaneously. In this embodiment, a group of wells corresponding to one or more scenarios are associated with a first data pipeline having a plurality of lanes, and each well of the group of wells is associated with a respective lane of the plurality of lanes of the first data pipeline. Further, a group of zones corresponding to one or more scenarios are associated with a second data pipeline having a plurality of lanes, and each zone of the group of zones is associated with a respective lane of the plurality of lanes of the second data pipeline. 
     In an embodiment, each lane of the plurality of lanes of the first or second data pipeline runs on a processor core (or logical core if it uses hyper threading) and makes use of SIMD instructions to parallelize data computation. In other words, vectorization takes place at the instruction level of the CPU. 
     As shown in  FIG. 8 , an SIMD simulation run process is similar to the SIMT process described above with reference to  FIG. 7 . However, where in SIMT a well is assigned to a thread based on their cell index, in SIMD, a group of wells corresponding to one or more scenarios are assigned to a data pipeline having a plurality of lanes. Within the data pipeline, multiple processing lanes are provided by virtue of the SIMD processing. Specifically, each individual well of the group of wells is assigned a SIMD lane within the data pipeline based on their cell index. For example, in  FIG. 8 , a data pipeline  822  is assigned to wells W 1 , W 2 , and W 3  of the first scenario, and each well is associated with a SIMD lane within data pipeline  822 . 
     In an embodiment, the SIMD simulation run may include steps  802 ,  804 ,  806 ,  808 ,  810 ,  812 ,  814 ,  816 ,  818 , and  820 . 
     Step  802  is similar to step  702  of the SIMT process described above. In an embodiment, as in step  702 , step  802  includes receiving a plurality of production parameter data sets corresponding respectively to a plurality of scenarios. Step  802  further includes assigning each well of each scenario a cell index; and assigning each zone of each scenario a zone cell index. The cell index assigned to a well may be identical to or different than a zone cell index assigned to a zone comprising the well. According to embodiments, the cell index assigned to a well may be based on or independent from a zone and/or a scenario comprising the well. Additionally, step  802  includes aligning the plurality of production parameter data sets in at least a first one-dimensional array formed in the memory such that a production parameter value for each well of each scenario is stored in a respective cell of the first one-dimensional array, where the respective cell has an index equal to the cell index assigned to the well. 
     In an embodiment, step  802  further includes associating groups of wells and groups of zones with data pipelines. Specifically, in an embodiment, step  802  includes associating contiguous cell indices, corresponding to a group of wells corresponding to one or more scenarios, with a first data pipeline having a plurality of lanes, where each cell index of the contiguous cell indices is associated with a respective lane of the plurality of lanes of the first data pipeline. For example, with reference to  FIG. 8 , the contiguous cell indices assigned to wells W 1 , W 2 , and W 3  of the first scenario are associated with a first data pipeline  822  having a plurality of lanes. Each cell index of the contiguous cell indices is associated with a respective lane of first data pipeline  822 . 
     Step  802  also includes associating contiguous zone cell indices, corresponding to a group of zones corresponding to one or more scenarios, with a second data pipeline having a plurality of lanes, where each zone cell index of the contiguous zone cell indices is associated with a respective lane of the plurality of lanes of the second data pipeline. 
     In an embodiment, the first or second data pipeline is assigned to a thread of a plurality of threads. 
     Steps  804  through  816  are computed in parallel for each well of the group of wells. For the purpose of clarity, the steps are describe below with respect to a given well of a given group of wells. As would be understood by a person of skill in the art based on the teachings herein, the simulation may involve one or more groups of wells and one or more groups of zones. 
     Step  804  is similar to step  704  described above except that the computation of the intermediate result is performed using the lane of the first data pipeline associated with the well, instead of a thread associated with the well. 
     Step  806  is similar to step  706  of the SIMT process, in that it includes dispatching the intermediate result to a cell of a second one-dimensional array having an index equal to the zone cell index assigned to the zone comprising the well. In an embodiment, the synchronization in step  806  may be optional if the size of a SIMD register is higher than or equal to the number of wells in the simulated scenarios. 
     Step  808  is similar to step  708  described above, except that the computation of the zone-based intermediate result is performed using the respective lane of the second data pipeline corresponding to the zone comprising the well, instead of a thread associated with the zone. As noted above, the second data pipeline may be identical to or different than the first data pipeline. 
     Step  810  is identical to step  710  of the SIMT process, except that the synchronization may be optional in the SIMD process if the size of a SIMD register is higher than or equal to the number of wells in the simulated scenarios. 
     Steps  812 ,  814 ,  816 , and  818  are similar to steps  712 ,  714 ,  716 , and  718  respectively, except that the computations are performed on the respective lane of the first data pipeline associated with the well, instead of a thread associated with the well. Finally, step  820  is identical to step  720  described above with respect to the SIMT process. 
       FIG. 9  illustrates an example process  900  for simulating the production of an oil field according to an embodiment. Example process  900  is provided for the purpose of illustration only and is not limiting of embodiments. Process  900  may be performed by a vectorized computation hardware such as an SIMT or SIMD processor. 
     As shown in  FIG. 9 , process  900  begins in step  902 , which includes receiving a plurality of production parameter data sets corresponding respectively to a plurality of scenarios, where each of the plurality of scenarios includes one or more zones and a set of wells of the oil field and the plurality of production parameter data sets each includes a production parameter value for each well of the corresponding scenario. The production parameter value may include, without limitation, a THP, a Choke value, any other relevant measured or calculated production parameters, and/or a previous time step quantity result associated with the well. 
     In step  904 , process  900  includes assigning each well of each scenario a cell index. 
     In step  906 , process  900  includes assigning each zone of each scenario a zone cell index. 
     Subsequently, in step  908 , process  900  includes aligning the plurality of production parameter data sets in a first one-dimensional array formed in the memory such that the production parameter value for each well of each scenario is stored in a respective cell of the first one-dimensional array, the respective cell having an index equal to the cell index assigned to the well. In an embodiment, the first one-dimensional array is formed in a memory of the vectorized computation hardware. 
     Next, in step  910 , process  900  includes associating the cell index, for each well of each scenario with a first dedicated computation unit of a plurality of computation units. In embodiments, the computation unit may be a thread of a plurality of threads in the case of a SIMT architecture or a lane of a multi-lane data pipeline in the case of a SIMD architecture. 
     Process  900  terminates in step  912 , which includes associating the zone cell index, for each zone of each scenario, with a second dedicated computation unit of the plurality of computation units. 
     In an embodiment, process  900  may further include in parallel, for each well of each scenario, computing an intermediate result for the well based on the production parameter value for the well; computing a zone-based intermediate result for the well based on previous results computed for each well of the zone comprising the well; and computing a quantity result for the well based on the zone-based intermediate result. The zone-based intermediate result may comprise one or more velocities of one or more phases at the well. The quantity result may comprise one or more volumes of one or more phases, produced at the well during a simulation time step. 
     Example Computer System 
     Various embodiments can be implemented, for example, using one or more computer systems, such as computer system  1000  shown in  FIG. 10 . 
     Computer system  1000  includes one or more processors (also called central processing units, or CPUs), such as a processor  1004 . Processor  1004  is connected to a communication infrastructure or bus  1006 . 
     One or more processors  1004  may each be a graphics processing unit (GPU). In an embodiment, a GPU is a processor that is a specialized electronic circuit designed to rapidly process mathematically intensive applications on electronic devices. The GPU may have a highly parallel structure that is efficient for parallel processing of large blocks of data, such as mathematically intensive data common to computer graphics applications, images and videos. In an embodiment, each of the one or more processors  1004  may implement an SIMT or an SIMD architecture. 
     Computer system  1000  also includes user input/output device(s)  1016 , such as monitors, keyboards, pointing devices, etc., which communicate with communication infrastructure  1006  through user input/output interface(s)  1002 . 
     Computer system  1000  also includes a main or primary memory  1008 , such as random access memory (RAM). Main memory  1008  may include one or more levels of cache. Main memory  1008  has stored therein control logic (i.e., computer software) and/or data that when executed by the one or more processors  1008  perform the above described embodiments, including the processes described in  FIGS. 7-9 . 
     Computer system  1000  may also include one or more secondary storage devices or memory  1010 . Secondary memory  1010  may include, for example, a hard disk drive  1012  and/or a removable storage device or drive  1014 . Removable storage drive  1014  may be a floppy disk drive, a magnetic tape drive, a compact disk drive, an optical storage device, a tape backup device, and/or any other storage device/drive. 
     Removable storage drive  1014  may interact with a removable storage unit  1018 . Removable storage unit  1018  includes a computer usable or readable storage device having stored thereon computer software (control logic) and/or data. Removable storage unit  1018  may be a floppy disk, magnetic tape, compact disk, DVD, optical storage disk, and/any other computer data storage device. Removable storage drive  1014  reads from and/or writes to removable storage unit  1018  in a well-known manner. 
     According to an exemplary embodiment, secondary memory  1010  may include other means, instrumentalities or other approaches for allowing computer programs and/or other instructions and/or data to be accessed by computer system  1000 . Such means, instrumentalities or other approaches may include, for example, a removable storage unit  1022  and an interface  1020 . Examples of the removable storage unit  1022  and the interface  1020  may include a program cartridge and cartridge interface (such as that found in video game devices), a removable memory chip (such as an EPROM or PROM) and associated socket, a memory stick and USB port, a memory card and associated memory card slot, and/or any other removable storage unit and associated interface. 
     Computer system  1000  may further include a communications or network interface  1024 . Communications interface  1024  enables computer system  1000  to communicate and interact with any combination of remote devices, remote networks, remote entities, etc. (individually and collectively referenced by reference number  1028 ). For example, communications interface  1024  may allow computer system  1000  to communicate with remote devices  1028  over a communications path  1026 , which may be wired and/or wireless, and which may include any combination of LANs, WANs, the Internet, etc. Control logic and/or data may be transmitted to and from computer system  1000  via communication path  1026 . 
     In an embodiment, a tangible apparatus or article of manufacture comprising a tangible computer useable or readable medium having control logic (software) stored thereon is also referred to herein as a computer program product or program storage device. This includes, but is not limited to, computer system  1000 , main memory  1008 , secondary memory  1010 , and removable storage units  1018  and  1022 , as well as tangible articles of manufacture embodying any combination of the foregoing. Such control logic, when executed by one or more data processing devices (such as computer system  1000 ), causes such data processing devices to operate as described herein. 
     Based on the teachings contained in this disclosure, it will be apparent to persons skilled in the relevant art(s) how to make and use the invention using data processing devices, computer systems and/or computer architectures other than that shown in  FIG. 10 . 
     CONCLUSION 
     The foregoing description of the specific embodiments will so fully reveal the general nature of the disclosure that others can, by applying knowledge within the skill of the art, readily modify and/or adapt for various applications such specific embodiments, without undue experimentation, without departing from the general concept of the present disclosure. Therefore, such adaptations and modifications are intended to be within the meaning and range of equivalents of the disclosed embodiments, based on the teaching and guidance presented herein. It is to be understood that the phraseology or terminology herein is for the purpose of description and not of limitation, such that the terminology or phraseology of the present specification is to be interpreted by the skilled artisan in light of the teachings and guidance. 
     The breadth and scope of embodiments of the present disclosure should not be limited by any of the above-described exemplary embodiments, but should be defined only in accordance with the following claims and their equivalents. 
     For the purpose of illustration and not limitation, various aspects of the present disclosure are set out in the following variants. 
     In a first variant, the present disclosure provides a parallel production simulator for simulating the production of an oil field, comprising: a processor; and a memory coupled to the processor. The processor is configured to: receive a plurality of production parameter data sets corresponding respectively to a plurality of scenarios, the plurality of scenarios each including one or more zones and a set of wells of the oil field, and the plurality of production parameter data sets each including a production parameter value for each well of the corresponding scenario; assign each well of each scenario a cell index; assign each zone of each scenario a zone cell index; align the plurality of production parameter data sets in a first one-dimensional array formed in the memory such that the production parameter value for each well of each scenario is stored in a respective cell of the first one-dimensional array, the respective cell having an index equal to the cell index assigned to the well; associate the cell index, for each well of each scenario, with a first thread of a plurality of threads; associate the zone cell index, for each zone of each scenario, with a second thread of the plurality of threads; and in parallel, for each well of each scenario, using the first thread associated with the corresponding cell index, an intermediate result for the well based on the production parameter value for the well; dispatch the intermediate result to a cell of a second one-dimensional array, the cell of the second one-dimensional array having an index equal to the zone cell index assigned to the zone comprising the well; compute, using the second thread associated with the zone comprising the well, a zone-based intermediate result for the well based on the intermediate result; dispatch the zone-based intermediate result to a cell of a third one-dimensional array, the cell of the third one-dimensional array having an index equal to the cell index assigned to the well; and compute, using the first thread, a quantity result for the well based on the zone-based intermediate result. 
     In a second variant, which is a variant of the first variant, the production parameter value includes a Tubing Head Pressure (THP) or a Choke value. 
     In a third variant, which is a variant of any of the preceding variants, the intermediate result comprises a Bottom Hole Flowing Pressure (BHFP) at the well. 
     In a fourth variant, which is a variant of any of the preceding variants, the zone-based intermediate result comprises one or more velocities of one or more phases at the well. 
     In a fifth variant, which is a variant of any of the preceding variants, the quantity result comprises one or more volumes of one or more phases, produced at the well during a simulation time step. 
     In a sixth variant, which is a variant of any of the preceding variants, the zone cell index for a zone comprising the well is identical or different than the cell index assigned to the well. 
     In a seventh variant, which is a variant of any of the preceding variants, the first thread is identical to or different than the second thread. 
     In an eighth variant, which is a variant of any of the preceding variants, the processor is further configured to synchronize the plurality of threads before dispatching the intermediate result to the cell of the second one-dimensional array. 
     In a ninth variant, which is a variant of any of the preceding variants, the processor is further configured to synchronize the plurality of threads before dispatching the zone-based intermediate result to the cell of the third one-dimensional array. 
     In a tenth variant, which is a variant of any of the preceding variants, the cell index assigned to the well is based on or independent from a zone and/or a scenario of the well. 
     In an eleventh variant, which is a variant of any of the preceding variants, the processor comprises a Single Instruction, Multiple Thread (SIMT) processor. 
     In a twelfth variant, which is a variant of any of the preceding variants, the processor is further configured, in parallel for each well of each scenario, to compute, using the first thread, a NPV result for the well based on the quantity result of the well. 
     In a thirteenth variant, the present disclosure provides a parallel production simulator for simulating the production of an oil field, comprising a processor; and a memory coupled to the processor. The processor is configured to: receive a plurality of production parameter data sets corresponding respectively to a plurality of scenarios, the plurality of scenarios each including one or more zones and a set of wells of the oil field, and the plurality of production parameter data sets each including a production parameter value for each well of the corresponding scenario; assign each well of each scenario a cell index; assign each zone of each scenario a zone cell index; align the plurality of production parameter data sets in a first one-dimensional array formed in the memory such that the production parameter value for each well of each scenario is stored in a respective cell of the first one-dimensional array, the respective cell having an index equal to the cell index assigned to the well; associate contiguous cell indices, corresponding to a group of wells corresponding to one or more scenarios, with a first data pipeline having a plurality of lanes, wherein each cell index of the contiguous cell indices is associated with a respective lane of the plurality of lanes of the first data pipeline; associate contiguous zone cell indices, corresponding to a group of zones corresponding to one or more scenarios, with a second data pipeline having a plurality of lanes, wherein each zone cell index of the contiguous zone cell indices is associated with a respective lane of the plurality of lanes of the second data pipeline; and in parallel, for each well of the group of wells, compute, using respective lane of the first data pipeline, an intermediate result for the well based on the production parameter value for the well; dispatch the intermediate result to a cell of a second one-dimensional array, the cell of the second one-dimensional array having an index equal to the zone cell index assigned to the zone comprising the well; compute, using the respective lane of the second data pipeline corresponding to the zone comprising the well, a zone-based intermediate result for the well based on the intermediate result; dispatch the zone-based intermediate result to a cell of a third one-dimensional array, the cell of the third one-dimensional array having an index equal to the cell index assigned to the well; and compute, using the respective lane of the first data pipeline, a quantity result for the well based on the zone-based intermediate result. 
     In a fourteenth variant, which is a variant of the thirteenth variant, the production parameter value includes a Tubing Head Pressure (THP) or a Choke value. 
     In a fifteenth variant, which is a variant of the thirteenth or fourteenth variant, the intermediate result comprises a Bottom Hole Flowing Pressure (BHFP) at the well. 
     In a sixteenth variant, which is a variant of any of the thirteenth to fifteenth variants, the zone-based intermediate result comprises one or more velocities of one of more phases at the well. 
     In a seventeenth variant, which is a variant of any of the thirteenth to sixteenth variants, the quantity result comprises one or more volumes of one or more phases, produced at the well during a simulation time step. 
     In an eighteenth variant, which is a variant of any of the thirteenth to seventeenth variants, the zone cell index for a zone comprising the well is identical or different than the cell index assigned to the well. 
     In a nineteenth variant, which is a variant of any of the thirteenth to eighteenth variants, the first data pipeline is identical to or different than the second data pipeline. 
     In a twentieth variant, which is a variant of any of the thirteenth to nineteenth variants, the processor comprises a Single Instruction, Multiple Data (SIMD) processor. 
     In a twenty-first variant, which is a variant of any of the thirteenth to twentieth variants, the processor is further configured, in parallel for each well of the group of wells, to compute, using the respective lane of the first data pipeline, a NPV result for the well based on the quantity result of the well. 
     In a twenty-second variant, which is a variant of any of the thirteenth to twenty-first variants, the first or second data pipeline is assigned to a thread of a plurality of threads. 
     In a twenty-third variant, the present disclosure provides a method for simulating the production of an oil field, comprising: receiving a plurality of production parameter data sets corresponding respectively to a plurality of scenarios, the plurality of scenarios each including one or more zones and a set of wells of the oil field, and the plurality of production parameter data sets each including a production parameter value for each well of the corresponding scenario; assigning each well of each scenario a cell index; assigning each zone of each scenario a zone cell index; aligning the plurality of production parameter data sets in a first one-dimensional array such that the production parameter value for each well of each scenario is stored in a respective cell of the first one-dimensional array, the respective cell having an index equal to the cell index assigned to the well; associating the cell index, for each well of each scenario, with a first dedicated computation unit of a plurality of computation units, wherein a computation unit of the plurality of computation units is a thread of a plurality of threads or a lane of a data pipeline; associating the zone cell index, for each zone of each scenario, with a second dedicated computation unit of the plurality of computation units; and in parallel, for each well of each scenario, computing an intermediate result for the well based on the production parameter value for the well; computing a zone-based intermediate result for the well based on previous results computed for each well of the zone; and computing a quantity result for the well based on the zone-based intermediate result. 
     The twenty-third variant can be combined with features of any of the second to twelfth and fourteenth to twenty-second variants described above as would be understood by a person skilled in the art based on the teachings herein.