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 
23 #include "Teko_ConfigDefs.hpp"
24 
25 namespace Teko {
26 namespace TpetraHelpers {
27 
73 void blockTpetraToThyra(const Tpetra::MultiVector<ST, LO, GO, NT>& tpetraX,
74  const Teuchos::Ptr<Thyra::MultiVectorBase<ST> >& thyraX);
75 
121 void blockThyraToTpetra(const Teuchos::RCP<const Thyra::MultiVectorBase<ST> >& thyraX,
122  Tpetra::MultiVector<ST, LO, GO, NT>& tpetraX);
123 
152 const Teuchos::RCP<Tpetra::Map<LO, GO, NT> > thyraVSToTpetraMap(
153  const Thyra::VectorSpaceBase<ST>& vs,
154  const Teuchos::RCP<const Teuchos::Comm<Thyra::Ordinal> >& comm);
155 
156 } // namespace TpetraHelpers
157 } // end namespace Teko
158 
159 #endif