49 namespace AbstractLinAlgPack {
57 const Teuchos::RCP<Thyra::MultiVectorBase<value_type> >& thyra_multi_vec
64 const Teuchos::RCP<Thyra::MultiVectorBase<value_type> >& thyra_multi_vec
67 namespace mmp = MemMngPack;
70 ,
"MultiVectorMutableThyra::initialize(thyra_multi_vec): Error!"
81 return tmp_thyra_multi_vec;
87 return Teuchos::rcp_dynamic_cast<
const Thyra::MultiVectorBase<value_type> >(this->
thyra_linear_op());
93 const Teuchos::RCP<
const Thyra::LinearOpBase<value_type> >& thyra_linear_op
96 namespace mmp = MemMngPack;
98 Teuchos::rcp_dynamic_cast<Thyra::MultiVectorBase<value_type> >(
99 Teuchos::rcp_const_cast<Thyra::LinearOpBase<value_type> >(
thyra_linear_op)
106 MatrixOp::mat_mut_ptr_t
145 ,
const size_t num_multi_vecs,
const MultiVector* multi_vecs[]
147 ,RTOpPack::ReductTarget* reduct_objs[]
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
162 ,
const size_t num_multi_vecs,
const MultiVector* multi_vecs[]
164 ,RTOpPack::ReductTarget *reduct_obj
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
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!"
215 namespace mmp = MemMngPack;
216 return Teuchos::rcp_dynamic_cast<Thyra::MultiVectorBase<value_type> >(
217 Teuchos::rcp_const_cast<Thyra::LinearOpBase<value_type> >(this->
thyra_linear_op())
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
Abstract interface for immutable, finite dimensional, coordinate vectors {abstract}.
mat_mut_ptr_t clone()
Overridden to call MatrixOpThyra::clone()
RTOp_index_type index_type
access_by_t access_by() const
Returns COL_ACCESS
RTOp_value_type value_type
#define TEUCHOS_TEST_FOR_EXCEPTION(throw_exception_test, Exception, msg)
Index ubound() const
Return upper bound of the range.
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)
. One-based subregion index range class.
RTOpT< RTOp_value_type > RTOp
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.
Base class for all matrices that support basic matrix operations.
Interface for a collection of non-mutable vectors (multi-vector, matrix).
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
Index lbound() const
Return lower bound of the range.
Teuchos::RCP< Thyra::MultiVectorBase< value_type > > cast_thyra_multi_vec()
Interface for a collection of mutable vectors (multi-vector, matrix).
Abstract interface for mutable coordinate vectors {abstract}.
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 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
Return the number of rows in the matrix.
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.