10#ifndef XPETRA_THYRAUTILS_HPP
11#define XPETRA_THYRAUTILS_HPP
14#ifdef HAVE_XPETRA_THYRA
18#include "Tpetra_ConfigDefs.hpp"
20#include "Xpetra_Map.hpp"
21#include "Xpetra_BlockedMap.hpp"
22#include "Xpetra_BlockedMultiVector.hpp"
23#include "Xpetra_BlockedCrsMatrix.hpp"
25#include "Xpetra_StridedMap.hpp"
26#include "Xpetra_StridedMapFactory.hpp"
27#include "Xpetra_MapExtractor.hpp"
28#include "Xpetra_Matrix.hpp"
29#include "Xpetra_MatrixFactory.hpp"
30#include "Xpetra_CrsMatrixWrap.hpp"
31#include "Xpetra_MultiVectorFactory.hpp"
33#include <Thyra_VectorSpaceBase.hpp>
34#include <Thyra_SpmdVectorSpaceBase.hpp>
35#include <Thyra_ProductVectorSpaceBase.hpp>
36#include <Thyra_ProductMultiVectorBase.hpp>
37#include <Thyra_DefaultProductVectorSpace.hpp>
38#include <Thyra_DefaultBlockedLinearOp.hpp>
39#include <Thyra_LinearOpBase.hpp>
40#include "Thyra_DiagonalLinearOpBase.hpp"
41#include <Thyra_DetachedMultiVectorView.hpp>
42#include <Thyra_MultiVectorStdOps.hpp>
44#include <Thyra_TpetraThyraWrappers.hpp>
45#include <Thyra_TpetraVector.hpp>
46#include <Thyra_TpetraMultiVector.hpp>
47#include <Thyra_TpetraVectorSpace.hpp>
48#include <Tpetra_Map.hpp>
49#include <Tpetra_Vector.hpp>
50#include <Tpetra_CrsMatrix.hpp>
51#include <Xpetra_TpetraMap.hpp>
53#include <Xpetra_TpetraCrsMatrix.hpp>
57template <
class Scalar,
58 class LocalOrdinal = int,
59 class GlobalOrdinal = LocalOrdinal,
60 class Node = Tpetra::KokkosClassic::DefaultNode::DefaultNodeType>
63#undef XPETRA_THYRAUTILS_SHORT
81 static bool isTpetra(
const Teuchos::RCP<
const Thyra::LinearOpBase<Scalar>>& op);
83 static bool isBlockedOperator(
const Teuchos::RCP<
const Thyra::LinearOpBase<Scalar>>& op);
92 toXpetraOperator(
const Teuchos::RCP<
const Thyra::LinearOpBase<Scalar>>& op);
95 toXpetraOperator(
const Teuchos::RCP<Thyra::LinearOpBase<Scalar>>& op);
130#define XPETRA_THYRAUTILS_SHORT
RCP< const CrsGraph< LocalOrdinal, GlobalOrdinal, Node > > toXpetra(RCP< const Tpetra::CrsGraph< LocalOrdinal, GlobalOrdinal, Node > > graph)