10#ifndef MUELU_AMGXOPERATOR_DEF_HPP
11#define MUELU_AMGXOPERATOR_DEF_HPP
13#if defined(HAVE_MUELU_AMGX)
19Teuchos::RCP<const Tpetra::Map<int, int, Node> >
31 Tpetra::MultiVector<double, int, int, Node>&
Y,
39 for (
int i = 0; i < (
int)
Y.getNumVectors(); i++) {
41 vectorTimer1_->start();
46 if (
comm->getSize() == 1) {
57 for (
int j = 0; j <
n; j++) {
66 vectorTimer1_->stop();
67 vectorTimer1_->incrementNumCalls();
71 solverTimer_->start();
74 solverTimer_->incrementNumCalls();
77 vectorTimer2_->start();
81 if (
comm->getSize() > 1) {
84 for (
int j = 0; j <
n; j++)
88 vectorTimer2_->stop();
89 vectorTimer2_->incrementNumCalls();
93 }
catch (std::exception&
e) {
94 std::string
errMsg = std::string(
"Caught an exception in MueLu::AMGXOperator::Apply():\n") +
e.what() +
"\n";
Tpetra::Map< LO, GO, NO > Map
void apply(const MultiVector &X, MultiVector &Y, Teuchos::ETransp mode=Teuchos::NO_TRANS, Scalar alpha=Teuchos::ScalarTraits< Scalar >::one(), Scalar beta=Teuchos::ScalarTraits< Scalar >::zero()) const
Returns a solution for the linear system AX=Y in the Tpetra::MultiVector X.
Teuchos::RCP< const Map > getRangeMap() const
Returns the Tpetra::Map object associated with the range of this operator.
bool hasTransposeApply() const
Indicates whether this operator supports applying the adjoint operator.
Teuchos::RCP< const Map > getDomainMap() const
Returns the Tpetra::Map object associated with the domain of this operator.
Exception throws to report errors in the internal logical of the program.
Namespace for MueLu classes and methods.