46 #ifndef XPETRA_OPERATOR_HPP 47 #define XPETRA_OPERATOR_HPP 51 #include <Teuchos_Describable.hpp> 52 #include <Teuchos_BLAS_types.hpp> 53 #include <Teuchos_ScalarTraits.hpp> 60 template<class Scalar = MultiVector<>::scalar_type,
64 class Operator :
virtual public Teuchos::Describable {
89 virtual Teuchos::RCP<const Map>
getDomainMap()
const = 0;
92 virtual Teuchos::RCP<const Map>
getRangeMap()
const = 0;
102 Teuchos::ETransp mode = Teuchos::NO_TRANS,
103 Scalar alpha = Teuchos::ScalarTraits<Scalar>::one(),
104 Scalar beta = Teuchos::ScalarTraits<Scalar>::zero())
const = 0;
121 #define XPETRA_OPERATOR_SHORT 122 #endif // XPETRA_OPERATOR_HPP virtual 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 =0
Computes the operator-multivector application.
Scalar scalar_type
The type of the entries of the input and output multivectors.
Xpetra::MultiVector< Scalar, LocalOrdinal, GlobalOrdinal, Node > MultiVector
virtual bool hasTransposeApply() const
Whether this operator supports applying the transpose or conjugate transpose.
Node node_type
The Kokkos Node type.
GlobalOrdinal global_ordinal_type
The global index type.
LocalOrdinal local_ordinal_type
The local index type.
Xpetra::Map< LocalOrdinal, GlobalOrdinal, Node > Map
virtual void removeEmptyProcessesInPlace(const RCP< const Map > &newMap)
LocalOrdinal local_ordinal_type
GlobalOrdinal global_ordinal_type
virtual Teuchos::RCP< const Map > getRangeMap() const =0
The Map associated with the range of this operator, which must be compatible with Y...
virtual Teuchos::RCP< const Map > getDomainMap() const =0
The Map associated with the domain of this operator, which must be compatible with X...