57 #ifndef EPETRA_TSQRMESSENGER_HPP
58 #define EPETRA_TSQRMESSENGER_HPP
60 #include <Tpetra_ConfigDefs.hpp>
62 #if defined(HAVE_TPETRA_EPETRA) && defined(HAVE_TPETRA_TSQR)
65 #include <Epetra_Comm.h>
68 #include <Teuchos_Comm.hpp>
70 #include <Teuchos_RCP.hpp>
71 #include <Tsqr_TeuchosMessenger.hpp>
85 Teuchos::RCP<const Teuchos::Comm<int> >
86 extractTeuchosComm (
const Teuchos::RCP<const Epetra_Comm>& epetraComm);
90 Teuchos::RCP<TSQR::MessengerBase<Datum> >
91 makeTsqrMessenger (
const Teuchos::RCP<const Epetra_Comm>& pComm)
93 typedef TSQR::MessengerBase<Datum> base_mess_type;
94 typedef TSQR::TeuchosMessenger<Datum> mess_type;
96 Teuchos::RCP<mess_type> pMess =
97 Teuchos::rcp (
new mess_type (extractTeuchosComm (pComm)));
98 return Teuchos::rcp_implicit_cast<base_mess_type> (pMess);
103 #endif // defined(HAVE_TPETRA_EPETRA) && defined(HAVE_TPETRA_TSQR)
105 #endif // EPETRA_TSQRMESSENGER_HPP