44 #include "AbstractLinAlgPack_MultiVectorMutableThyra.hpp"
45 #include "AbstractLinAlgPack_VectorMutableThyra.hpp"
46 #include "Teuchos_Assert.hpp"
47 #include "Teuchos_dyn_cast.hpp"
49 namespace AbstractLinAlgPack {
67 namespace mmp = MemMngPack;
70 ,
"MultiVectorMutableThyra::initialize(thyra_multi_vec): Error!"
79 tmp_thyra_multi_vec = cast_thyra_multi_vec();
81 return tmp_thyra_multi_vec;
96 namespace mmp = MemMngPack;
106 MatrixOp::mat_mut_ptr_t
119 ,
const Vector& v_rhs2, value_type beta
144 EApplyBy apply_by,
const RTOpPack::RTOp& primary_op
145 ,
const size_t num_multi_vecs,
const MultiVector* multi_vecs[]
148 ,
const index_type primary_first_ele,
const index_type primary_sub_dim,
const index_type primary_global_offset
149 ,
const index_type secondary_first_ele,
const index_type secondary_sub_dim
153 apply_by,primary_op,num_multi_vecs,multi_vecs,num_targ_multi_vecs,targ_multi_vecs
155 ,primary_first_ele,primary_sub_dim,primary_global_offset
156 ,secondary_first_ele,secondary_sub_dim
161 EApplyBy apply_by,
const RTOpPack::RTOp& primary_op,
const RTOpPack::RTOp& secondary_op
162 ,
const size_t num_multi_vecs,
const MultiVector* multi_vecs[]
165 ,
const index_type primary_first_ele,
const index_type primary_sub_dim,
const index_type primary_global_offset
166 ,
const index_type secondary_first_ele,
const index_type secondary_sub_dim
170 apply_by,primary_op,secondary_op,num_multi_vecs,multi_vecs,num_targ_multi_vecs,targ_multi_vecs
172 ,primary_first_ele,primary_sub_dim,primary_global_offset
173 ,secondary_first_ele,secondary_sub_dim
188 return Teuchos::null;
194 return Teuchos::null;
200 const index_type this_rows = this->
rows();
201 const Range1D row_rng = RangePack::full_range(row_rng_in,1,this->
rows());
203 !(row_rng.
lbound()==1 && row_rng.
ubound()==this_rows), std::invalid_argument
204 ,
"MultiVectorMutableThyra::mv_sub_view(thyra_multi_vec): Error, can not handle subviews of the"
205 " elements in a row yet!"
213 MultiVectorMutableThyra::cast_thyra_multi_vec()
215 namespace mmp = MemMngPack;
vec_mut_ptr_t diag(int k)
return.get()==NULL
MatrixOp & operator=(const MatrixOp &mwo_rhs)
vec_mut_ptr_t row(index_type i)
return.get()==NULL
mat_mut_ptr_t clone()
Overridden to call MatrixOpThyra::clone()
access_by_t access_by() const
Returns COL_ACCESS
#define TEUCHOS_TEST_FOR_EXCEPTION(throw_exception_test, Exception, msg)
void Vp_StMtV(VectorMutable *v_lhs, value_type alpha, BLAS_Cpp::Transp trans_rhs1, const Vector &v_rhs2, value_type beta) const
multi_vec_mut_ptr_t mv_sub_view(const Range1D &row_rng, const Range1D &col_rng)
virtual void initialize(const Teuchos::RCP< const Thyra::LinearOpBase< value_type > > &thyra_linear_op, BLAS_Cpp::Transp thyra_linear_op_trans=BLAS_Cpp::no_trans)
Initalize given a smart pointer to a Thyra::LinearOpBase object.
MultiVectorMutableThyra()
Construct to uninitialized.
MatrixOp & operator=(const MatrixOp &mwo_rhs)
Overridden to call MultiVectorMutable::operator=()
TEUCHOS_DEPRECATED RCP< T > rcp(T *p, Dealloc_T dealloc, bool owns_mem)
bool Mp_StMtM(MatrixOp *mwo_lhs, value_type alpha, BLAS_Cpp::Transp trans_rhs1, const MatrixOp &mwo_rhs2, BLAS_Cpp::Transp trans_rhs2, value_type beta) const
Works for MultiVectorMutableThyra arguments.
void Vp_StMtV(VectorMutable *v_lhs, value_type alpha, BLAS_Cpp::Transp trans_rhs1, const Vector &v_rhs2, value_type beta) const
Overridden to call MatrixOpThyra::Vp_StMtV()
void initialize(const Teuchos::RCP< Thyra::MultiVectorBase< value_type > > &thyra_multi_vec)
Initalize given a smart pointer to a Thyra::MultiVectorBase object.
VectorMutable adapter subclass for Thyra::VectorBase.
vec_mut_ptr_t col(index_type j)
Teuchos::RCP< const Thyra::LinearOpBase< value_type > > set_uninitialized()
Set to uninitialized and return smart pointer to the internal Thyra::VectorBase object.
void apply_op(EApplyBy apply_by, const RTOpPack::RTOp &primary_op, const size_t num_multi_vecs, const MultiVector *multi_vecs[], const size_t num_targ_multi_vecs, MultiVectorMutable *targ_multi_vecs[], RTOpPack::ReductTarget *reduct_objs[], const index_type primary_first_ele, const index_type primary_sub_dim, const index_type primary_global_offset, const index_type secondary_first_ele, const index_type secondary_sub_dim) const
bool Mp_StMtM(MatrixOp *mwo_lhs, value_type alpha, BLAS_Cpp::Transp trans_rhs1, const MatrixOp &mwo_rhs2, BLAS_Cpp::Transp trans_rhs2, value_type beta) const
Overridden to call MatrixOpThyra::Mp_StMtM()
friend friend void apply_op(EApplyBy apply_by, const RTOpPack::RTOp &primary_op, const size_t num_multi_vecs, const MultiVector *multi_vecs[], const size_t num_targ_multi_vecs, MultiVectorMutable *targ_multi_vecs[], RTOpPack::ReductTarget *reduct_objs[], const index_type primary_first_ele, const index_type primary_sub_dim, const index_type primary_global_offset, const index_type secondary_first_ele, const index_type secondary_sub_dim)
Teuchos::RCP< Thyra::MultiVectorBase< value_type > > set_uninitialized()
Set to uninitialized and return smart pointer to the internal Thyra::LinearOpBase object...
virtual size_type rows() const
const Teuchos::RCP< const Thyra::LinearOpBase< value_type > > & thyra_linear_op() const
Return a (converted) smart pointer to the internal smart pointer to the Thyra::VectorBase object...
Teuchos::RCP< const Thyra::MultiVectorBase< value_type > > thyra_multi_vec() const
Return a smart pointer to the internal Thyra::LinearOpBase object.