10 #ifndef THYRA_TPETRA_THYRA_WRAPPERS_DECL_HPP
11 #define THYRA_TPETRA_THYRA_WRAPPERS_DECL_HPP
14 #include "Thyra_OperatorVectorTypes.hpp"
15 #include "Thyra_TpetraVectorSpace_decl.hpp"
16 #include "Thyra_TpetraVector_decl.hpp"
17 #include "Thyra_TpetraMultiVector_decl.hpp"
18 #include "Thyra_TpetraLinearOp_decl.hpp"
19 #include "Thyra_LinearOpWithSolveFactoryHelpers.hpp"
20 #include "Thyra_PreconditionerFactoryHelpers.hpp"
21 #include "Tpetra_CrsMatrix.hpp"
33 RCP<const Teuchos::Comm<Ordinal> >
43 RCP<const Teuchos::Comm<int> >
51 template <
class Scalar,
class LocalOrdinal,
class GlobalOrdinal,
class Node>
52 RCP<const VectorSpaceBase<Scalar> >
60 template <
class Scalar,
class LocalOrdinal,
class GlobalOrdinal,
class Node>
61 RCP<VectorBase<Scalar> >
64 const RCP<
const VectorSpaceBase<Scalar> > space = Teuchos::null
72 template <
class Scalar,
class LocalOrdinal,
class GlobalOrdinal,
class Node>
73 RCP<const VectorBase<Scalar> >
76 const RCP<
const VectorSpaceBase<Scalar> > space = Teuchos::null
84 template <
class Scalar,
class LocalOrdinal,
class GlobalOrdinal,
class Node>
85 RCP<MultiVectorBase<Scalar> >
88 const RCP<
const VectorSpaceBase<Scalar> > rangeSpace = Teuchos::null,
89 const RCP<
const VectorSpaceBase<Scalar> > domainSpace = Teuchos::null
97 template <
class Scalar,
class LocalOrdinal,
class GlobalOrdinal,
class Node>
98 RCP<const MultiVectorBase<Scalar> >
101 const RCP<
const VectorSpaceBase<Scalar> > rangeSpace = Teuchos::null,
102 const RCP<
const VectorSpaceBase<Scalar> > domainSpace = Teuchos::null
110 template <
class Scalar,
class LocalOrdinal,
class GlobalOrdinal,
class Node>
111 RCP<LinearOpBase<Scalar> >
114 const RCP<
const VectorSpaceBase<Scalar> > rangeSpace = Teuchos::null,
115 const RCP<
const VectorSpaceBase<Scalar> > domainSpace = Teuchos::null
123 template <
class Scalar,
class LocalOrdinal,
class GlobalOrdinal,
class Node>
124 RCP<const LinearOpBase<Scalar> >
127 const RCP<
const VectorSpaceBase<Scalar> > rangeSpace = Teuchos::null,
128 const RCP<
const VectorSpaceBase<Scalar> > domainSpace = Teuchos::null
134 template <
class Scalar,
class LocalOrdinal,
class GlobalOrdinal,
class Node>
137 const PreconditionerFactoryBase<Scalar> &precFactory,
139 const Teuchos::RCP<PreconditionerBase<Scalar>> &prec = Teuchos::null,
145 template <
class Scalar,
class LocalOrdinal,
class GlobalOrdinal,
class Node>
148 const PreconditionerFactoryBase<Scalar> &precFactory,
150 const Teuchos::RCP<PreconditionerBase<Scalar>> &prec = Teuchos::null,
157 template <
class Scalar,
class LocalOrdinal,
class GlobalOrdinal,
class Node>
158 RCP<LinearOpWithSolveBase<Scalar>>
160 const LinearOpWithSolveFactoryBase<Scalar> &lowsFactory,
169 template <
class Scalar,
class LocalOrdinal,
class GlobalOrdinal,
class Node>
170 RCP<LinearOpWithSolveBase<Scalar>>
172 const LinearOpWithSolveFactoryBase<Scalar> &lowsFactory,
181 template <
class Scalar,
class LocalOrdinal,
class GlobalOrdinal,
class Node>
182 RCP<LinearOpWithSolveBase<Scalar>>
183 initializePreconditionedOp(
184 const LinearOpWithSolveFactoryBase<Scalar> &lowsFactory,
186 const RCP<PreconditionerBase<Scalar>> &prec,
194 template <
class Scalar,
class LocalOrdinal,
class GlobalOrdinal,
class Node>
195 RCP<LinearOpWithSolveBase<Scalar>>
196 initializePreconditionedOp(
197 const LinearOpWithSolveFactoryBase<Scalar> &lowsFactory,
199 const RCP<PreconditionerBase<Scalar>> &prec,
206 template <
class Scalar,
class LocalOrdinal,
class GlobalOrdinal,
class Node>
207 inline SolveStatus<Scalar>
209 const LinearOpWithSolveBase<Scalar> &A,
const EOpTransp A_trans,
212 const Ptr<
const SolveCriteria<Scalar>> solveCriteria = Teuchos::null);
234 template <class Scalar = Tpetra::Vector<>::scalar_type,
288 #endif // THYRA_TPETRA_THYRA_WRAPPERS_DECL_HPP
How the output LOWSB object will be useded for solves in unspecified.
EOpTransp
Enumeration for determining how a linear operator is applied. `*.
RCP< const Teuchos::Comm< int > > convertThyraToTpetraComm(const RCP< const Teuchos::Comm< Ordinal > > &thyraComm)
Given an Tpetra Teuchos::Comm<Ordinal> object, return an equivalent Teuchos::Comm<int> object...
RCP< const MultiVectorBase< Scalar > > createConstMultiVector(const RCP< const Tpetra::MultiVector< Scalar, LocalOrdinal, GlobalOrdinal, Node > > &tpetraMultiVector, const RCP< const VectorSpaceBase< Scalar > > rangeSpace=Teuchos::null, const RCP< const VectorSpaceBase< Scalar > > domainSpace=Teuchos::null)
RCP< const VectorBase< Scalar > > createConstVector(const RCP< const Tpetra::Vector< Scalar, LocalOrdinal, GlobalOrdinal, Node > > &tpetraVector, const RCP< const VectorSpaceBase< Scalar > > space=Teuchos::null)
Abstract interface for objects that represent a space for vectors.
GlobalOrdinal global_ordinal_type
RCP< const LinearOpBase< Scalar > > createConstLinearOp(const RCP< const Tpetra::Operator< Scalar, LocalOrdinal, GlobalOrdinal, Node > > &tpetraOperator, const RCP< const VectorSpaceBase< Scalar > > rangeSpace=Teuchos::null, const RCP< const VectorSpaceBase< Scalar > > domainSpace=Teuchos::null)
Interface for a collection of column vectors called a multi-vector.
Teuchos::RCP< Vector< Scalar, LocalOrdinal, GlobalOrdinal, Node > > createVector(const Teuchos::RCP< const Map< LocalOrdinal, GlobalOrdinal, Node > > &map)
Teuchos::RCP< MultiVector< Scalar, LocalOrdinal, GlobalOrdinal, Node > > createMultiVector(const Teuchos::RCP< const Map< LocalOrdinal, GlobalOrdinal, Node >> &map, const size_t numVectors)
Abstract interface for finite-dimensional dense vectors.
LocalOrdinal local_ordinal_type
RCP< const VectorSpaceBase< Scalar > > createVectorSpace(const RCP< const Tpetra::Map< LocalOrdinal, GlobalOrdinal, Node > > &tpetraMap)
Create a Thyra::VectorSpaceBase object given a Tpetra::Map.
RCP< const Teuchos::Comm< Ordinal > > convertTpetraToThyraComm(const RCP< const Teuchos::Comm< int > > &tpetraComm)
Given an Tpetra Teuchos::Comm<int> object, return an equivalent Teuchos::Comm<Ordinal> object...
Base class for all linear operators.
ESupportSolveUse
Enum that specifies how a LinearOpWithSolveBase object will be used for solves after it is constructe...
RCP< LinearOpBase< Scalar > > createLinearOp(const RCP< Tpetra::Operator< Scalar, LocalOrdinal, GlobalOrdinal, Node > > &tpetraOperator, const RCP< const VectorSpaceBase< Scalar > > rangeSpace=Teuchos::null, const RCP< const VectorSpaceBase< Scalar > > domainSpace=Teuchos::null)