                             KINSOL
                   Release 2.9.0, September 2016
     Aaron Collier, Alan C. Hindmarsh, Radu Serban, and Carol S. Woodward
             Center for Applied Scientific Computing, LLNL

KINSOL is a solver for nonlinear algebraic systems which can be
described as F(u) = 0.  It is written in the C language and based
on the previous Fortran package NKSOL [4], written by Peter Brown and
Youcef Saad.  Nonlinear solver methods available include Newton-Krylov,
Picard, and fixed point.  Both Picard and fixed point can be accelerated
with Anderson acceleration.

KINSOL can be used both on serial and parallel computers.
The difference is only in the NVECTOR module of vector functions.
The desired version is obtained when compiling the example files
by linking with the appropriate library of NVECTOR functions.  In the
parallel versions, communication between processes is done  
with MPI, with OpenMP, or with Pthreads.

When used with the serial NVECTOR module, KINSOL provides both direct (dense 
and band) and preconditioned Krylov (iterative) linear solvers. Four different
iterative solvers are available: scaled preconditioned GMRES (SPGMR), scaled 
preconditioned BiCGStab (SPBCG), scaled preconditioned TFQMR (SPTFQMR), and
scaled preconditioned Flexible GMRES (SPFGMR). 
When used with the parallel NVECTOR module, KINSOL provides a
preconditioner module called KINBBDPRE, which provides a
band-block-diagonal preconditioner for use with the Krylov linear
solvers. However, within KINSOL any NVECTOR module may be combined
with an appropriate user-supplied preconditioning module for
acceleration of the Krylov solvers.

KINSOL is part of a software family called SUNDIALS: SUite of Nonlinear
and DIfferential/ALgebraic equation Solvers.  This suite consists of
CVODE, CVODES, ARKode, KINSOL, IDA, and IDAS.  The directory
structure of the package supplied reflects this family relationship.

For use with Fortran applications, a set of Fortran/C interface routines,
called FKINSOL, is also supplied.  These are written in C, but assume that
the user calling program and all user-supplied routines are in Fortran.

The notes below provide the location of documentation, directions for the 
installation of the KINSOL package, and relevant references. Following that 
is a brief history of revisions to the package.


A. Documentation
----------------

/sundials/doc/kinsol/ contains PDF files for the KINSOL User Guide [1] (kin_guide.pdf)
and the KINSOL Examples [2] (kin_examples.pdf) documents.


B. Installation
---------------

For basic installation instructions see the file /sundials/INSTALL_GUIDE.pdf. 
For complete installation instructions see the "Installation Procedure"
chapter in the KINSOL User Guide [1].


C. References
-------------

[1] A. M. Collier, A. C. Hindmarsh, R. Serban, and C. S. Woodward,
    "User Documentation for KINSOL v2.9.0," LLNL technical report
    UCRL-SM-208116, March 2016.

[2] A. M. Collier and R. Serban, "Example Programs for KINSOL v2.9.0,"
    LLNL technical report UCRL-SM-208114, March 2016.

[3] A. C. Hindmarsh, P. N. Brown, K. E. Grant, S. L. Lee, R. Serban, 
    D. E. Shumaker, and C. S. Woodward, "SUNDIALS, Suite of Nonlinear and 
    Differential/Algebraic Equation Solvers," ACM Trans. Math. Softw., 
    31(3), pp. 363-396, 2005.

[4] Peter N. Brown and Youcef Saad, "Hybrid Krylov Methods for
    Nonlinear Systems of Equations," SIAM J. Sci. Stat. Comput., 
    Vol 11, no 3, pp. 450-481, May 1990.  

[5] A. G. Taylor and A. C. Hindmarsh, "User Documentation for KINSOL,
    A Nonlinear Solver for Sequential and Parallel Computers," LLNL
    technical report UCRL-ID-131185, July 1998.


D. Releases
-----------

v. 2.9.0   - Sep. 2016
v. 2.8.2   - Aug. 2015
v. 2.8.1   - Mar. 2015
v. 2.8.0   - Mar. 2015
v. 2.7.0   - Mar. 2012
v. 2.6.0   - May  2009
v. 2.5.0   - Nov. 2006
v. 2.4.0   - Mar. 2006
v. 2.3.0   - Apr. 2005
v. 2.2.2   - Mar. 2005
v. 2.2.1   - Jan. 2005
v. 2.2.0   - Dec. 2004
v. 2.0     - Jul. 2002 (first SUNDIALS release)
v. 1.0     - Aug. 1998 (date written)

