44 #ifndef IFPACK2_BORDEREDOPERATOR_DEF_HPP 
   45 #define IFPACK2_BORDEREDOPERATOR_DEF_HPP 
   47 #include "Ifpack2_BorderedOperator_decl.hpp" 
   48 #include "Tpetra_MultiVector.hpp" 
   53 template< 
class Scalar, 
class LocalOrdinal, 
class GlobalOrdinal, 
class Node >
 
   59     A_.
is_null (), std::runtime_error, 
 
   61     "The input Operator A is null.");
 
   64 template< 
class Scalar, 
class LocalOrdinal, 
class GlobalOrdinal, 
class Node >
 
   68   return A_->getDomainMap();
 
   71 template< 
class Scalar, 
class LocalOrdinal, 
class GlobalOrdinal, 
class Node >
 
   75   return A_->getRangeMap();
 
   78 template< 
class Scalar, 
class LocalOrdinal, 
class GlobalOrdinal, 
class Node >
 
   82   return A_->hasTransposeApply();
 
   85 template< 
class Scalar, 
class LocalOrdinal, 
class GlobalOrdinal, 
class Node >
 
   88 apply (
const Tpetra::MultiVector<Scalar, LocalOrdinal, GlobalOrdinal, Node >& X,
 
   89        Tpetra::MultiVector<Scalar, LocalOrdinal, GlobalOrdinal, Node >& Y,
 
   95     X.getNumVectors() != Y.getNumVectors(), std::runtime_error,
 
   96     "Ifpack2::BorderedOperator::apply(): X.getNumVectors() = "  
   97     << X.getNumVectors() << 
" != Y.getNumVectors() = "  
   98     << Y.getNumVectors() << 
".");
 
   99   A_->apply (X, Y, mode, coefAx, coefY );
 
  104 #define IFPACK2_BORDEREDOPERATOR_INSTANT(S,LO,GO,N) \ 
  105   template class Ifpack2::BorderedOperator< S, LO, GO, N >; 
virtual Teuchos::RCP< const Tpetra::Map< LocalOrdinal, GlobalOrdinal, Node > > getRangeMap() const 
The range Map of this operator. It must be compatible with Y.getMap(). 
Definition: Ifpack2_BorderedOperator_def.hpp:73
 
void apply(const Tpetra::MultiVector< Scalar, LocalOrdinal, GlobalOrdinal, Node > &X, Tpetra::MultiVector< Scalar, LocalOrdinal, GlobalOrdinal, Node > &Y, Teuchos::ETransp mode=Teuchos::NO_TRANS, Scalar alpha=Teuchos::ScalarTraits< Scalar >::one(), Scalar beta=Teuchos::ScalarTraits< Scalar >::zero()) const 
Apply the bordered operator. 
Definition: Ifpack2_BorderedOperator_def.hpp:88
 
#define TEUCHOS_TEST_FOR_EXCEPTION(throw_exception_test, Exception, msg)
 
virtual Teuchos::RCP< const Tpetra::Map< LocalOrdinal, GlobalOrdinal, Node > > getDomainMap() const 
The domain Map of this operator. It must be compatible with X.getMap(). 
Definition: Ifpack2_BorderedOperator_def.hpp:66
 
bool hasTransposeApply() const 
Whether this operator can apply the transpose or conjugate transpose. 
Definition: Ifpack2_BorderedOperator_def.hpp:80
 
BorderedOperator(const Teuchos::RCP< const Tpetra::Operator< Scalar, LocalOrdinal, GlobalOrdinal, Node > > &A)
Constructor with Tpetra::Operator input. 
Definition: Ifpack2_BorderedOperator_def.hpp:55
 
std::string typeName(const T &t)