16 #ifndef IFPACK2_DETAILS_SCALEDDAMPEDRESIDUAL_DECL_HPP 
   17 #define IFPACK2_DETAILS_SCALEDDAMPEDRESIDUAL_DECL_HPP 
   19 #include "Ifpack2_config.h" 
   20 #include "Tpetra_CrsMatrix_fwd.hpp" 
   21 #include "Tpetra_MultiVector_fwd.hpp" 
   22 #include "Tpetra_Operator_fwd.hpp" 
   23 #include "Tpetra_Vector_fwd.hpp" 
   24 #include "Tpetra_Export_fwd.hpp" 
   25 #include "Tpetra_Import_fwd.hpp" 
   44 template <
class TpetraOperatorType>
 
   47   using SC = 
typename TpetraOperatorType::scalar_type;
 
   48   using LO = 
typename TpetraOperatorType::local_ordinal_type;
 
   49   using GO = 
typename TpetraOperatorType::global_ordinal_type;
 
   50   using NT = 
typename TpetraOperatorType::node_type;
 
   52   using crs_matrix_type  = Tpetra::CrsMatrix<SC, LO, GO, NT>;
 
   53   using multivector_type = Tpetra::MultiVector<SC, LO, GO, NT>;
 
   54   using operator_type    = Tpetra::Operator<SC, LO, GO, NT>;
 
   55   using vector_type      = Tpetra::Vector<SC, LO, GO, NT>;
 
   64   compute(multivector_type& W,
 
   72   using import_type = Tpetra::Import<LO, GO, NT>;
 
   73   using export_type = Tpetra::Export<LO, GO, NT>;
 
   79   std::unique_ptr<vector_type> X_colMap_;
 
   80   std::unique_ptr<multivector_type> V1_;
 
   86   importVector(vector_type& X_domMap);
 
   88   bool canFuse(
const multivector_type& B) 
const;
 
   91   unfusedCase(multivector_type& W,
 
   95               const operator_type& A,
 
  100   fusedCase(vector_type& W,
 
  104             const crs_matrix_type& A,
 
  112 #endif  // IFPACK2_DETAILS_SCALEDDAMPEDRESIDUAL_DECL_HPP 
Compute scaled damped residual for Chebyshev. 
Definition: Ifpack2_Details_ScaledDampedResidual_decl.hpp:45