A parameter-based approach for two-phase-equilibrium prediction that uses the two-parameter Peng-Robinson equation of state (EOS) has been developed. This approach takes advantage of the special mathematical forms of the ideal mixing and excess parts of the Gibb's free energy to reduce the Nc-component equilibrium problem to a minimization problem in three or four variables, depending on whether binary interaction coefficients (BIC's) are zero or nonzero. The Gibb's free energy is minimized in two steps. The ideal mixing term is minimized first subject to certain constraints that include the mixing rules for the EOS parameters. A second minimization is performed over the total Gibb's free energy with the Lagrange multipliers from the first minimization as a reduced set of variables in place of the usual component-related variables.
The new approach has been applied to develop parameter-based versions of the Newton-Raphson and trust-region methods for performing flash calculations as well as the phase-stability test to handle the transition from one to two phases. These methods have been implemented in computer programs and tested on phase-behavior problems taken from the petroleum literature.
In the case of zero BIC's, the reduction in the number of variables produces substantial reduction in computational cost compared with component-based methods, especially as the number of components increases, while convergence behavior is essentially unchanged. For the nonzero HIC case, however, a practical implementation requires the introduction of approximations that compromise convergence and offset the lower cost per iteration.
Compositional effects are significant in many reservoir processes. To portray these effects accurately, compositional simulators perform countless flash calculations. An acceptable balance between accuracy and cost is achieved by use of cubic EOS's tuned to the specific fluids under study. In addition, much work has been done to improve phase-behavior algorithms. Even so, compositional simulators spend most of their execution time doing flash computations.