Thyra Package Browser (Single Doxygen Collection)  Version of the Day
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Thyra_TpetraThyraWrappers_decl.hpp
Go to the documentation of this file.
1 // @HEADER
2 // *****************************************************************************
3 // Thyra: Interfaces and Support for Abstract Numerical Algorithms
4 //
5 // Copyright 2004 NTESS and the Thyra contributors.
6 // SPDX-License-Identifier: BSD-3-Clause
7 // *****************************************************************************
8 // @HEADER
9 
10 #ifndef THYRA_TPETRA_THYRA_WRAPPERS_DECL_HPP
11 #define THYRA_TPETRA_THYRA_WRAPPERS_DECL_HPP
12 
13 
14 #include "Thyra_OperatorVectorTypes.hpp"
19 
20 
21 namespace Thyra {
22 
23 
31 RCP<const Teuchos::Comm<Ordinal> >
32 convertTpetraToThyraComm( const RCP<const Teuchos::Comm<int> > &tpetraComm );
33 
41 RCP<const Teuchos::Comm<int> >
42 convertThyraToTpetraComm( const RCP<const Teuchos::Comm<Ordinal> > &thyraComm );
43 
44 
49 template <class Scalar, class LocalOrdinal, class GlobalOrdinal, class Node>
50 RCP<const VectorSpaceBase<Scalar> >
51 createVectorSpace(const RCP<const Tpetra::Map<LocalOrdinal,GlobalOrdinal,Node> > &tpetraMap);
52 
53 
58 template <class Scalar, class LocalOrdinal, class GlobalOrdinal, class Node>
59 RCP<VectorBase<Scalar> >
61  const RCP<Tpetra::Vector<Scalar,LocalOrdinal,GlobalOrdinal,Node> > &tpetraVector,
62  const RCP<const VectorSpaceBase<Scalar> > space = Teuchos::null
63  );
64 
65 
70 template <class Scalar, class LocalOrdinal, class GlobalOrdinal, class Node>
71 RCP<const VectorBase<Scalar> >
73  const RCP<const Tpetra::Vector<Scalar,LocalOrdinal,GlobalOrdinal,Node> > &tpetraVector,
74  const RCP<const VectorSpaceBase<Scalar> > space = Teuchos::null
75  );
76 
77 
82 template <class Scalar, class LocalOrdinal, class GlobalOrdinal, class Node>
83 RCP<MultiVectorBase<Scalar> >
85  const RCP<Tpetra::MultiVector<Scalar,LocalOrdinal,GlobalOrdinal,Node> > &tpetraMultiVector,
86  const RCP<const VectorSpaceBase<Scalar> > rangeSpace = Teuchos::null,
87  const RCP<const VectorSpaceBase<Scalar> > domainSpace = Teuchos::null
88  );
89 
90 
95 template <class Scalar, class LocalOrdinal, class GlobalOrdinal, class Node>
96 RCP<const MultiVectorBase<Scalar> >
98  const RCP<const Tpetra::MultiVector<Scalar,LocalOrdinal,GlobalOrdinal,Node> > &tpetraMultiVector,
99  const RCP<const VectorSpaceBase<Scalar> > rangeSpace = Teuchos::null,
100  const RCP<const VectorSpaceBase<Scalar> > domainSpace = Teuchos::null
101  );
102 
103 
108 template <class Scalar, class LocalOrdinal, class GlobalOrdinal, class Node>
109 RCP<LinearOpBase<Scalar> >
111  const RCP<Tpetra::Operator<Scalar,LocalOrdinal,GlobalOrdinal,Node> > &tpetraOperator,
112  const RCP<const VectorSpaceBase<Scalar> > rangeSpace = Teuchos::null,
113  const RCP<const VectorSpaceBase<Scalar> > domainSpace = Teuchos::null
114  );
115 
116 
121 template <class Scalar, class LocalOrdinal, class GlobalOrdinal, class Node>
122 RCP<const LinearOpBase<Scalar> >
124  const RCP<const Tpetra::Operator<Scalar,LocalOrdinal,GlobalOrdinal,Node> > &tpetraOperator,
125  const RCP<const VectorSpaceBase<Scalar> > rangeSpace = Teuchos::null,
126  const RCP<const VectorSpaceBase<Scalar> > domainSpace = Teuchos::null
127  );
128 
129 
150 template <class Scalar = Tpetra::Vector<>::scalar_type,
151  class LocalOrdinal = Tpetra::Vector<>::local_ordinal_type,
152  class GlobalOrdinal = Tpetra::Vector<>::global_ordinal_type,
153  class Node = Tpetra::Vector<>::node_type>
155 public:
156 
160  getTpetraMap(const RCP<const VectorSpaceBase<Scalar> > &vs);
161 
166  getTpetraVector(const RCP<VectorBase<Scalar> > &v);
167 
172  getConstTpetraVector(const RCP<const VectorBase<Scalar> > &v);
173 
178  getTpetraMultiVector(const RCP<MultiVectorBase<Scalar> > &mv);
179 
184  getConstTpetraMultiVector(const RCP<const MultiVectorBase<Scalar> > &mv);
185 
190  getTpetraOperator(const RCP<LinearOpBase<Scalar> > &op);
191 
196  getConstTpetraOperator(const RCP<const LinearOpBase<Scalar> > &op);
197 
198 };
199 
200 
201 } // namespace Thyra
202 
203 
204 #endif // THYRA_TPETRA_THYRA_WRAPPERS_DECL_HPP
RCP< MultiVectorBase< Scalar > > createMultiVector(const RCP< Tpetra::MultiVector< Scalar, LocalOrdinal, GlobalOrdinal, Node > > &tpetraMultiVector, const RCP< const VectorSpaceBase< Scalar > > rangeSpace=Teuchos::null, const RCP< const VectorSpaceBase< Scalar > > domainSpace=Teuchos::null)
static RCP< const Tpetra::Map< LocalOrdinal, GlobalOrdinal, Node > > getTpetraMap(const RCP< const VectorSpaceBase< Scalar > > &vs)
Get a const Tpetra::Map from a const Thyra::VectorSpaceBase object.
Traits class that enables the extraction of Tpetra operator/vector objects wrapped in Thyra operator/...
RCP< const VectorBase< Scalar > > createConstVector(const RCP< const Tpetra::Vector< Scalar, LocalOrdinal, GlobalOrdinal, Node > > &tpetraVector, const RCP< const VectorSpaceBase< Scalar > > space=Teuchos::null)
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)
static RCP< const Tpetra::Vector< Scalar, LocalOrdinal, GlobalOrdinal, Node > > getConstTpetraVector(const RCP< const VectorBase< Scalar > > &v)
Get a const Tpetra::Vector from a const Thyra::VectorBase object.
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)
static RCP< Tpetra::MultiVector< Scalar, LocalOrdinal, GlobalOrdinal, Node > > getTpetraMultiVector(const RCP< MultiVectorBase< Scalar > > &mv)
Get a non-const Tpetra::MultiVector from a non-const Thyra::MultiVectorBase object.
RCP< VectorBase< Scalar > > createVector(const RCP< Tpetra::Vector< Scalar, LocalOrdinal, GlobalOrdinal, Node > > &tpetraVector, const RCP< const VectorSpaceBase< Scalar > > space=Teuchos::null)
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)
static RCP< Tpetra::Vector< Scalar, LocalOrdinal, GlobalOrdinal, Node > > getTpetraVector(const RCP< VectorBase< Scalar > > &v)
Get a non-const Tpetra::Vector from a non-const Thyra::VectorBase object.
static RCP< const Tpetra::MultiVector< Scalar, LocalOrdinal, GlobalOrdinal, Node > > getConstTpetraMultiVector(const RCP< const MultiVectorBase< Scalar > > &mv)
Get a const Tpetra::MultiVector from a const Thyra::MultiVectorBase object.
static RCP< const Tpetra::Operator< Scalar, LocalOrdinal, GlobalOrdinal, Node > > getConstTpetraOperator(const RCP< const LinearOpBase< Scalar > > &op)
Get a const Tpetra::Operator from a const Thyra::LinearOpBase object.
static RCP< Tpetra::Operator< Scalar, LocalOrdinal, GlobalOrdinal, Node > > getTpetraOperator(const RCP< LinearOpBase< Scalar > > &op)
Get a non-const Tpetra::Operator from a non-const Thyra::LinearOpBase object.
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&lt;int&gt; object, return an equivalent Teuchos::Comm&lt;Ordinal&gt; object...
RCP< const Teuchos::Comm< int > > convertThyraToTpetraComm(const RCP< const Teuchos::Comm< Ordinal > > &thyraComm)
Given an Tpetra Teuchos::Comm&lt;Ordinal&gt; object, return an equivalent Teuchos::Comm&lt;int&gt; object...