1. Field of the Invention
The present invention relates to computerized simulation of hydrocarbon reservoirs, and in particular to simulation of wellbore flow in reservoirs with complex multi-lateral wells tightly coupled with thousands of reservoir grid cells in a large high resolution reservoir simulation model.
2. Description of the Related Art
Reservoir simulation is widely used in the petroleum industry to analyze by computerized processing the performance of subsurface hydrocarbon reservoirs and to manage and optimize production from such reservoirs. One type of reservoir simulation is what is known as fully-coupled full-implicit well-reservoir simulation. Presently, most wells drilled are multilateral horizontal wells with long reach to increase reservoir contact. At the same time, finer grid reservoir simulation model are used to enhance the fidelity of recovery process analysis and better optimize and plan future reservoir management operations. As a result, it is not uncommon to have a multi-lateral well penetrating several thousand grid cells.
To properly model the physics of flow in and around the wellbore, the well may also be segmented to represent in detail the flow physics inside the wellbore. This in turns leads to more accurate boundary condition for the inflow performance calculation for fluids flow into and out of a well cell.
So far as is known, current art computerized fully-coupled fully-implicit reservoir simulators have used what are known as the Rowsum or Colsum approximations in the construction of the preconditioning step of the iterative solver of the simulator. This is because earlier methods than the Rowsum or Colsum approximations used either pre-elimination of the well equations using the reservoir equations, or direct application of a preconditioning method on the composite matrix with both the well and reservoir equations. However, these earlier methods were only suitable if the numbers of grid cells penetrated by the wells were small.
Otherwise, the numbers of fill terms in the solution matrices of the earlier methods became too large and impractical. The earlier solver methods also in a number of cases were too complex to implement because the well equations and reservoir equations sets had different characteristics and difficulties. At the same time, the number of algebraic equations per well segment was typically different from the number of equations per reservoir grid cell. This complicated the solver book-keeping of processor node assignment and reservoir and well cell data distribution, and also reduced code complexity, impact on solution algorithm, as well as code efficiency.
The Rowsum or Colsum methods which came into use to replace earlier methods to account for the well influence matrix were simple to implement and were, as noted, typically used in current reservoir simulators. Unfortunately, this method was weak, and lacked the required robustness for the complex problems where a long-reach multilateral well might in normal cases penetrate thousands of grid cells. This was particularly true for a highly heterogeneous reservoir modeled with fine grids, and when the well might be cross-flowing, meaning that some of the well perforations may have fluid inflow into the wellbore while some other perforations may have backflow from the wellbore into the reservoir.
Briefly, the present invention provides a new and improved computer implemented method of simulating the flow of the multiphase flow of fluids in computerized reservoir simulation of flow of such multiphase fluids in wellbores of multilateral wells which have flow interchange at a plurality of locations along the extent of their lengths in the reservoir with cells of a subterranean hydrocarbon reservoir organized into a grid of reservoir cells based on input reservoir data, with the reservoir cells having multiphase fluid flow taking place therein. The computer implemented method partitions the reservoir into a plurality of reservoir grid cells in a grid formed of a number of contiguous grid cells; and partitions the multilateral wellbores into a plurality of wellbore cells in a grid formed of a number of contiguous wellbore cells along the lengths of the wellbores. Representations of state changes and pressures within the reservoir grid cells and flow interchange with the wellbore cells at locations of flow interchange with the wellbore cells are established. Representations of the flow interchange with the wellbore cells and flow interchange with the reservoir grid cells at locations of flow interchange with the reservoir grid cells are established for the wellbore cells. A series preconditioner is formed as a series based expansion by matrix-vector multiplication operations of well influence terms based on the established representations of flow interchange with the wellbore cells for the reservoir grid cells and the established representations of flow interchange with the reservoir grid cells for wellbore cells having flow interchange. A conjugate residual interactive matrix solution is applied in the computer to solve the representations of flow of the multiphase fluids in the reservoir grid cells and wellbore cells and obtain a residual. The steps of forming a series preconditioner by matrix-vector multiplication operations and applying a conjugate residual interactive matrix solution in the computer to solve for the representations of flow of the multiphase fluids of the wellbore cells are repeated until the obtained residual is within an established limit of accuracy. The computerized simulation of representations of flow of the multiphase fluids of the wellbore cells when the obtained residual is within the established limit of accuracy are stored, and an output display is formed of the stored computerized simulation of representations of flow of the multiphase fluids of the wellbore in the reservoir.
The present invention also provides a new and improved data processing system for computerized simulation of flow of multiphase fluids in wellbores of multilateral wells which have flow interchange at a plurality of locations along the extent of their lengths in the reservoir with cells of a subterranean hydrocarbon reservoir organized into a grid of reservoir cells based on input reservoir data, the reservoir cells having multiphase fluid flow taking place therein. The data processing system includes a processor which partitions the reservoir into a plurality of reservoir grid cells in a grid formed of a number of contiguous grid cells, and partitions the multilateral wellbores into a plurality of wellbore cells in a grid formed of a number of contiguous wellbore cells along the lengths of the wellbores. The processor also establishes for the reservoir grid cells representations of state changes and pressures within the reservoir grid cells and flow interchange with the wellbore cells at locations of flow interchange with the wellbore cells. The processor also establishes for the wellbore cells representations of the flow interchange with the wellbore cells and flow interchange with the reservoir grid cells at locations of flow interchange with the reservoir grid cells. The processor then forms a series preconditioner as a series based expansion by matrix-vector multiplication operations of well influence terms based on the established representations of flow interchange with the wellbore cells for the reservoir grid cells and the established representations of flow interchange with the reservoir grid cells for wellbore cells having flow interchange. The processor applies a conjugate residual interactive matrix solution in the computer to solve the representations of flow of the multiphase fluids in the reservoir grid cells and wellbore cells to obtain a residual. The processor then repeats the steps of forming a series preconditioner by matrix-vector multiplication operations and applying a conjugate residual interactive matrix solution in the computer to solve for the representations of flow of the multiphase fluids of the wellbore cells until the obtained residual is within an established limit of accuracy. The data processing system also includes memory storing the computerized simulation of representations of flow of the multiphase fluids of the wellbore cells when the obtained residual is within the established limit of accuracy, and a display which displays the stored computerized simulation of representations of flow of the multiphase fluids of the wellbore cells of the reservoir.
The present invention also provides a new and improved data storage device which has stored in a non-transitory computer readable medium computer operable instructions for causing a data processor to simulate flow of multiphase fluids in wellbores of multilateral wells which have flow interchange at a plurality of locations along the extent of their lengths in the reservoir with cells of a subterranean hydrocarbon reservoir organized into a grid of reservoir cells based on input reservoir data. The stored instructions cause the processor to partition the reservoir into a plurality of reservoir grid cells in a grid formed of a number of contiguous grid cells; and to partition the multilateral wellbores into a plurality of wellbore cells in a grid formed of a number of contiguous wellbore cells along the lengths of the wellbores. The stored instructions cause the processor to establish for the reservoir grid cells representations of state changes and pressures within the reservoir grid cells and flow interchange with the wellbore cells at locations of flow interchange with the wellbore cells, and to establish for the wellbore cells representations of the flow interchange with the wellbore cells and flow interchange with the reservoir grid cells at locations of flow interchange with the reservoir grid cells. The stored instructions also cause the processor to form a series preconditioner as a series based expansion by matrix-vector multiplication operations of well influence terms based on the established representations of flow interchange with the wellbore cells for the reservoir grid cells and the established representations of flow interchange with the reservoir grid cells for wellbore cells having flow interchange. The stored instructions cause the processor to apply a conjugate residual interactive matrix solution in the computer to solve the representations of flow of the multiphase fluids in the reservoir grid cells and wellbore cells to obtain a residual. The stored instructions cause the processor to repeat the steps of forming a series preconditioner by matrix-vector multiplication operations and applying a conjugate residual interactive matrix solution in the computer to solve for the representations of flow of the multiphase fluids of the wellbore cells until the obtained residual is within an established limit of accuracy. The stored instructions the cause the processor to store the computerized simulation of representations of flow of the multiphase fluids of the wellbore cells when the obtained residual is within the established limit of accuracy, and to than an output display of the stored computerized simulation of representations of flow of the multiphase fluids of the wellbore in the reservoir.
The present invention also provides a new and improved computer implemented method of simulation of flow of multiphase fluid in wellbores of multilateral wells in a subsurface hydrocarbon reservoir, the multilateral wells having interchange of fluids at a plurality of locations along the extent of their lengths in the reservoir with cells of a subterranean reservoir organized into a grid of reservoir cells based on input reservoir data, the reservoir cells having multiphase fluid flow taking place therein. The computer implemented method organizes in the computer a fully coupled nonlinear set of implicit reservoir equations with reservoir data, pressure equations and flow equations for reservoir cells having flow interchange with certain ones of the multilateral wells into a reservoir computation matrix, a vector of reservoir and fluid flow unknowns and a vector of reservoir residuals; and also organizes in the computer a fully coupled nonlinear set of implicit well equations with well data and flow equations for wellbore cells having flow interchange with certain ones of the reservoir cells into a wellbore computation matrix, a vector of fluid flow unknowns and a vector of wellbore residuals. The computer implemented method also organizes in the computer a well influence matrix based on, the flow interchange of the wellbore cells and the reservoir cells, as well as a full system computation matrix comprising the reservoir computation matrix and the wellbore computation matrix, a vector of full system unknowns and a vector of full system residuals. The computer implemented method extracts pressure coefficients of the reservoir computation matrix and the wellbore computation matrix, and extracts pressure residuals from the full system residuals. The computer implemented then solves an approximate pressure solution for pressures within the reservoir and wellbore cells of the full system computation matrix by minimizing the extracted pressure residuals, and updates fluid pressures and the residuals for the reservoir cells of the full system computation matrix based on the approximate pressure solution. The computer implemented method then calculates an approximate full system update for the full system computation matrix, the well influence matrix and the updated pressures and residuals. The computer implemented method then combines the approximate full system update with the updated fluid pressures, updates the full system residuals and determines the multiphase fluid flow by solving the full system computation matrix using the fully coupled nonlinear set of conservation equations and the updated system residuals.
The present invention also provides a new and improved data processing system for simulation of simulation of flow of multiphase fluid in wellbores of multilateral wells in a subsurface hydrocarbon reservoir, the multilateral wells having interchange of fluids at a plurality of locations along the extent of their lengths in the reservoir with cells of a subterranean reservoir organized into a grid of reservoir cells based on input reservoir data, the reservoir cells having multiphase fluid flow taking place therein. The data processing system includes a processor which organizes in the computer a fully coupled nonlinear set of implicit reservoir equations with reservoir data, pressure equations and flow equations for reservoir cells having flow interchange with certain ones of the multilateral wells into a reservoir computation matrix, a vector of reservoir and fluid flow unknowns and a vector of reservoir residuals. The processor also organizes in the computer a fully coupled nonlinear set of implicit well equations with well data and flow equations for wellbore cells having flow interchange with certain ones of the reservoir cells into a wellbore computation matrix, a vector of fluid flow unknowns and a vector of wellbore residuals. The processor then organizes in the computer a well influence matrix based on the flow interchange of the wellbore cells and the reservoir cells, and a full system computation matrix formed of the reservoir computation matrix and the wellbore computation matrix, a vector of full system unknowns and a vector of full system residual. The processor extracts pressure coefficients of the reservoir computation matrix and the wellbore computation matrix, and also extracts pressure residuals from the full system residuals. The processor then solves an approximate pressure solution for pressures within the reservoir and wellbore cells of the full system computation matrix by minimizing the extracted pressure residuals. The processor then updates the fluid pressures and the residuals for the reservoir cells of the full system computation matrix based on the approximate pressure solution. The processor calculates an approximate full system update for the full system computation matrix, the well influence matrix and the updated pressures and residuals, and combines the approximate full system update with the updated fluid pressures, and updates the full system residuals. The processor then determines the multiphase fluid flow by solving the full system computation matrix using the fully coupled nonlinear set of conservation equations and the updated system residuals.
The present invention further provides a new and improved data processing system for simulation of simulation of flow of multiphase fluid in wellbores of multilateral wells in a subsurface hydrocarbon reservoir, the multilateral wells having interchange of fluids at a plurality of locations along the extent of their lengths in the reservoir with cells of a subterranean reservoir organized into a grid of reservoir cells based on input reservoir data, the reservoir cells having multiphase fluid flow taking place therein. The data processing system includes a processor which organizes in the computer a fully coupled nonlinear set of implicit reservoir equations with reservoir data, pressure equations and flow equations for reservoir cells having flow interchange with certain ones of the multilateral wells into a reservoir computation matrix, a vector of reservoir and fluid flow unknowns and a vector of reservoir residuals. The processor also organizes in the computer a fully coupled nonlinear set of implicit well equations with well data and flow equations for wellbore cells having flow interchange with certain ones of the reservoir cells into a wellbore computation matrix, a vector of fluid flow unknowns and a vector of wellbore residuals. The processor also organizes in the computer a well influence matrix based on the flow interchange of the wellbore cells and the reservoir cells, and organizes in the computer a full system computation matrix composed of the reservoir computation matrix and the wellbore computation matrix, a vector of full system unknowns and a vector of full system residuals. The processor extracts pressure coefficients of the reservoir computation matrix and the wellbore computation matrix, and then extracts pressure residuals from the full system residuals. The processor then solves for an approximate pressure solution for pressures within the reservoir and wellbore cells of the full system computation matrix by minimizing the extracted pressure residuals. The processor then updates the fluid pressures and the residuals for the reservoir cells of the full system computation matrix based on the approximate pressure solution. The processor then calculates an approximate full system update for the full system computation matrix, the well influence matrix and the updated pressures and residuals. The processor combines the approximate full system update with the updated fluid pressures, updates the full system residuals and determines the multiphase fluid flow by solving the full system computation matrix using the fully coupled nonlinear set of conservation equations and the updated system residuals.
The present invention further provides a new and improved data storage device having stored in a non-transitory computer readable medium computer operable instructions for causing a processor to simulate flow of multiphase fluid in wellbores of multilateral wells in a subsurface hydrocarbon reservoir, the multilateral wells having interchange of fluids at a plurality of locations along the extent of their lengths in the reservoir with cells of a subterranean reservoir organized into a grid of reservoir cells based on input reservoir data, the reservoir cells having multiphase fluid flow taking place therein. The instructions stored in the data storage device causing the processor to organize in the computer a fully coupled nonlinear set of implicit reservoir equations with reservoir data, pressure equations and flow equations for reservoir cells having flow interchange with certain ones of the multilateral wells into a reservoir computation matrix, a vector of reservoir and fluid flow unknowns and a vector of reservoir residuals. The stored instructions also cause the processor to organize in the computer a fully coupled nonlinear set of implicit well equations with well data and flow equations for wellbore cells having flow interchange with certain ones of the reservoir cells into a wellbore computation matrix, a vector of fluid flow unknowns and a vector of wellbore residuals. The stored instructions further cause the processor to organize in the computer a well influence matrix based on the flow interchange of the wellbore cells and the reservoir cells, and then organize in the computer a full system computation matrix comprising the reservoir computation matrix and the wellbore computation matrix, a vector of full system unknowns and a vector of full system residuals. The instructions cause the processor to extract pressure coefficients of the reservoir computation matrix and the wellbore computation matrix, and extract pressure residuals from the full system residuals. The instructions then cause the processor to solve an approximate pressure solution for pressures within the reservoir and wellbore cells of the full system computation matrix by minimizing the extracted pressure residuals. The instructions cause the processor to then update fluid pressures and the residuals for the reservoir cells of the full system computation matrix based on the approximate pressure solution, and calculate an approximate full system update for the full system computation matrix, the well influence matrix and the updated pressures and residuals. The instructions cause the processor to combine the approximate full system update with the updated fluid pressures, and updating the full system residuals. The instructions then cause the processor to determine the multiphase fluid flow by solving the full system computation matrix using the fully coupled nonlinear set of conservation equations and the updated system residuals.
As an introduction, a more detailed description of known computerized reservoir simulation of the types identified above is provided. For the recovery of oil and gas from subterranean reservoirs, wellbores are drilled into these formations for the recovery of hydrocarbon fluid. During the recovery process, fluids such as water and/or gas are injected into the injector wells and the fluid mixture in the pore space is produced from the producer wells. In order to predict the future performance of these reservoirs and to evaluate alternative development plan, reservoir simulators are used to run simulation models. These models are first calibrated with a history matching step using existing production data. The calibrated models are then used to evaluate future operation scenarios. For example, the history-matched models may be used to determine when and where to drill additional wells in order to recover more of the remaining hydrocarbon in place.
The reservoir simulator is a computer-implemented software methodology which solves a system of discrete balance equations for each grid block. The discrete equations are typically formed from a finite-volume discretization of the governing system of non-nonlinear partial differential equations describing the mass, momentum, and energy conservation equations within the reservoir.
The well equations which represent the imposed constraints, either the injecting or producing fluid phase rates, or the well bottom-hole-pressure, and sometimes also include the mass, momentum, and energy balance within the wellbore itself of wells such as shown at 20 and 22. The system, including the wells and the reservoir, represents a tightly coupled highly nonlinear system where the derivatives can be discontinuous locally making it difficult to solve. For robustness and numerical stability, implicit methods are generally applied to solve the coupled system of equations. Since the well flow terms represent the dominant boundary conditions, a robust implicit scheme for the strongly coupled system between wells and reservoir is usually highly desirable. Thus, what is known as the fully-coupled fully-implicit method is the predominant current methodology for the treatment of wells in reservoir simulation. However, due to its complexity, the coupled well-reservoir solution method is handled in some approximate way during the solution process. The present invention provides methodology to address these shortcomings.
The background description of Saudi-Aramco's GigaPOWERS reservoir simulator can be found in Dogru et al. (SPE119272, “A Next-Generation Parallel Reservoir Simulator for Giant Reservoirs,” Proceedings of the SPE Reservoir Simulation Symposium, The Woodlands, Tex., USA, 2-4 Feb. 2009, 29 pp.) The transient solution of the multiphase multicomponent system involves the evolution of mass and energy conservation in a sequence of time steps from the initial condition of the reservoir. For each time step, the system of nonlinear discrete equations for each finite volume is linearized using what is known as the generalized Newton's method.
The symbols in the equations to be set forth below have the following meanings:
Superscripts:
Subscripts:
A general species conservation equation for a species component i is given by:
If dispersion, chemical reaction and absorption are ignored, the species equation simplifies to
Since the pore space of porous medium must be filled with fluids present, the pore volume must be equal to the total fluid volume. This can be expressed as:
Where the pore volume, Vφ, is a function of pressure alone and described as:
V
φ
=V
φ
ref
e
C
(P
−P) (5)
Pressure and the overall number of moles are the primary variables. For closure, the other equations used are:
A typical well rate relationship for a hydrocarbon component i in moles/day used in a reservoir simulator has the form:
WI is commonly referred to as the layer well index. It relates the well-cell finite-difference grid pressure to the well bottom-hole-pressure through the steady state pressure profile near the well and the determination of an equivalent radius r0 for the well cell. What are known as Peaceman formulae are frequently used for determining layer well index in reservoir simulators and this has been later extended to anisotropic rectangular grids and other more complex situations.
In Equation (13), λ represents the fluid phase mobility and γwell is Y the wellbore gravity gradient which depends on the fluid mixture density in the wellbore. Pbh is the bottom-hole-pressure at well reference depth and pk is the well cell pressure. A generalized form of reservoir simulation with the Peaceman well index is contained as Appendix B in Fung et al.: “Unconstrained Voronoi Grids for Densely Spaced Complex Wells in Full-Field Reservoir Simulation,” SPE Journal, October 2014, pp 803-815.
The wellbore flow and constraints can be represented at varying level of details. In the simplest case, the entire well is considered as a single storage at steady-state condition and the fluid content is exactly the mixture of the total inflow from all the contributing layers. In this case, the fully-implicit well equation is simply Equation (13) where all variables are taken at the new time level. The next step is to include a mass balance equation of each fluid component for the well, but the entire well is still considered as a single storage. In this case, wellbore transients can be accounted for and the well equation set for the entire wellbore network will have nwvar=(nvar+1) equations where nvar is the number of fluid components. However, a more detailed well model can have the wellbores divided into several segments where the well-segment fluid component and total mass balances, plus the well constraint equations are solved simultaneously with the reservoir system of equations. For thermal simulation, an energy balance equation for each well segment is also needed.
The fully-coupled system with implicit well equations and implicit reservoir equations is as follows:
Where the Jacobian derivatives of the nonlinear well and reservoir equations are:
with XW and XR being the well and reservoir variables, RW and RR being the initial well and reservoir residuals. Since each grid cell can have multiple equations, and the number of equations for the well grids and the reservoir grids can be different, nvar is used as the number of reservoir equations per grid and nwvar as the number of well equations per grid. It is to be noted that nvar in general is not equal to nwvar. Therefore, each non-zero in AWW is a dense block of (nwvar*nwvar); each non-zero in ARR is a dense block of (nvar*nvar); each non-zero in AWR is a dense block of (nwvar*nvar), and in ARW is a dense block of (nvar*nwvar).
The solution method for an implicit reservoir system is typically a preconditioned iterative method which is suitable for asymmetric ill-conditioned large sparse matrices. For a serial to limited parallel system, the nested factorization, NF, method or the defined-level incomplete lower-upper, ILU(k), triangular factorization with a domain decomposition method, such as the additive Schwarz method, are commonly used. A pressure predictor-corrector method known as the constraint pressure residual, CPR, method as a two-stage preconditioner is also well known in current art. The Krylov subspace methods for an asymmetric system matrix frequently used in the current art are the ORTHOMIN algorithm and the GMRES algorithm. Alternatively, the BICGSTAB algorithm is also used but is less popular due to the higher work counts per iteration.
As pointed out above, two earlier methods prior to the Rowsum or Colsum approximations were inefficient and complicated to apply for complex well and large coupled system of equations. These were solution of the fully coupled system directly with a preconditioned iterative method and solving the reduced system by preconditioning the full reduced system matrix. They can be useful for serial computation of a small coupled well-reservoir simulation system, but impractical for large scale parallel application of a robust simulator.
In this method, the composite matrix was solved directly. That is, the matrix equations were set:
This approach solves the complete system together and obtains the solution vector [XW, XR] simultaneously.
This method is more amenable to implementation in algebraic preconditioning method such as the level-of-fill incomplete lower upper ILU(k) triangular factorization method. It has been found not to be suitable for a structured-grid based preconditioning method such as the nested factorization (NF) method. The bookkeeping of cell assignments and matrix organization is more complex due to the irregular dense blocks to be factored as well as the negative implication on parallel domain decomposition methods. This was because wells can traverse multiple subdomains requiring more network communication to factorize and solve.
This solution method first decouples the well equation from the reservoir equation to form a reduced system:
Ā·X
R
=[A
RR
−A
RW
A
WW
−1
A
WR
]·X
R
=[R
R
−A
RW
A
WW
−1
R
W] (16)
The reduced system is solved to find the reservoir variables [XR]. The solution for the well equations is obtained by the following back solve step after the reduced system has been solved to obtain the reservoir variables:
X
W
=A
WW
−1(RW−AWRXR) (17)
The primary method of the current start-of-the-art for fully-implicit coupled system solution used in present simulators is either the Rowsum or Colsum preconditioning method. While the method is simple and suitable for wells with a moderate number of well perforated grid cells, it may start to break down with slow convergence, or fail to converge for the overall solver, when the simulation model contains many complex multi-lateral long-reach wells which may perforate thousands of grid cells with complex heterogeneity and with very high perforation multiphase flow rates. In these complex situations, the coupled solver can stall or fail to converge all together due to excessive well-influence-coefficient couplings which are only weakly preconditioned relative to the inter-cell flow terms.
Because the reduced system matrix [ARR−ARWAWW−1AWR] can have significantly more non-zeros than the original ARR matrix, it is not explicitly computed. For preconditioning, the current art do either a column sum (Colsum) or a row sum (Rowsum) is performed to diagonalize the well influence matrix. In the Nested Factorization (NF) preconditioning algorithm, NF is applied to the matrix:
A
RR−Colsum(ARWAWW−1AWR) (18)
The Colsum matrix is a block diagonal matrix with block (nvar*nvar) where nvar is the number of equations to be solved per reservoir grid cells. In the incomplete lower upper (ILU) triangular factorization preconditioning algorithm, ILU is applied to the matrix:
A
RR−Rowsum(ARWAWW−1AWR) (19)
The Rowsum matrix is a block diagonal matrix with block (nvar*nvar) where nvar is the number of equations to be solved per reservoir grid cells. The [ARW AWW−1 AWR]{V} matrix-vector product is computed as a series of matrix-vector multiplies whenever the product is needed.
Rowsum and Colsum preconditioning each require far fewer operations than preconditioning the full system matrix used earlier. However, if the wells penetrate many heterogeneous layers with high flow rates, the convergence of the solver is affected. In modern simulation, a full-field model may have thousands of wells, as can be seen in
Earlier preconditioning of the full system matrix as described above becomes prohibitively expensive while the other earlier method of direct solution of the fully coupled system is complex, also expensive, and difficult to parallelize for multiple processors. Thus, so far as is known, none of the prior methods have been sufficiently robust and efficient for large scale parallel reservoir simulation.
To overcome the aforementioned difficulties, the present invention provides a computer implemented methodology which is robust, yet efficient to compute, based on and highly parallelizable preconditioner for the reduced system matrix. The present invention provides improvements to the existing technological processes of reservoir simulation used to analyze the performance of hydrocarbon reservoirs and evaluate their development. The present invention also improves the functioning of computers in performance of reservoir simulation in reducing the processing time lost due to poor convergence or failure to converge in the simulator processing, and also in reducing the complexity of communication within the network of the data processing system. In Equation (16):
Ā=[A
RR
−A
RW
A
WW
−1
A
WR] (20)
The present invention takes the form of three embodiments. The first is based on a homogeneous one-level preconditioner. The second embodiment is a homogeneous two-level CPR-type preconditioner. The third embodiment is a heterogeneous combinative preconditioning method. The preconditioners used in the methodology of the three embodiments act as an accelerator for one of the Krylov subspace iterative algorithms such as the parallelized GCR(k), GMRES, or BICGSTAB methods. The present invention provides speedup in convergence of the coupled solution of the reservoir simulation. The present invention also provides an ability to generate good approximate update vectors to reduce the residuals of the coupled well-reservoir problem. Thus, the methodology of the present invention is fast, robust, and efficient to compute, highly parallelizable, and generate close approximate solutions.
MCPR−1=Constraint Pressure Residual Preconditioner
MN−1=N-Term Line-Solve Power-Series Preconditioner
R, r=Residual Vector
W=Pressure decoupling operator matrix
Subscripts:
C=correction
P=pressure
R=reservoir
W=well
T=total
The homogeneous one-level preconditioning method is described as follows: In this method, the following substitutions are made:
A
RR
=[P
R
+E
R] (21)
E
W
=−A
RW
A
WW
−1
A
WR (22)
Therefore,
Ā=A
RR
+E
W (23)
And the reduced-system residual:
R=[R
R
−A
RW
A
WW
−1
R
W] (24)
This gives the simplified form of the reduced system matrix equation:
Ā·X
R
=[P
R
+E
R
+E
W
]X
R
=R (25)
Further:
E
T
=E
R
+E
W
=E
R
−A
RW
A
WW
−1
A
WR (26)
And then:
Ā=[P
R
+E
T
]=[P
R
+E
R
+E
W] (27)
To obtain the familiar form of a linear system:
Ā·X
R
=R (28)
In the above reduced system equations, PR is the part of ARR whose non-zeroes are used to generate the LU factors so that the result of PR−1·V can be easily computed. For example, one suitable choice of PR is the block tridiagonal matrix for a Z-Line ordered reservoir system of equations.
Another possible choice would be the maximum connection factor ordered block tridiagonal portion of the reservoir matrix. In a fractured dual-porosity dual-permeability system, or a fractured multi-modal porosity system, all the connection factors of all the pore space partitions at the same spatial location and the Z-line or the direction with the maximum connection factor are all part of PR.
An approximate inverse preconditioner using N-term power series, MN−1, can be written as:
Further, due to the different significance of the ET components, if we keep terms for ER and EW up to different orders to save work:
Satisfying M≧2; N>M; otherwise, the respective terms in the above matrix equation is the identity matrix [I]. Some special cases can be illustrated as follows:
For example, by keeping only the first order term for EW, then
If the same order for ER and EW are kept, then the preconditioner becomes
If N is set to 2 and only the first order terms for EW, then
M
N
−1=(I+(PR−1ER)2)·(I−PR−1ET)·PR−1 (33)
It is not necessary to build the approximate inverse matrix directly. The approximate inverse preconditioner for the reduced coupled fully-implicit system is applied as a series of matrix-vector multiply whenever an approximate solution update is needed. This embodiment of preconditioner addresses the smoothing of the error components arising from the well influence coefficients directly but at a moderate additional cost which can be control to the desired optimal level for speed and robustness of the coupled system solution. This is an advantage over techniques prior which can cost excessive solver iterations or convergence failure when there is a large complex simulation system with significant coupling between wells and reservoirs. As noted, the Rowsum or Colsum method has been too weak to be effective.
The preconditioned Krylov subspace algorithm for solving the reduced system Equation (25) is illustrated below using the generalized constraint residual GCR(k) method as follows:
For s=0, the above algorithm is a generalized constraint or GCR based. For s=max (0, j−k+1), the algorithm is ORTHOMIN based. GCR(k) is simply a restart version of GCR. The GMRES and BICGSTAB algorithms can also be used alternatively and similarly.
Flow chart 60 of
It is important to note that, while the present invention has been, and will continue to be, described in the context of a fully functional computer system, those skilled in the art will appreciate that the present invention is capable of being distributed as a program product in a variety of foul's, and that the present invention applies equally regardless of the particular type of non-transitory signal-bearing media utilized to actually carry out the distribution. Examples of non-transitory signal-bearing media include: recordable-type media, such as floppy disks, hard disk drives, and CD ROMs.
It should be understood that the processing described herein can be implemented in a variety of other types of reservoir simulators. It can be run on a variety of computer platforms, such as single CPU, a shared memory parallel or massively parallel processing computer, a distributed memory super-computer, and a variety of PC clusters, such as a self-made PC cluster, or a production PC cluster.
In the sequence of
Then, during a step 63, an iteration counter i is set to 0, and an estimate xi and is selected so that a matrix calculation
r
i
=b−[A]x
i
may be made.
In a step 65, parallel one-level line-solve power-series (LSPS) with variable orders for well-coupling and reservoir-grid non-zeros fill terms is applied as described above in connection with Equations (29) through (33) where equations (30) is the general form of the preconditioner described in equation (29) and equations (31), (32), (33) are specific examples of the forms of the preconditioner.
In step 65, the approximate solution vector XR=Ā−1·R≈MN−1·R is according to Equation (28), the components of which are detailed by equations (21) through (27) which involves the fully-coupled fully-implicit well influence Jacobian matrix. The approximate inverse preconditioner is applied within the Krylov subspace iterative method, as will be described.
This computation is performed using the truncated Neumann series expansion in the manner described above. If a parallel computation array is being used, communication between adjacent processors is done during step 65, in a manner to be described below.
Next, during step 67, a truncated general conjugate residual or GCR(k) method is applied to solve the system of well and reservoir equations, as described above in connection with the methodology of Equations (34) through (41). Again if a parallel computation array is in use, communication between adjacent processors is performed. Besides GCR(k), alternative Krylov subspace iterative methods, such as parallel versions of GMRES or BICGSTAB methods, may also be used in this step.
In step 69, the residual result obtained during step 67 is compared with a user specified tolerance of residual. If the obtained residual result is not within the user specified tolerance, the iteration counter is incremented and processing returns to step 65 for another processing cycle in the manner described above for subsequent iterations. The well solution vector is computed using Matrix equation (17) after the reservoir solution vector has been computed.
Processing proceeds in the foregoing manner until a solution value for the residual is found within the user specified tolerance range during step 67 of an iteration cycle. At this time, the results obtained for the well and reservoir equations of the fluids yielding the satisfactory residual in the grid cells are stored in memory of the processor or processors proceeding according to the instruction steps of
The procedure is the same for both the serial application and the parallel application of the method. In the parallel application of the method, an interprocessor communication step is performed prior to the matrix-vector multiplication where the elements of the intermediate solution vector situated at the boundary of a data partition need to be exchanged between the processors sharing an internal domain boundary.
What is known as the constraint pressure residual, CPR, preconditioning method was first described in Wallis, J. R. et al.: “Constrained Residual Acceleration of Conjugate Residual Methods,” SPE 13563, Proceedings of the 8th SPE Reservoir Simulation Symposium, Dallas, USA Feb. 10-13, 1985. A variant of the CPR method was further discussed in Fung & Dogru “Parallel Unstructured Solver Methods for Simulation of Complex Giant Reservoirs,” SPE (December-2008), pp. 440-446.
The constraint pressure residual procedure is adapted and improved to solve the coupled well-reservoir system, with the matrix terms used being defined according to the Nomenclature definitions. The CPR preconditioning according to the present invention involves a pressure predictor-corrector step and can be written as:
M
CPR
−1
=M
−1
[I−ÃCA
p
−1
C
T]+(CAp−1CT) (42)
Where:
Ã=W*A (43)
And the pressure matrix is
A
p
=C
T
ÃC (44)
C is given by
Assuming pressure is a first unknown for each cell, then, let ep be the nvar×1 vector where nvar is the number of equations per grid cell:
The aim of W is to perform an IMPES-like reduction step on A. For example, W can be computed as:
W=DIAG−1(A) (47)
The notation DIAG(A) denotes the main diagonal nvar*nvar sub-matrix blocks of A. Note that W needs to be chosen such that Ãp is close to being positive definite for PAMG to work well as the pressure solver. This is not a requirement for LSPS or any of the ILU variants.
Thus, the CPR preconditioning step x=MCPR−1r can be outlined as follows:
r
p
=C
T
Wr (48)
A
p
x
p
=r
p (49)
s=Cx
p (50)
r
c
=r−A·s (51)
Mx=r
c (52)
x
c
=x+s (53)
The preferred full system preconditioning method is the LSPS method. The pressure system solver is normally limited to a few Krylov subspace iterations of the GCR(k) or the GMRES, or the BICGSTAB method. For the PAMG method, it is usually limited to a single local vector V multi-grid cycle. The full-system preconditioned solution in Equation (52) also uses one of the Krylov subspace method as outlined in Equations (34) through (41).
Step 71 as indicated in
Step 73 extracts the pressure coefficients matrix from the full-system coefficient matrix. [C] and [C]T are the restriction and prolongation operators in the algebraic extraction process. Step 74 simply initializes the full-system iteration process.
Step 75 extracts the pressure residual from the full system residuals. Step 76 performs an approximate pressure solution. The solution method is the preconditioned Krylov subspace method. The preconditioner can be the parallel line-solve power-series method as shown in equation (29) or a parallel algebraic multigrid method PAMG. The pressure solution only requires a rough approximate solution. Step 76 includes the MPI communication method at each matrix-vector multiplication. This method includes communication hiding strategy to enhance parallel scalability. The pressure solution is used to constrain the full system residual to accelerate the full-system solution.
Step 77 expands the pressure solution vector to a full-system solution vector. This is used to reduce the full-system residual in step 78. In step 79, the reduced full-system residual is then used to compute an approximate full-system update using the matrix equation as indicated. The combined update from both the pressure system and full system is computed in step 80. Step 81 is the full-system version of the parallel GCR(k) or GMRES(k) algorithm which optimizes on the full-system update such that the residuals are minimized. Step 82 is the full-system convergence check. The i-indexed iterative loop from steps 74 to 82 is the full-system iterative solution loop.
Steps 76, 78, 79, and 81 use embedded matrix-vector multiplication which involves MPI communication with communication hiding algorithm. The matrix-vector multiplications for interior cells are done simultaneously with the MPI communication. When communication is complete, local vector V now contains all ghost cell information and the matrix-vector multiplication can be done for the remaining boundary cell. Steps 76 and 81 involve distributed vector dot product which requires MPI reduction operations. The other steps are fully parallel steps.
This heterogeneous preconditioning method uses the preconditioning according to Embodiment 1 above for the well influence coefficient matrix, but includes a different method for the reservoir coefficient matrix. This is helpful if it is desired to apply different preconditioners for the reservoir terms and the well-influence terms. The combinatory preconditioner is written as:
A
−1
≈M
C
−1
=M
R
−1
[I−A·[M
W
−1
]]+M
W
−1 (54)
The general form of the well-influence-term preconditioner can be written as:
Frequently, only a low order approximation is needed to improve convergence. The MR−1 may be another effective preconditioner for the reservoir term's. For example, the ILU(k) or ILUT for the reservoir part of the A matrix with a suitable domain decomposition method for parallel application may be chosen here. If MR−1 is the ILU(k) preconditioner, then:
M
R
−1
=M
ILU
−1 (56)
Processing according to Embodiment 3 of the present invention in data processing system S is performed according to the methodology of
Again, a two-stage CPR preconditioner can be equally applied in the parallel combinatory preconditioning. In this application, the pressure system preconditioning method can be parallel algebraic multigrid or PAMG, while the full-system preconditioning method can be the parallel combinatory preconditioning method. This method is used as the preconditioning method in a Krylov subspace iterative algorithm.
One such algorithm GCR(k) was discussed previously in Equations (34) through (41). The Krylov subspace method using the GCR(k) algorithm includes an approximate inverse preconditioning method for calculating the approximate solution vector which involves the fully-coupled fully-implicit well influence Jacobian matrix EW=−ARWAWW−1AWR. The approximate inverse preconditioner is applied within the Krylov subspace iterative algorithm.
For each of the wells 20 and 22, the full set of all the active wells in the model are distributed to the participating compute processes of the data processing system S. For example, as a simplified model, where there are four wells and four compute processes, each well is run on a different compute core of the data processing system S, and the compute cores jointly solves the fully-coupled simulation model of the reservoir grid blocks and the wells. Thus, each processing core and its associated data storage works on and stores data for each one of the wells.
In another example, if there are two wells but four processing cores for as shown in
The vector shown in
Inter-process communications are provided according to the present invention to construct part of the Jacobian matrix representing boundaries of subdomains or well-to-grid grid-to-well interaction terms which do not belong to the same compute process. Inter-process communications are also provided to solve the resulting system of algebraic equations. For example, the well-to-grid Jacobian term W1.D3 shown in
Similarly, inter-process communications for grid-to-grid flow term for grid blocks located at the boundaries of subdomains are also provided. For the construction of the grid data group D2.D1 and D1.D2 for grid cells adjacent the respective subdomain boundaries, data exchange between processes P1 and P2 is provided. Similarly, for construction of grid data groups D1.D3 and D3.D1, data exchange between processes P1 and P3 is provided, and so on.
In the solution process, data elements in the vector which are required by the matrix-vector operation are inter-process communicated to the processor P which has processing ownership of the matrix components. For example, vector components from VD3 and VD4 are communicated to process P1 for matrix-vector operations with the matrix components W1.D3 and W1.D4. The required vector components from VW1 are also communicated to P3 and P4 for matrix-vector operation with D3.W1 and D4.W1. The vector can be an intermediate solution vector, or a residual vector, or an intermediate product resulting from a partially completed matrix-vector multiplication sequence.
With the present invention, as shown in
The processing and method steps of
The typical HPC environment for use with this simulation system is today's multi-node, multi-CPU, multi-core compute clusters. An example such cluster is illustrated at C in the data processing system S of
The computer nodes 150 of the cluster C include a plurality of processors or cores 160 of the type illustrated in
It should be noted that program codes 155 and 162 may be in the form of microcode, programs, routines, or symbolic computer operable languages that provide a specific set of ordered operations that control the functioning of the data processing system D and direct its operation. The instructions of program codes 155 and 162 may be stored in memory of the servers 154 or processor nodes 150, or on computer diskette, magnetic tape, conventional hard disk drive, electronic read-only memory, optical storage device, or other appropriate data storage device having a non-transitory computer usable medium stored thereon. Program code 160 may also be contained on a data storage device such as server 156 as a computer readable medium, as shown.
RAM and cache memory are distributed and local to each compute node and are shared by the processing cores on each the node. The physics simulated by the system of the present invention is a tightly coupled, global multiphase flow problem which is both convective and diffusive in nature. A high bandwidth, low latency network is thus preferred to minimize inter-process communication overhead. The message passing interface (MPI) standard is used for inter-process communication operations while MPI-2 is used for parallel I/O operations. Disk storage for simulation or model data and processing output results are typically on centralized NAS, SAN, GPFS, or other parallel file systems. For smaller scale parallelism, local hard disk storage which resides on the cluster can also be used. Parallel distributed I/O methods are used to minimize read/write time from/to disk during simulation.
In
With the present invention, it is preferable to use the solver preconditioner by generating the [L][U] decomposition of [P] in the initial stage of the solve invocation. Whenever the inverse is needed during the solver preconditioning operations expressed in Equations (29), (42), or (54), a forward-backward substitution is used to generate the solution. Equations (30) through (33) are instances of the preconditioner Equation (29) where the number of series terms may be different for the matrices ER and EW. The matrix-vector operations are done in a sequence from right to left as the computation and inter-process communication required to generate the required approximate solution vector.
From the foregoing, it can be seen that the present invention provides a methodology which handles the well influence coefficient matrix at comparable accuracy and robustness to those for the grid-to-grid flow terms. The method is highly parallelizable and runs faster than prior methods, as it requires fewer solver iterations to converge to the same tolerances.
The present invention provides parallel solution for fully-coupled fully-implicit wellbore modeling in reservoir simulation which is robust, and particularly applicable for complex wells with thousands of interaction terms with the reservoir grid cells. It is highly parallelizable and well suited for implementation in modern HPC hardware.
The invention has been sufficiently described so that a person with average knowledge in the field of reservoir modeling and simulation may reproduce and obtain the results mentioned in the invention herein. Nonetheless, any skilled person in the field of technique, subject of the invention herein, may carry out modifications not described in the request herein, to apply these modifications to a determined structure and methodology, or in the use and practice thereof, requires the claimed matter in the following claims; such structures and processes shall be covered within the scope of the invention.
It should be noted and understood that there can be improvements and modifications made of the present invention described in detail above without departing from the spirit or scope of the invention as set forth in the accompanying claims.
The present application is a divisional application of U.S. patent application Ser. No. 14/948,605 filed Nov. 23, 2015, based on U.S. Provisional Patent Application No. 62/164,083 filed May 20, 2015. This application claims priority from each of U.S. patent application Ser. No. 14/948,605 and U.S. Provisional Application No. 62/164,083 filed May 20, 2015. For purposes of United States patent practice, this application incorporates the contents of application by reference in entirety.
Number | Date | Country | |
---|---|---|---|
Parent | 14948605 | Nov 2015 | US |
Child | 15412507 | US |