template<class Scalar = Xpetra::MultiVector<>::scalar_type, class LocalOrdinal = typename Xpetra::MultiVector<Scalar>::local_ordinal_type, class GlobalOrdinal = typename Xpetra::MultiVector<Scalar, LocalOrdinal>::global_ordinal_type, class Node = typename Xpetra::MultiVector<Scalar, LocalOrdinal, GlobalOrdinal>::node_type>
class MueLu::SmootherBase< Scalar, LocalOrdinal, GlobalOrdinal, Node >
Base class for smoothers.
This has the signature for the required Apply function and contains data that is generic across all smoothers.
Definition at line 68 of file MueLu_SmootherBase.hpp.
template<class Scalar = Xpetra::MultiVector<>::scalar_type, class LocalOrdinal = typename Xpetra::MultiVector<Scalar>::local_ordinal_type, class GlobalOrdinal = typename Xpetra::MultiVector<Scalar, LocalOrdinal>::global_ordinal_type, class Node = typename Xpetra::MultiVector<Scalar, LocalOrdinal, GlobalOrdinal>::node_type>
template<class Scalar = Xpetra::MultiVector<>::scalar_type, class LocalOrdinal = typename Xpetra::MultiVector<Scalar>::local_ordinal_type, class GlobalOrdinal = typename Xpetra::MultiVector<Scalar, LocalOrdinal>::global_ordinal_type, class Node = typename Xpetra::MultiVector<Scalar, LocalOrdinal, GlobalOrdinal>::node_type>
template<class Scalar = Xpetra::MultiVector<>::scalar_type, class LocalOrdinal = typename Xpetra::MultiVector<Scalar>::local_ordinal_type, class GlobalOrdinal = typename Xpetra::MultiVector<Scalar, LocalOrdinal>::global_ordinal_type, class Node = typename Xpetra::MultiVector<Scalar, LocalOrdinal, GlobalOrdinal>::node_type>
template<class Scalar = Xpetra::MultiVector<>::scalar_type, class LocalOrdinal = typename Xpetra::MultiVector<Scalar>::local_ordinal_type, class GlobalOrdinal = typename Xpetra::MultiVector<Scalar, LocalOrdinal>::global_ordinal_type, class Node = typename Xpetra::MultiVector<Scalar, LocalOrdinal, GlobalOrdinal>::node_type>
template<class Scalar = Xpetra::MultiVector<>::scalar_type, class LocalOrdinal = typename Xpetra::MultiVector<Scalar>::local_ordinal_type, class GlobalOrdinal = typename Xpetra::MultiVector<Scalar, LocalOrdinal>::global_ordinal_type, class Node = typename Xpetra::MultiVector<Scalar, LocalOrdinal, GlobalOrdinal>::node_type>
template<class Scalar = Xpetra::MultiVector<>::scalar_type, class LocalOrdinal = typename Xpetra::MultiVector<Scalar>::local_ordinal_type, class GlobalOrdinal = typename Xpetra::MultiVector<Scalar, LocalOrdinal>::global_ordinal_type, class Node = typename Xpetra::MultiVector<Scalar, LocalOrdinal, GlobalOrdinal>::node_type>
template<class Scalar = Xpetra::MultiVector<>::scalar_type, class LocalOrdinal = typename Xpetra::MultiVector<Scalar>::local_ordinal_type, class GlobalOrdinal = typename Xpetra::MultiVector<Scalar, LocalOrdinal>::global_ordinal_type, class Node = typename Xpetra::MultiVector<Scalar, LocalOrdinal, GlobalOrdinal>::node_type>
| virtual void MueLu::SmootherBase< Scalar, LocalOrdinal, GlobalOrdinal, Node >::Apply |
( |
MultiVector & |
x, |
|
|
const MultiVector & |
rhs, |
|
|
bool |
InitialGuessIsZero = false |
|
) |
| const |
|
pure virtual |
Apply smoother.
Implemented in MueLu::SimpleSmoother< Scalar, LocalOrdinal, GlobalOrdinal, Node >, MueLu::UzawaSmoother< Scalar, LocalOrdinal, GlobalOrdinal, Node >, MueLu::Ifpack2Smoother< double, int, int, Xpetra::EpetraNode >, MueLu::TekoSmoother< double, int, GlobalOrdinal, Node >, MueLu::Ifpack2Smoother< Scalar, LocalOrdinal, GlobalOrdinal, Node >, MueLu::Amesos2Smoother< double, int, int, Xpetra::EpetraNode >, MueLu::BlockedGaussSeidelSmoother< Scalar, LocalOrdinal, GlobalOrdinal, Node >, MueLu::BlockedJacobiSmoother< Scalar, LocalOrdinal, GlobalOrdinal, Node >, MueLu::IfpackSmoother< Node >, MueLu::AmesosSmoother< Node >, MueLu::IndefBlockedDiagonalSmoother< Scalar, LocalOrdinal, GlobalOrdinal, Node >, MueLu::BraessSarazinSmoother< Scalar, LocalOrdinal, GlobalOrdinal, Node >, MueLu::TekoSmoother< Scalar, LocalOrdinal, GlobalOrdinal, Node >, MueLu::MatlabSmoother< Scalar, LocalOrdinal, GlobalOrdinal, Node >, MueLu::PermutingSmoother< Scalar, LocalOrdinal, GlobalOrdinal, Node >, MueLu::BlockedDirectSolver< Scalar, LocalOrdinal, GlobalOrdinal, Node >, MueLu::TrilinosSmoother< Scalar, LocalOrdinal, GlobalOrdinal, Node >, MueLu::Amesos2Smoother< Scalar, LocalOrdinal, GlobalOrdinal, Node >, MueLu::MergedSmoother< Scalar, LocalOrdinal, GlobalOrdinal, Node >, MueLu::ProjectorSmoother< Scalar, LocalOrdinal, GlobalOrdinal, Node >, and MueLu::DirectSolver< Scalar, LocalOrdinal, GlobalOrdinal, Node >.
template<class Scalar = Xpetra::MultiVector<>::scalar_type, class LocalOrdinal = typename Xpetra::MultiVector<Scalar>::local_ordinal_type, class GlobalOrdinal = typename Xpetra::MultiVector<Scalar, LocalOrdinal>::global_ordinal_type, class Node = typename Xpetra::MultiVector<Scalar, LocalOrdinal, GlobalOrdinal>::node_type>
| virtual size_t MueLu::SmootherBase< Scalar, LocalOrdinal, GlobalOrdinal, Node >::getNodeSmootherComplexity |
( |
| ) |
const |
|
pure virtual |
Compute a rough estimate of the cost to apply this smoother on this MPI rank. Return Teuchos::OrdinalTraits<size_t>::invalid() if such an estimate cannot be computed.
Implemented in MueLu::TekoSmoother< double, int, GlobalOrdinal, Node >, MueLu::Ifpack2Smoother< double, int, int, Xpetra::EpetraNode >, MueLu::Ifpack2Smoother< Scalar, LocalOrdinal, GlobalOrdinal, Node >, MueLu::BlockedGaussSeidelSmoother< Scalar, LocalOrdinal, GlobalOrdinal, Node >, MueLu::BlockedJacobiSmoother< Scalar, LocalOrdinal, GlobalOrdinal, Node >, MueLu::Amesos2Smoother< double, int, int, Xpetra::EpetraNode >, MueLu::IfpackSmoother< Node >, MueLu::TrilinosSmoother< Scalar, LocalOrdinal, GlobalOrdinal, Node >, MueLu::AmesosSmoother< Node >, MueLu::TekoSmoother< Scalar, LocalOrdinal, GlobalOrdinal, Node >, MueLu::SimpleSmoother< Scalar, LocalOrdinal, GlobalOrdinal, Node >, MueLu::UzawaSmoother< Scalar, LocalOrdinal, GlobalOrdinal, Node >, MueLu::MatlabSmoother< Scalar, LocalOrdinal, GlobalOrdinal, Node >, MueLu::IndefBlockedDiagonalSmoother< Scalar, LocalOrdinal, GlobalOrdinal, Node >, MueLu::BraessSarazinSmoother< Scalar, LocalOrdinal, GlobalOrdinal, Node >, MueLu::PermutingSmoother< Scalar, LocalOrdinal, GlobalOrdinal, Node >, MueLu::BlockedDirectSolver< Scalar, LocalOrdinal, GlobalOrdinal, Node >, MueLu::Amesos2Smoother< Scalar, LocalOrdinal, GlobalOrdinal, Node >, MueLu::ProjectorSmoother< Scalar, LocalOrdinal, GlobalOrdinal, Node >, MueLu::MergedSmoother< Scalar, LocalOrdinal, GlobalOrdinal, Node >, and MueLu::DirectSolver< Scalar, LocalOrdinal, GlobalOrdinal, Node >.