Anasazi
Version of the Day
|
Partial specialization of Anasazi::MultiVecTraits and Anasazi::OperatorTraits for Tpetra objects. More...
#include <Tpetra_MultiVector.hpp>
#include <Tpetra_Operator.hpp>
#include <Teuchos_Array.hpp>
#include <Teuchos_Assert.hpp>
#include <Teuchos_DefaultSerialComm.hpp>
#include <Teuchos_CommHelpers.hpp>
#include <Teuchos_ScalarTraits.hpp>
#include <Teuchos_FancyOStream.hpp>
#include <AnasaziConfigDefs.hpp>
#include <AnasaziTypes.hpp>
#include <AnasaziMultiVecTraits.hpp>
#include <AnasaziOperatorTraits.hpp>
#include <AnasaziOutputStreamTraits.hpp>
Go to the source code of this file.
Classes | |
class | Anasazi::MultiVecTraits< Scalar, Tpetra::MultiVector< Scalar, LO, GO, Node > > |
Specialization of MultiVecTraits for MV = Tpetra::MultiVector. More... | |
class | Anasazi::OperatorTraits< Scalar, Tpetra::MultiVector< Scalar, LO, GO, Node >, Tpetra::Operator< Scalar, LO, GO, Node > > |
Partial specialization of OperatorTraits for Tpetra objects. More... | |
Namespaces | |
Anasazi | |
Namespace Anasazi contains the classes, structs, enums and utilities used by the Anasazi package. | |
Partial specialization of Anasazi::MultiVecTraits and Anasazi::OperatorTraits for Tpetra objects.
If you want to use Anasazi solvers with Tpetra objects, include this header file, along with the header file(s) for the solver(s) you want to use. "Tpetra objects" means the following:
You may use any subclass of Tpetra::Operator here, as long as its template parameters match those of the Tpetra::MultiVector type. Many different Trilinos packages implement Tpetra::Operator subclasses. For example, when solving a linear system Ax=b, you could use a Tpetra::CrsMatrix or Tpetra::RowMatrix for the matrix A, and a preconditioner from Ifpack2, Amesos2, or MueLu.
This partial specialization assumes that the first (Scalar) template parameter of Anasazi::MultiVecTraits and Anasazi::OperatorTraits matches the first template parameters of Tpetra::MultiVector and Tpetra::Operator. In terms of Anasazi solvers, this means that the specialization assumes that the result of an inner product has the same type as any entry of the multivector or matrix. This is true for most Scalar types of interest, but may not necessarily be true for certain Scalar types implemented in the Stokhos package, or when implementing mixed-precision solvers in certain ways. If you don't know what this means, don't worry about it. If you do know what this means, you might need to write your own partial specialization of Anasazi::MultiVecTraits and Anasazi::OperatorTraits, for a Scalar type different than that of the Tpetra::MultiVector or Tpetra::Operator.
Definition in file AnasaziTpetraAdapter.hpp.