AztecOO provides an object-oriented interface the the well-known Aztec solver library. Furthermore, it allows flexible construction of matrix and vector arguments via Epetra matrix and vector classes. Finally, AztecOO provide additional functionality not found in Aztec and any future enhancements to the Aztec package will be available only through the AztecOO interfaces.
AztecOO contains a number of classes. They are:
AztecOO - Primary solver class. An AztecOO object is instantiated using and Epetra_LinearProblem object. The solver options and parameters can be set using SetAztecOption() and SetAztecParam() methods on an AztecOO object.
Aztec2Petra() - Utility function to convert from Aztec data structures to Epetra objects. This function can be useful when migrating from Aztec to AztecOO. It is used internally by the AZOO_iterate function.
AztecOO supports a ``matrix-free'' mechanism via the pure virtual class Epetra_RowMatrix. This class is part of Epetra and is implemented by the Epetra_CrsMatrix and Epetra_VbrMatrix classes. It is possible to implement Epetra_RowMatrix using other matrix classes. AztecOO can then use this alternate implementation to provide the matrix multiply capabilities, and to obtain row value information from the matrix for constructing preconditioners. For details of Epetra, see the Epetra home page.
The AztecOO to Thyra Linear Solver Adapters take
Thyra::LinearOpBase objects that wrap
Epetra_Operator objects and turn them into
Thyra::LinearOpWithSolveBase objects which can then be used to solve linear systems using the
You can browse all of AztecOO as a single doxygen collection. Warning, this is not the recommended way to learn about AztecOO software. However, this is a good way to browse the directory structure of aztecoo, to locate files, etc.