Scalable Multi-stage Linear Solver for Coupled Systems of Multi-segment Wells and ... This paper describes a new scalable linear solver for flow simulation of ...
SPE 119175 Scalable Multi-stage Linear Solver for Coupled Systems of Multi-segment Wells and Complex Reservoir Models Y. Jiang, SPE, BP America Inc., and H. A. Tchelepi, SPE, Stanford University Copyright 2009, Society of Petroleum Engineers This paper was prepared for presentation at the 2009 SPE Reservoir Simulation Symposium held in Woodlands, Texas, U.S.A., 2-4 February 2009. This paper was selected for presentation by an SPE Program Committee following review of information contained in an abstract submitted by the author(s). Contents of the paper, as presented, have not been reviewed by the Society of Petroleum Engineers and are subject to correction by the author(s). The material, as presented, does not necessarily reflect any position of the Society of Petroleum Engineers, its officers, or members. Papers presented at SPE meetings are subject to publication review by Editorial Committees of the Society of Petroleum Engineers. Electronic reproduction, distribution, or storage of any part of this paper for commercial purposes without the written consent of the Society of Petroleum Engineers is prohibited. Permission to reproduce in print is restricted to an abstract of not more than 300 words; illustrations may not be copied. The abstract must contain conspicuous acknowledgment of SPE copyright.
Abstract Wellbore flow and interactions between wells and the reservoir can be complex. Accurate modeling of these behaviors is especially important for advanced (multi-lateral) wells. This paper describes a new scalable linear solver for flow simulation of detailed unstructured models with coupled multi-lateral multi-segment wells. The linear solver accommodates systems associated with both the fully implicit approach and the adaptive implicit method (AIM). A general-purpose research simulator (GPRS) serves as the computational platform, in which reservoir flow is described with a thermal-compositional AIM formulation, and a multi-segmented well (MsWell) model is used to describe wellbore flow. In the MsWell model, the wellbore is discretized into segments; pressure, velocity, and phase fractions are computed for each segment. Multi-lateral multi-segment wells add a large number of equations and unknowns, which are coupled to the reservoir model. The new linear solver is a generalized two-stage constraint pressure residual (CPR) preconditioner. The first stage is a global pressure system of equations, where the pressure coupling between the reservoir and the complex wells is represented accurately. This coupled pressure system is obtained algebraically, where the multi-segment wells are reduced to a form similar to that of standard wells. The two-stage scheme serves as the inner loop of a generalized minimum residual (GMRES) iterative solver. Algebraic multigrid (AMG) is used to compute the first-stage pressure solution; a special block-based incomplete lower-upper (ILU) preconditioner with arbitrary levels of fill-in is used for the second stage. This multi-stage solution algorithm was implemented using multi-level, sparse, block-based (MLSB) data structures specially designed for AIM computations on unstructured grids. We demonstrate the superior performance of this new solver compared with state-of-the-art methods using a variety of compositional problems for highly detailed reservoir models with unstructured grids and complex multi-segment wells. Introduction In the last decade, many ultra-deep, long horizontal, multilateral wells have been drilled. These wells can lead to complex wellbore flows. Accurate modeling of the flow behavior in wellbores, including frictional losses and multiphase flow effects is crucial for effective field operations. Meanwhile, intelligent wells, which have down-hole equipment, are developed and deployed in the field, and these add to the challenge of modeling the overall coupled system. The original standard well (StdWell) model cannot describe the flow behaviors in wells and production networks. Therefore, more complicated well models, in which the conservation laws for flow in wells are discretized and solved, have been developed (Holmes et al. 1998). The most common practice in reservoir simulation has been to treat wells as source/sink terms in the gridblocks that they penetrate. In order to account for the disparity between the typical sizes of wells and computational gridblocks, a well model is usually employed. Nolen (1990) described the details of the standard well model, various extensions, and associated assumptions. In recent years, there has been strong interest in accurate and efficient modeling of the flow behaviors in advanced wells (e.g., horizontal, deviated, and multilateral). Holmes et al. (1998) presented a black-oil multi-segment wellbore model. In that discrete wellbore model, four variables,
2
SPE 119175
namely, mixture velocity, gas and water phase holdups, and pressure, are defined for each segment. The governing equations are the mass balance equations for oil, gas and water and one pressure relation (i.e., momentum balance) for each segment. Pressure losses due to gravity, friction, and acceleration are considered. Shi et al. (2005a,b) extended the drift-flux model for two-phase and three-phase flows, in which phase slip effects in the wellbore are accounted for. That multi-segment well model (MsWell) has been implemented in EclipseT M (GeoQuest 2005), and it represents the state-of-the-art in terms of coupling reservoir models and advanced wells. This MsWell model has also been integrated into GPRS, a state-of-art thermal-compositional AIM research simulator developed at Stanford University (Cao 2002; Jiang 2007). The MsWell model introduces a large number of equations and unknowns for each well. The Jacobian matrices for reservoir models with MsWells are much more complex than those from reservoir models with StdWells. Efficient solution of highly detailed reservoir models with coupled MsWells poses serious challenges to reservoir simulators, and is the subject of this paper. Reservoir Facility Coupling and Solution Strategies Many investigators worked on coupling reservoirs with complex wellbore models and other facility models. Schiozer and Aziz (1994), and Schiozer (1994) presented a domain decomposition (DD) method to simulate reservoirs and surface facilities. They pointed out that explicit treatment of the coupling between the reservoir and facilities can lead to large errors. Small timesteps may help to reduce the error, but they make the overall performance prohibitively expensive. An iterative nonlinear solution strategy was proposed to solve the reservoir and facilities separately, followed by updating the boundary conditions until global convergence is reached (Schiozer 1994). This can be a very expensive method. To improve the efficiency, a nonlinear preconditioner (different from the one used in the iterative linear solvers) based on domain decomposition is applied at the beginning of a timestep to predict the boundary conditions between the reservoir and the facilities. A fully-implicit coupled reservoir-facilities simulation was investigated, and the conclusion was that the method is not very efficient, especially when the number of surface facility nodes is large. The iterative method with the nonlinear preconditioner based on DD was the preferred method for systems with complex facilities (Schiozer 1994). Later, Byer (2000) and Byer et al. (1998) extended Schiozer’s work and presented a new solution strategy. Similar to Schoizer’s work, they used a nonlinear preconditioner to predict the behavior of the reservoir and facilities models. However, the preconditioner was more sophisticated, which combined both DD and multigrid. Solution of an algebraically constructed coarse-system was used to precondition the fully coupled problem. Byer also investigated an adaptive explicit coupling method. According to his results, a fully coupled system can be solved efficiently with the DD-multigrid nonlinear preconditioner. The solution strategy developed by Coats et al. (2003) for coupled reservoir-facilities simulation is also based on domain decomposition. In each Newton iteration, a subdomain including perforations and networks is decoupled. A smaller-size Jacobian matrix (compared with the global full Jacobian matrix) is formed and solved for this subdomain. The solution vector is used to update the unknowns of the perforations and the network. Then the global Jacobian (including both reservoir and network models) is constructed according to the latest results (updated perforations and network variables, and unchanged reservoir variables). The convergence of the Newton iterations guarantees that the final result is a fully implicit solution. Two-stage Linear Solver Large, sparse linear systems in reservoir simulation typically are solved with iterative Krylov solvers, e.g. GMRES (Saad and Schultz 1986; Saad 1996). The performance of Krylov solvers depend strongly on the quality of the preconditioner. Some preconditioners, e.g., the ILU family (Behie 1983; Saad 1994), can be applied to various types of matrices. Some preconditioners, e.g., AMG (Stueben 1983, 2001), have strict requirements on the matrices to be solved. The equations and unknowns in reservoir simulation have mixed properties. They have both near-elliptic (pressure equations) and near-hyperbolic (advection equations) parts. In order to handle this mixed character, a powerful two-stage preconditioner, the Constrained Pressure Residual (CPR) method, was proposed by Wallis (1983) and Wallis et al. (1985). In the first stage, the pressure system is obtained from the fully coupled Jacobian using an efficient algebraic reduction scheme, which mimics the steps associated with constructing the pressure equation of the implicit pressure explicit saturation (IMPES) formulation. This pressure system preserves the coupling of the reservoir-wells system and is solved with an AMG solver. The low frequency errors from the pressure variables are resolved in this stage. In the second stage, an ILU preconditioner is usually applied to the full Jacobian matrix, which removes the high frequency (local) errors. The general form of the two-stage preconditioner can be written as (Cao et al. 2005): −1 −1 −1 M−1 1,2 = M2 [I − AM1 ] + M1 ,
(1)
where M1,2 denotes the two-stage scheme; M1 and M2 denote the first and second stage preconditioners, respectively, and I is an identity matrix with A denoting the matrix to be solved. With optimal data structures and single-stage preconditioners as components, CPR has been demonstrated to be the most efficient preconditioner for reservoir simulation with standard wells (Cao 2002; Cao et al. 2005; Jiang 2004, 2007). The detailed procedure of a generalized CPR scheme is described in the following section.
2
SPE 119183
Y. Jiang et al.
3
Figure 1: Sample reservoir model with a MsWell Two-stage Preconditioner for Coupled MsWells and Reservoirs We describe a scalable two-stage preconditioner for large-scale reservoir models coupled with multilateral, multi-segment wells. A sample Jacobian matrix is shown in Fig. 2, which is generated for the simple reservoir-MsWell system shown in Fig. 1. The detailed formulation of the governing equations is discussed in Jiang’s thesis (2007). The Jacobian matrix shows very different patterns of nonzero elements (colored blocks in Fig. 2) in the reservoir, well, and the coupling parts. The two by two decomposition is indicated with red lines in Fig. 2. Conceptually, we can represent the matrix with the format shown in Fig. 3.
Figure 2: Jacobian matrix for a coupled system of multi-segment well and reservoir models In the matrix, RR denotes the derivatives of reservoir equations with respect to reservoir variables; RW stands for the derivatives of reservoir equations with respect to well variables; WR represents the derivatives of well equations with respect to reservoir variables; and WW denotes the derivatives of well equations with respect to well variables. The global matrix for the reservoir-MsWell system is denoted with AM S . The linear system can then be written as AM S x = f,
(2)
where x is a solution vector, and f is a right-hand-side (RHS) vector. The overall preconditioning strategy for AM S is based on the CPR approach, with additional steps in both stages. Generalized CPR Preconditioner: First Stage In the first stage, two restriction operators are applied to the full Jacobian matrix, AM S . In the first step of the first stage, the MsWell equations are algebraically reduced to a StdWell-like form (Fig. 4). In Fig. 4, I is an identity matrix; 0 denotes a zero matrix. The reduction step leaves RR intact. The WR and WW parts of each MsWell are collapsed into one equation. The RW is collapsed into one column per MsWell, since only one variable (reference pressure) remains for the entire well. The coupling terms from the wells end up with a form similar to that of StdWells. The procedure can be described algebraically as AStd = RM S AM S PM S , 3
(3)
4
SPE 119175
Figure 3: Conceptual matrix structure for a reservoir-well system
Figure 4: Reduction of MsWell matrix to StdWell-like matrix where RM S and PM S denote the restriction and prolongation matrices shown in Fig. 4. The elements on the last row of RM S depend on the formulation of the governing equations for the MsWells. The elements in the last column of PM S depend on the variables of the MsWell model. After the first step of reduction, the structure of the matrix AStd is identical to the one from a reservoir-StdWells system (Fig. 5a). In the second step of the first stage, an IMPES-like reduction is applied to reduce AStd to the corresponding pressure matrix, Ap (Fig. 5b) (Wallis 1983; Wallis et al. 1985), which can be written as Ap = RStd AStd PStd ,
(4)
where RStd and PStd are the restriction and prolongation matrices corresponding to the IMPES-like reduction. The IMPES-like reduction takes either an FIM, or an AIM, reservoir matrix and produces a pressure system of equations for the coupled problem (Wallis 1983; Cao 2002; Jiang 2007). The preconditioning strategy is fully compatible with a general AIM scheme. In our framework, FIM is treated as a special case of AIM. Combining Eq. 3 and Eq. 4, we obtain an expression for the matrix operations in the first stage, namely, Ap = RStd RM S AM S PM S PStd .
(5)
RStd RM S AM S PM S PStd xp = RStd RM S f,
(6)
x = PM S PStd xp .
(7)
fp = RStd RM S f,
(8)
Ap xp = fp ,
(9)
We solve Eq. 2 as follows:
where
Let
then Eq. 6 can be rewritten as
4
SPE 119183
Y. Jiang et al.
5
where xp is a pressure solution vector, and fp is a RHS vector for the pressure equations. According to Eq. 8, fp is obtained by algebraic application of the two restriction operators on f. Accurate representation of the pressure coupling between the reservoir and the wells and within the reservoir and the wellbores is crucial for robustness and efficiency. Ap and fp preserve the critical pressure information of AM S and f, and Eq. 9 can be a much smaller system compared to Eq. 2.
(a)
(b)
Figure 5: Jacobian matrices of AStd and Ap The pressure system (Eq. 9) is solved with an AMG solver (Stueben 1983, 2001; Cao et al. 2005), to obtain the pressure correction, xp , for the original solution vector x. In practice, some approximations are made during the matrix reduction (Eq. 5) and the AMG solution. Therefore, xp may not be exactly the same as the pressure subcomponent of x, but it should be reasonably close. We rewrite Eq. 7 as x1 = PM S PStd xp ,
(10)
where x1 is the solution vector returned by the first stage preconditioner. x1 is generated by applying the two prolongation operations to xp . The first prolongation, PStd , only expands the reservoir part of the vector. Hence the solution vector is mapped back to the vector space for a general AIM system with StdWells. The second prolongation, PM S , operation expands the wells part of the vector, from a StdWell-like solution vector to an MsWell solution vector. Note that x1 contains only the pressure correction information from xp . The first-stage correction to the other variables is zero. The general expression of the first stage of the generalized CPR preconditioner can be written as −1 M−1 RStd RM S , 1 = PM S PStd AM G(Ap )
(11)
where AM G(Ap )−1 denotes the AMG approximation to the inverse of Ap . That is, AM G(Ap )−1 means calling AMG to solve the system with a particular RHS. Although the low frequency errors coming from pressure are well captured in the first stage, we still need to find corrections for both the pressure and all the non-pressure variables. This is achieved in the second stage of CPR. Generalized CPR Preconditioner: Second Stage Given the pressure correction from the first stage, we can update the RHS with this information. So, in the second stage, we need to solve (Cao et al. 2005): M2 x2 = f − AM S x1 ,
(12)
where x2 is the solution vector of the second stage of CPR. The second stage preconditioner, M2 , should be a reasonable approximation to the original matrix AM S . The matrix structures of the reservoir and the well parts are very different (Fig. 2), and it is difficult to operate on the entire matrix. Since the coupling between the reservoir and wells is mainly through pressure, which has been well captured in the first stage, we can lag the coupling parts (RW, WR) in this stage. Hence the reservoir and well parts are decoupled, and this results in the matrix shown in Fig. 6. The matrix in Fig. 6 is denoted as DCP L(AM S ), where DCP L() stands for the decoupling operation. GPRS uses multi-level sparse block (MLSB) data structures to represent AM S (Jiang 2007). In the MLSB data structures, a matrix is assembled with low-level matrices. The flexible data structures can perform the decoupling with minimal computational cost. After the decoupling, block ILU(k) preconditioners are applied to the reservoir and the well matrices separately. Our experience indicates that BILU(0) for the reservoir matrix and BILU(1) for the MsWells are a good combination (Jiang 2007). The general expression of the second stage of the generalized CPR preconditioner can be written as M2 = BILU (DCP L(AM S )).
(13)
The solution vector of the second stage, x2 , can be obtained by solving Eq. 12. The final solution of the generalized CPR preconditioner is given by: x1,2 = x1 + x2 .
5
(14)
6
SPE 119175
Figure 6: Matrix with decoupled reservoir and well parts Test Cases Case 1: A synthetic unstructured reservoir model was generated based on real data from a fractured carbonate reservoir (Gong 2007). The model contains 35 fractures and the reservoir is discretized into 131,817 cells using a discrete fracture model (DFM) (Karimi-Fard et al. 2004). About 12% of the cells are fracture cells, and about 24% are matrix cells directly connected to fractures. The model properties are highly heterogeneous with a matrix permeability of 0.1 md and a fracture permeability of 1.0 × 106 md. The matrix porosity is 0.25 and the fracture porosity is 1.0. The largest pore volume of a gridblock is 1.24 × 103 ft3 , and the smallest pore volume is 7.22 × 10−9 ft3 . Generally, the fracture cells and the matrix cells close to fractures have much smaller pore volumes compared to the other cells. The reservoir fluid is described using six hydrocarbon components. An injector and a producer are drilled in two fractures located at opposite corners of the reservoir model. The fracture system is the major pathway for flow, but the two wells are not directly connected with fractures. The fracture layout and the model are shown in Fig. 7. This case was chosen to show the performance of the block solver and preconditioner in GPRS for a large-scale, highly heterogeneous AIM compositional model with unstructured grids. We are also interested in the impact of different percentages of IMPES and FIM on the timestep size. GPRS is run with three different options: AIM with 30% FIM and 70% IMPES (referred to as AIM30), AIM with 50% FIM and 50% IMPES (referred to as AIM50), and 100% FIM. Recall that about 12% of the cells in the model are fracture cells, and about 24% of the cells are matrix cells connected to fractures. Thus, 36% of the cells or more are potentially problematic due to extremely small pore volumes and high throughput. AIM30 has enough FIM gridblocks to cover all the fracture cells, but not enough for the matrix cells that are connected to fractures. AIM50 can cover both types of cells with implicit treatment. The simulation period is 30 days and the maximum allowed timestep size is 5 days. The timestep sizes of the different schemes are plotted in Fig. 8. We can see that the three curves overlap for early time. This is because very small timesteps are used to ensure that the Newton method converges. Later, AIM30 hits its CFL limit, and its timesteps are significantly lower than the other two schemes. The maximum timestep of AIM30 is about 0.44 days. AIM50 has larger timesteps, which are up to 1.3 days. In both AIM schemes, the timestep sizes are quite stable and build up gradually. The FIM scheme has identical timesteps with AIM50 for the first four days. Later on, the FIM scheme tries to use more aggressive timesteps, but most of these attempts fail to converge within a given number of Newton iterations. The simulator has to cut the timestep by half and restart the simulation from the last timestep. Because of this, the timestep curve of FIM has many oscillations in the later stages. Cutting a timestep means all previous Newton iterations spent in the timestep are wasted. Hence it is a very costly event in a simulation run.
Figure 7: Fracture layout and reservoir model for Case 1 (Gong 2007)
6
SPE 119183
Y. Jiang et al.
7
2 FIM AIM (50%FIM) AIM (30%FIM)
1.8 1.6
Timestep (day)
1.4 1.2 1 0.8 0.6 0.4 0.2 0
0
5
10
15
20
25
30
Time (day)
Figure 8: Timestep size of the FIM and AIM schemes for Case 1
The iteration statistics and timing performance of the three schemes are shown in Table 1. From the upper part of the table, we can see that AIM50 has the least number of timesteps. The FIM scheme uses four more timesteps compared to AIM50. AIM30 has much smaller timesteps, and it consequently needs many more timesteps to complete the simulation. Beside the number of timesteps, AIM50 also wins in terms of the number of Newton iterations, solver iterations, etc. In the table, the wasted operations are due to the timestep cuts. The AIM30 scheme has no timestep cuts; AIM50 has two and FIM has 34 timestep cuts. From the iteration statistics, it is not a surprise that the AIM50 run has the best timing performance. In fact, the lower part of the table shows that AIM50 has the best performance across the board. The AIM50 run is 3.2 times faster than the FIM run in solver time, and 1.7 times faster than AIM30. IMPES/FIM Solver Preconditioner Implicit variables Timestep Timestep cuts Valid Newton iterations Wasted Newton iterations Valid solver iterations Wasted solver iterations Solver time (sec) GMRES time (sec) BILU factorization time (sec) BILU solution time (sec) Pressure decoupling time (sec) Pressure solution time (sec)
0.7/0.3 BGMRES CPR-BILU 26400 138 0 1056 0 5510 0 8167.7 2336.6 601.1 932.8 284.7 4010.6
0.5/0.5 BGMRES CPR-BILU 35636 81 2 564 30 2776 308 4910.1 1526.2 418.6 591.0 221.4 2153.0
0.0/1.0 BGMRES CPR-BILU 79200 85 34 651 510 3666 4585 15779.3 3661.7 1286.3 2572.6 786.1 4867.6
Table 1: GPRS performance of the AIM and FIM schemes for Case 1
Case 2: In this case, the reservoir model is an upscaled version of the top part of the SPE10 model (Christie and Blunt 2001), with 110 × 30 × 16 gridblocks. The model has highly heterogeneous porosity and permeability properties and immiscible two-phase (oil and water) fluid. There are five bilateral horizontal producers and two vertical water injectors in the reservoir. The producers have three perforations in each horizontal branch. Both injectors have two perforations at the bottom. The entire system is shown in Fig. 9. In order to have a detailed comparison, the case is run with four different settings. 1. All seven wells use the StdWell model. The preconditioner option is CPR for a system with StdWells. 2. All seven wells use the StdWell model. The preconditioner option is ILU.
7
8
SPE 119175
3. The five bilateral producers use the MsWell model, and the two injectors use the StdWell model. The preconditioner option is CPR for a system with MsWells. 4. The five bilateral producers use the MsWell model, and the two injectors use the StdWell model. The preconditioner option is block ILU, which is the same as the second stage of CPR for a system with MsWells.
Figure 9: Upscaled top formation of SPE10 reservoir model with MsWells for Case 2 The performance information is listed in Table 2. The solver time, which is the time spent on solving the linear systems, is the benchmark target. There are three key observations from the table. 1. By comparing options 1 and 2, we see that CPR has much better performance than ILU for a system with StdWells. For this case, the speedup factor is about 4.3. 2. By comparing options 3 and 4, we find that the CPR preconditioner gives much better performance for system with MsWells compared to the ILU preconditioner. The speedup factor is about 5.9. This clearly shows the importance of developing a CPR method for systems with MsWells. 3. The system with MsWells is more costly to solve than the one with only StdWells. For this case, the additional cost is about 42% (compare options 1 and 3). This is not surprising, since the MsWell model provides information about the flow behavior inside the wellbore by solving the relevant conservation equations. Well Type Solver Preconditioner Timestep Newton iteration Solver iteration Pressure iteration Solver time (sec) Total time (sec)
Stdwell PGMRES CPR 19 43 239 239 110.1 124.2
Stdwell PGMRES ILU 19 43 4419 0 470.5 485.0
Ms+Std BGMRES CPR 19 42 358 358 156.0 170.8
Ms+Std BGMRES ILU 19 42 6339 0 927.2 941.0
Table 2: GPRS performance of Case 2.
Case 3: The reservoir model of this case is the full SPE10 model (Christie and Blunt 2001), which has 1.122 million (220 × 60 × 85) gridblocks, with highly heterogeneous porosity and permeability properties. Four hydrocarbon components are used to replace the original oil-water fluid. The simulation is run using the FIM scheme, and has about 4.5 million equations. There are five Stdwells (four producers and one injector) in the model deployed with a 5-spot pattern. All wells have perforations in all the 85 layers of the model. The entire model is shown in Fig. 10. The case is run with GPRS and the performance is listed in Table 3. GPRS needs 86 timesteps to finish the first 20 days simulation (about 4% of the original hydrocarbon in-place is produced). The major constraint on the size of timesteps is the flash calculation in the compositional model.
8
SPE 119183
Y. Jiang et al.
9
Figure 10: SPE10 reservoir model for Case 3 Solver Preconditioner Timestep Valid Newton iterations Valid solver iterations Solver time (sec) GMRES time (sec) BILU factorization time (sec) BILU solution time (sec) Pressure decoupling time (sec) Pressure solution time (sec)
BGMRES CPR-BILU 86 334 1562 14579 4165 916 2205 823 6469
Table 3: GPRS performance for Case 3 Conclusion In this paper, the two-stage CPR preconditioning approach is generalized to handle systems with complex multi-segment well models. In the first stage, an algebraic two-step reduction procedure is developed to construct a pressure matrix for the system. In the second stage, the coupling terms between the reservoir and facilities are lagged, and a multi-level block ILU preconditioner is developed to handle the decoupled objects. The test cases demonstrated the superior performance of the original CPR and the generalized CPR preconditioner for highly detailed unstructured reservoir models and complex multi-segment wells. The new preconditioner is fully compatible with the AIM scheme, which can further improve the overall performance. Acknowledgement This work was performed while the first author was at Stanford University. Financial support from the affiliates of the Stanford University Petroleum Research Institute for Reservoir Simulation (SUPRI-B) made this work possible and is gratefully acknowledged. References G. Behie. Practical considerations for incomplete factorization methods in reservoir simulation. SPE 12263, Proceedings of the 7th SPE Symposium on Reservoir Simulation, San Francisco, CA, November 1983. T. Byer. Preconditioned Newton Methods for Simulation of Reservoir with Surface Facilities. PhD thesis, Stanford University, 2000. T. Byer, M. Edwards, and K. Aziz. Preconditioned Newton methods for fully coupled reservoir and surface facility models. SPE 12263, presented at the SPE Annual Technical Conference and Exhibition, New Orleans, Louisiana, September 1998. H. Cao. Development of Techniques for General Purpose Simulation. PhD thesis, Stanford University, 2002.
9
10
SPE 119175
H. Cao, H. Tchelepi, J. Wallis, and H. Yardumian. Parallel scalable CPR-type linear solver for reservoir simulation. SPE 96809, presented at the SPE Annual Technical Conference and Exhibition, Dallas, Texas, October 2005. M. Christie and M. Blunt. Tenth SPE comparative solution project: A comparison of upscaling techniques. SPE 72469, SPE Reservoir Evaluation and Engineering, 4(4):308–317, August 2001. B. Coats, G. Fleming, J. Watts, R. M., and G. Shiralkar. A generalized wellbore and surface facility model, fully coupled to a reservoir simulator. SPE 79704, proceedings of the 17th SPE Symposium on Reservoir Simulation, Houston, TX, 2003. S. GeoQuest. Eclipse Technical Description, Multi-Segment Wells, 2005. B. Gong. Effective Models of Fractured Systems. PhD thesis, Stanford University, 2007. J. Holmes, T. Barkve, and O. Lund. Application of a multisegment well model to simulate flow in advanced wells. SPE 50646, presented at the SPE European Petroleum Conference, The Hague, Netherlands, 1998. Y. Jiang. Techniques for Modeling Complex Reservoirs and Advanced Wells. PhD thesis, Stanford University, 2007. Y. Jiang. Tracer flow modeling and efficient solvers for GPRS. Master’s thesis, Stanford University, 2004. M. Karimi-Fard, L. J. Durlofsky, and K. Aziz. An efficient discrete fracture model applicable for general-purpose reservoir simulators. SPE 79699, SPE Journal, 9(2):227–236, 2004. J. Nolen. Treatment of wells in reservoir simulation. Technical report, July 1990. Y. Saad. ILUT: a dual threshold incomplete LU factorization. Numerical linear algebra with applications, 1(4):387–402, 1994. Y. Saad. Iterative Methods for Sparse Linear Systems (1st edition). PWS Publishing, 1996. Y. Saad and M. Schultz. GMRES: A generalized minimal residual algorithm for solving nonsymmetric linear systems. SIAM J. Sci. Stat. Comput., 7(3):856–869, 1986. D. Schiozer. Simultaneous Simulation of Reservoir and Surface Facilities. PhD thesis, Stanford University, 1994. D. Schiozer and K. Aziz. Use of domain decomposition of simultaneous simulation of reservoir an surface facilities. SPE 27876, presented at the SPE Western Regional Meeting, Long Beach, CA, March 1994. H. Shi, J. Holmes, L. Diaz, L. J. Durlofsky, and K. Aziz. Drift-flux parameters for three-phase steady-state flow in wellbores. SPE 89836, SPE Journal, 10(2):130–137, 2005a. H. Shi, J. Holmes, L. J. Durlofsky, K. Aziz, L. Diaz, B. Alkaya, and G. Oddie. Drift-flux modeling of two-phase flow in wellbores. SPE 84228, SPE Journal, 10(1):24–33, 2005b. K. Stueben. Algebraic multigrid (AMG): Experiences and comparisons. proceedings of the International Multigrid Conference, 1983. K. Stueben. An introduction to algebraic multigrid. Appendix in book ’Multigrid’, pages 413–532, 2001. J. Wallis. Incomplete Gaussian elimination as a preconditioning for generalized conjugate gradient acceleration. SPE 12265, presented at the 7th SPE Symposium on Reservoir Simulation, San Francisco, CA, 1983. J. Wallis, R. Kendall, T. Little, and J. Nolen. Constrained residual acceleration of conjugate residual methods. SPE 13536, presented at the 8th SPE Symposium on Reservoir Simulation, Dallas, TX, 1985.
10