55 const Teuchos::RCP<const Epetra_BlockMap>& block_map) :
65 const Teuchos::RCP<const Epetra_BlockMap>& block_map,
66 const Teuchos::RCP<const Epetra_BlockMap>& coeff_map,
67 const Teuchos::RCP<const EpetraExt::MultiComm>& product_comm) :
77 const Teuchos::RCP<const Epetra_BlockMap>& block_map,
78 const Teuchos::RCP<const Epetra_BlockMap>& coeff_map,
79 const Teuchos::RCP<const Epetra_BlockMap>& product_map,
80 const Teuchos::RCP<const EpetraExt::MultiComm>& product_comm) :
90 const Teuchos::RCP<const Epetra_BlockMap>& block_map,
91 const Teuchos::RCP<const Epetra_BlockMap>& coeff_map,
92 const Teuchos::RCP<const Epetra_BlockMap>& product_map,
93 const Teuchos::RCP<const EpetraExt::MultiComm>& product_comm,
126 const Teuchos::RCP<const Epetra_BlockMap>& block_map,
127 const Teuchos::RCP<const Epetra_BlockMap>& coeff_map,
128 const Teuchos::RCP<const EpetraExt::MultiComm>& product_comm)
131 this->basis_ = new_basis;
138 const Teuchos::RCP<const Epetra_BlockMap>& block_map,
139 const Teuchos::RCP<const Epetra_BlockMap>& coeff_map,
140 const Teuchos::RCP<const Epetra_BlockMap>& product_map,
141 const Teuchos::RCP<const EpetraExt::MultiComm>& product_comm)
144 this->basis_ = new_basis;
151 if (this->map_->Comm().NumProc() == 1 || !this->map_->DistributedGlobal()) {
152 v.
Scale(1.0, *(this->coeff_[0]));
159 this->map_->RemoteIDList(1, &gid, &root, &lid);
160 if (this->map_->Comm().MyPID() == root) {
161 v.
Scale(1.0, *(this->coeff_[lid]));
171 bool is_parallel = (this->map_->Comm().NumProc() > 1) &&
179 const Teuchos::Array<double>& nrm2 = this->basis_->norm_squared();
182 for (
int i=0; i<this->size(); i++) {
183 i_gid = this->map_->GID(i);
185 v_local->
Multiply(nrm2[i_gid], *(this->coeff_[i]), *(this->coeff_[i]),
KOKKOS_INLINE_FUNCTION PCE< Storage > sqrt(const PCE< Storage > &a)
const Epetra_BlockMap & Map() const
int PutScalar(double ScalarConstant)
void reset(const Teuchos::RCP< const Epetra_BlockMap > &block_map, const Teuchos::RCP< const Epetra_BlockMap > &coeff_map, const Teuchos::RCP< const EpetraExt::MultiComm > &product_comm)
Reset to a new size.
EpetraVectorOrthogPoly()
Constructor with no basis.
void computeMean(Epetra_Vector &v) const
Compute mean.
int Scale(double ScalarValue)
ProductEpetraVector & operator=(const ProductEpetraVector &v)
Assignment.
A container class storing an orthogonal polynomial whose coefficients are vectors, operators, or in general any type that would have an expensive copy constructor.
A container class for products of Epetra_Vector's.
EpetraVectorOrthogPoly & operator=(const EpetraVectorOrthogPoly &v)
Assignment.
void computeStandardDeviation(Epetra_Vector &v) const
Compute standard deviation.
Teuchos::RCP< const Stokhos::OrthogPolyBasis< ordinal_type, value_type > > basis_
Basis.
virtual ~EpetraVectorOrthogPoly()
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.
A container class storing an orthogonal polynomial whose coefficients are vectors, operators, or in general any type that would have an expensive copy constructor.
int Multiply(char TransA, char TransB, double ScalarAB, const Epetra_MultiVector &A, const Epetra_MultiVector &B, double ScalarThis)
void computeVariance(Epetra_Vector &v) const
Compute variance.
bool DistributedGlobal() const
void reset(const Teuchos::RCP< const Stokhos::OrthogPolyBasis< int, double > > &basis, const Teuchos::RCP< const Epetra_BlockMap > &block_map, const Teuchos::RCP< const Epetra_BlockMap > &coeff_map, const Teuchos::RCP< const EpetraExt::MultiComm > &product_comm)
Reset to a new basis.