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());
74 for (
int i=0; i<this->
size(); i++) {
75 Teuchos::RCP<Stokhos::EpetraMultiVectorOperator> op =
77 product_mv->getCoeffPtr(i), is_multi_vec_transposed));
87 product_mv(v.product_mv)
102 Teuchos::RCP<Stokhos::ProductEpetraMultiVector>
ordinal_type size() const
Return size.
void setCoeffPtr(ordinal_type i, const Teuchos::RCP< Epetra_MultiVector > &c)
Set coefficient i to c.
ProductEpetraMultiVectorOperator(const Teuchos::RCP< ProductEpetraMultiVector > &product_mv, bool is_multi_vec_transposed)
Create ProductEpetraOperator out of ProductEpetraMultiVector.
A container class for products of Epetra_Vector's.
An adaptor that supplies the operator interface to a multi-vector.
A container class for products of Epetra_Vector's.
virtual ~ProductEpetraMultiVectorOperator()
Destructor.
A product (in the mathematical sense) container class whose coefficients are vectors, operators, or in general any type that would have an expensive copy constructor.
Teuchos::RCP< ProductEpetraMultiVector > productMultiVector() const
Get product multi vector.
void setup(const Teuchos::RCP< const Epetra_Map > &domain_base_map, const Teuchos::RCP< const Epetra_Map > &range_base_map)
Second stage of setup.
Teuchos::RCP< ProductEpetraMultiVector > product_mv
The product multi-vector.
ProductEpetraOperator & operator=(const ProductEpetraOperator &v)
Assignment.
ProductEpetraMultiVectorOperator & operator=(const ProductEpetraMultiVectorOperator &v)
Assignment.