Teko  Version of the Day
 All Classes Files Functions Variables Pages
Teko_TpetraThyraConverter.hpp
1 // @HEADER
2 // *****************************************************************************
3 // Teko: A package for block and physics based preconditioning
4 //
5 // Copyright 2010 NTESS and the Teko contributors.
6 // SPDX-License-Identifier: BSD-3-Clause
7 // *****************************************************************************
8 // @HEADER
9 
10 #ifndef __Teko_TpetraThyraConverter_hpp__
11 #define __Teko_TpetraThyraConverter_hpp__
12 
13 // Teuchos includes
14 #include "Teuchos_RCP.hpp"
15 
16 // Tpetra includes
17 #include "Tpetra_MultiVector.hpp"
18 #include "Tpetra_Map.hpp"
19 
20 // Thyra includes
21 #include "Thyra_VectorSpaceBase.hpp"
22 #include "Thyra_TpetraThyraWrappers_decl.hpp"
23 
24 #include "Teko_ConfigDefs.hpp"
25 
26 namespace Teko {
27 namespace TpetraHelpers {
28 
74 void blockTpetraToThyra(const Tpetra::MultiVector<ST, LO, GO, NT>& tpetraX,
75  const Teuchos::Ptr<Thyra::MultiVectorBase<ST> >& thyraX);
76 
122 void blockThyraToTpetra(const Teuchos::RCP<const Thyra::MultiVectorBase<ST> >& thyraX,
123  Tpetra::MultiVector<ST, LO, GO, NT>& tpetraX);
124 
153 const Teuchos::RCP<Tpetra::Map<LO, GO, NT> > thyraVSToTpetraMap(
154  const Thyra::VectorSpaceBase<ST>& vs,
155  const Teuchos::RCP<const Teuchos::Comm<Thyra::Ordinal> >& comm);
156 
157 } // namespace TpetraHelpers
158 } // end namespace Teko
159 
160 #endif