48 const Teuchos::RCP<Stokhos::ProductEpetraMultiVector>& product_mv_,
49 bool is_multi_vec_transposed) :
51 ProductEpetraOperator(product_mv_->map(),
52 product_mv_->productComm()),
53 product_mv(product_mv_)
56 Teuchos::RCP<const Epetra_Map> domain_map, range_map;
57 int nv = product_mv->numVectors();
58 const Epetra_Comm& coeff_comm = product_mv->productComm()->SubDomainComm();
59 Teuchos::RCP<Epetra_LocalMap> local_map =
61 if (is_multi_vec_transposed) {
63 Teuchos::rcp_dynamic_cast<const Epetra_Map>(product_mv->coefficientMap());
64 range_map = local_map;
67 domain_map = local_map;
69 Teuchos::rcp_dynamic_cast<const Epetra_Map>(product_mv->coefficientMap());
71 ProductEpetraOperator::setup(domain_map, range_map);
74 for (
int i=0; i<this->size(); i++) {
75 Teuchos::RCP<Stokhos::EpetraMultiVectorOperator> op =
77 product_mv->getCoeffPtr(i), is_multi_vec_transposed));
78 this->setCoeffPtr(i, op);
87 product_mv(v.product_mv)
102Teuchos::RCP<Stokhos::ProductEpetraMultiVector>
An adaptor that supplies the operator interface to a multi-vector.
A product (in the mathematical sense) container class whose coefficients are vectors,...
A container class for products of Epetra_Vector's.
virtual ~ProductEpetraMultiVectorOperator()
Destructor.
ProductEpetraMultiVectorOperator(const Teuchos::RCP< ProductEpetraMultiVector > &product_mv, bool is_multi_vec_transposed)
Create ProductEpetraOperator out of ProductEpetraMultiVector.
ProductEpetraMultiVectorOperator & operator=(const ProductEpetraMultiVectorOperator &v)
Assignment.
Teuchos::RCP< ProductEpetraMultiVector > productMultiVector() const
Get product multi vector.
Teuchos::RCP< ProductEpetraMultiVector > product_mv
The product multi-vector.
A container class for products of Epetra_Vector's.
ProductEpetraOperator & operator=(const ProductEpetraOperator &v)
Assignment.