10 #ifndef __Thyra_TsqrAdaptor_hpp
11 #define __Thyra_TsqrAdaptor_hpp
13 #include "BelosConfigDefs.hpp"
18 #include "Thyra_MultiVectorBase.hpp"
19 #include "Thyra_SpmdVectorSpaceBase.hpp"
53 template<
class Scalar>
56 typedef Thyra::MultiVectorBase<Scalar>
MV;
70 throw std::logic_error (
"Thyra adaptor for TSQR not implemented");
76 throw std::logic_error (
"Thyra adaptor for TSQR not implemented");
82 throw std::logic_error (
"Thyra adaptor for TSQR not implemented");
88 throw std::logic_error (
"Thyra adaptor for TSQR not implemented");
118 throw std::logic_error (
"Thyra adaptor for TSQR not implemented");
156 throw std::logic_error (
"Thyra adaptor for TSQR not implemented");
175 using Teuchos::rcp_dynamic_cast;
176 using Teuchos::rcp_implicit_cast;
177 typedef Thyra::VectorSpaceBase<Scalar> space_base_type;
178 typedef Thyra::SpmdVectorSpaceBase<Scalar> space_type;
199 rcp_dynamic_cast<
const Teuchos::MpiComm<Thyra::Ordinal> > (thyraComm);
204 thyraSerialComm.
is_null (), std::runtime_error,
205 "Thyra's communicator is neither an MpiComm nor a SerialComm. "
206 "Sorry, I have no idea what to do with it in that case.");
219 #else // NOT HAVE_MPI
224 thyraSerialComm.
is_null (), std::runtime_error,
225 "Thyra's communicator is not a SerialComm, and MPI is not enabled, so "
226 "it can't be an MpiComm either. That means it must be some other "
227 "subclass of Comm, about which I don't know. "
228 "Sorry, I have no idea what to do with it in that case.");
276 #endif // __Thyra_TsqrAdaptor_hpp
Teuchos::ScalarTraits< scalar_type >::magnitudeType magnitude_type
Thyra::MultiVectorBase< Scalar > MV
void prepareDistTsqr(const MV &)
Finish interprocess TSQR initialization.
void factorExplicit(MV &, MV &, dense_matrix_type &, const bool=false)
Compute QR factorization [Q,R] = qr(A,0).
Teuchos::SerialDenseMatrix< ordinal_type, scalar_type > dense_matrix_type
Stub adaptor from Thyra::MultiVectorBase to TSQR.
#define TEUCHOS_TEST_FOR_EXCEPTION(throw_exception_test, Exception, msg)
Teuchos::RCP< const Teuchos::ParameterList > getValidParameters() const
static Teuchos::RCP< const Teuchos::Comm< int > > getComm(const MV &X)
Attempt to get a communicator out of the given multivector.
TsqrAdaptor(const Teuchos::RCP< Teuchos::ParameterList > &)
Constructor (that accepts a parameter list).
TEUCHOS_DEPRECATED RCP< T > rcp(T *p, Dealloc_T dealloc, bool owns_mem)
bool is_null(const RCP< T > &p)
int revealRank(MV &, dense_matrix_type &, const magnitude_type &)
Rank-revealing decomposition.
TsqrAdaptor()
Constructor (that uses default parameters).
void setParameterList(const Teuchos::RCP< Teuchos::ParameterList > &)
void prepareTsqr(const MV &)
Finish TSQR initialization.