Anasazi
Version of the Day

Anasazi is a powerful, extensible and interoperable C++ framework for the numerical solution of largescale eigenvalue problems. The motivation for this framework is to provide a generic interface to a collection of algorithms for solving largescale eigenvalue problems. Anasazi's interoperability results from its understanding of operators and vectors as opaque objects—these objects are accessed only via elementary operations. Hence the user has the flexibility to specify the data representation for operators and vectors and may so leverage any existing software investment. This mechanism is accomplished via the Anasazi Operator/Vector abstract interface. Current interfaces available include Thyra, Epetra and Tpetra. As a result, any existing code employing Thyra, Epetra or Tpetra operators and vectors (such as other packages in Trilinos) may also be used in conjunction with Anasazi.
The Anasazi eigensolver framework describes eigensolver and eigensolver managers that provide efficient, convenient and powerful computational methods. Anasazi's power is a result of the distribution of functionality across different computational entities in the framework: orthogonalization, sorting/selection, eigenvalue iterations, restarting methodologies, etc. Anasazi's extensibility comes via the abstract interfaces describing these entities. Anasazi currently provides a robust set of options, and users are able to expand this set to suit specific research and/or application needs. The ability to interact directly with these objects provides great flexibility in computation, while the existence of solver managers allow convenient programming for standard use cases.
Unlike ARPACK, which provides a single eigensolver, Anasazi provides a framework capable of describing a wide variety of eigenproblems and algorithms for solving them. Anasazi can currently solve complex and real, Hermitian and nonHermitian, eigenvalue problems, via the following included methods:
Block KrylovSchur method, a block extension of A KrylovSchur Algorithm for Large Eigenproblems, G. W. Stewart, SIAM J. Matrix Anal. Appl., 23, pp. 601614 (2000).
Block Davidson method described in A Comparison of Eigensolvers for Largescale 3D Modal Analysis Using AMGPreconditioned Iterative Methods, P. Arbenz, U. L. Hetmaniuk, R. B. Lehoucq, R. S. Tuminaro, Internat. J. for Numer. Methods Engrg., 64, pp. 204236 (2005).
IRTR, an implicit version of the Riemannian TrustRegion Eigensolver, orginally described in A truncatedCG style method for symmetric generalized eigenvalue problems, P.A. Absil, C. G. Baker, and K. A. Gallivan, J. Computational and Applied Mathematics, 189, pp. 274285 (2006).
Generalized Davidson method, a nonsymmetric variant of the block Davidson solver described above. This solver is experimental, but is currently in active use. It currently only supports realvalued scalar types.
TraceMin method described in A trace minimization algorithm for the generalized eigenvalue problem, A. Sameh and J. Wisniewski, SIAM J. Numer. Anal., 19, pp. 12431259 (1982). This solver is experimental.
The following people have contributed to the development of Anasazi: