  This paper presents our work on designing scalable linear solvers for
large-scale reservoir simulations. The main objective is to support
implementation of parallel reservoir simulators on distributed-memory parallel
systems, where MPI (Message Passing Interface) is employed for communications
among computation nodes. Distributed matrix and vector modules are designed,
which are the base of our parallel linear systems. Commonly-used Krylov
subspace linear solvers are implemented, including the restarted GMRES method,
the LGMRES method, and the BiCGSTAB method. It also has an interface to a
parallel algebraic multigrid solver, BoomerAMG from HYPRE. Parallel
general-purpose preconditioners and special preconditioners for reservoir
simulations are also developed. The numerical experiments show that our linear
solvers have excellent scalability using thousands of CPU cores.
