Industrial Compositional Streamline Simulation for Efficient and Accurate Prediction of Gas Injection and WAG Processes

Gas-injection processes are widely and increasingly used for enhanced oil recovery (EOR). In the United States, for example, EOR production by gas injection accounts for approximately 45% of total EOR production and has tripled since 1986. The understanding of the multiphase, multicomponent flow taking place in any displacement process is essential for successful design of gas-injection projects. Due to complex reservoir geometry, reservoir fluid properties and phase behavior, the design of accurate and efficient numerical simulations for the multiphase, multicomponent flow governing these processes is nontrivial. In this work, we developed, implemented and tested a streamline based solver for gas injection processes that is computationally very attractive: as compared to traditional Eulerian solvers in use by industry it computes solutions with a computational speed orders of magnitude higher and a comparable accuracy provided that cross-flow effects do not dominate. We contributed to the development of compositional streamline solvers in three significant ways: improvement of the overall framework allowing improved streamline coverage and partial streamline tracing, amongst others; parallelization of the streamline code, which significantly improves wall clock time; and development of new compositional solvers that can be implemented along streamlines as well as in existing Eulerian codes used by industry. more » We designed several novel ideas in the streamline framework. First, we developed an adaptive streamline coverage algorithm. Adding streamlines locally can reduce computational costs by concentrating computational efforts where needed, and reduce mapping errors. Adapting streamline coverage effectively controls mass balance errors that mostly result from the mapping from streamlines to pressure grid. We also introduced the concept of partial streamlines: streamlines that do not necessarily start and/or end at wells. This allows more efficient coverage and avoids the redundant work generally done in the near-well regions. We improved the accuracy of the streamline simulator with a higher order mapping from pressure grid to streamlines that significantly reduces smoothing errors, and a Kriging algorithm is used to map from the streamlines to the background grid. The higher accuracy of the Kriging mapping means that it is not essential for grid blocks to be crossed by one or more streamlines. The higher accuracy comes at the price of increased computational costs, but allows coarser coverage and so does not generally increase the overall costs of the computations. To reduce errors associated with fixing the pressure field between pressure updates, we developed a higher order global time-stepping method that allows the use of larger global time steps. Third-order ENO schemes are suggested to propagate components along streamlines. Both in the two-phase and three-phase experiments these ENO schemes outperform other (higher order) upwind schemes. Application of the third order ENO scheme leads to overall computational savings because the computational grid used can be coarsened. Grid adaptivity along streamlines is implemented to allow sharp but efficient resolution of solution fronts at reduced computational costs when displacement fronts are sufficiently separated. A correction for Volume Change On Mixing (VCOM) is implemented that is very effective at handling this effect. Finally, a specialized gravity operator splitting method is proposed for use in compositional streamline methods that gives an effective correction of gravity segregation. A significant part of our effort went into the development of a parallelization strategy for streamline solvers on the next generation shared memory machines. We found in this work that the built-in dynamic scheduling strategies of OpenMP lead to parallel efficiencies that are comparable to optimal schedules obtained with customized explicit load balancing strategies as long as the ratio of number of streamlines to number of threads is sufficiently high, which is the case in real-field applications. This is an important result, as it eases the transition of serial to parallel streamline codes. The parallel speedup itself depends on the relative contribution of the tracing and mapping stages as compared to the solution of the transport equations along streamlines. As the physical complexity of the simulated 1D transport process increases, the contribution of the less efficient tracing and mapping stages is reduced and near-linear scalabilities can be obtained. Our work clearly shows that the owner approach, in which threads are assigned whole streamlines, is more attractive than a distributed model, in which streamline segments are assigned to threads, because it allows re-use of existing sequential code for the 1D streamline solves, also for implicit time-stepping algorithms. « less