Anasazi  Version of the Day
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Groups Pages
Classes | Namespaces
AnasaziTpetraAdapter.hpp File Reference

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.
 

Detailed Description

Partial specialization of Anasazi::MultiVecTraits and Anasazi::OperatorTraits for Tpetra objects.

Summary

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.

Note to Anasazi developers

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.