57 #include "Epetra_MpiComm.h" 59 #include "Epetra_SerialComm.h" 61 #include "Epetra_CrsGraph.h" 62 #include "Epetra_Map.h" 63 #include "EpetraExt_BlockUtility.h" 64 #include "EpetraExt_RowMatrixOut.h" 75 int numProc = comm->NumProc();
79 bool full_expansion =
false;
87 Cijk = basis->computeTripleProductTensor();
89 Cijk = basis->computeLinearTripleProductTensor();
92 parallelParams.
set(
"Number of Spatial Processors", numProc);
104 for(
int row=0;row<determRowMap->NumMyElements();row++) {
105 int gid = determRowMap->GID(row);
106 determGraph->InsertGlobalIndices(gid,1,&gid);
108 for(
int row=1;row<determRowMap->NumMyElements()-1;row++) {
109 int gid = determRowMap->GID(row);
110 int indices[2] = {gid-1,gid+1};
111 determGraph->InsertGlobalIndices(gid,2,indices);
113 determGraph->FillComplete();
116 params->
set(
"Scale Operator by Inverse Basis Norms",
false);
117 params->
set(
"Include Mean",
true);
118 params->
set(
"Only Use Linear Terms",
false);
124 for(
int i=0; i<W_sg_blocks->
size(); i++) {
126 crsMat->PutScalar(1.0 + i);
141 op.setupOperator(W_sg_blocks);
144 full_op.PutScalar(0.0);
150 for(
int i=0;i<100;i++) {
158 x_vec_blocked->Random();
159 f_vec_blocked->PutScalar(0.0);
166 f_vec_inter->PutScalar(0.0);
168 full_op.
Apply(*x_vec_blocked,*f_vec_blocked);
169 op.Apply(*x_vec_inter,*f_vec_inter);
176 double true_norm = 0.0;
177 f_vec_blk_inter->NormInf(&true_norm);
178 f_vec_blk_inter->Update(-1.0,*f_vec_inter,1.0);
179 f_vec_blk_inter->NormInf(&
error);
181 out <<
"rel error = " <<
error/true_norm <<
" ( " << true_norm <<
" ), ";
182 result &= (
error/true_norm < 1e-14);
ordinal_type size() const
Return size.
void setCoeffPtr(ordinal_type i, const Teuchos::RCP< coeff_type > &c)
Set coefficient i to c.
A container class storing an orthogonal polynomial whose coefficients are vectors, operators, or in general any type that would have an expensive copy constructor.
virtual void setupOperator(const Teuchos::RCP< Stokhos::EpetraOperatorOrthogPoly > &poly)
Setup operator.
TEUCHOS_UNIT_TEST(interlaced_op, test)
ParameterList & set(std::string const &name, T const &value, std::string const &docString="", RCP< const ParameterEntryValidator > const &validator=null)
Teuchos::RCP< EpetraExt::BlockVector > getBlockVector()
Get block vector.
virtual int Apply(const Epetra_MultiVector &Input, Epetra_MultiVector &Result) const
Wrap Apply() to add a timer.
TEUCHOS_DEPRECATED RCP< T > rcp(T *p, Dealloc_T dealloc, bool owns_mem)
Teuchos::RCP< const EpetraExt::MultiComm > getMultiComm() const
Get global comm.
A container class storing an orthogonal polynomial whose coefficients are vectors, operators, or in general any type that would have an expensive copy constructor.
An Epetra operator representing the block stochastic Galerkin operator generated by fully assembling ...
Teuchos::RCP< const Stokhos::CompletePolynomialBasis< int, double > > buildBasis(int num_KL, int porder)
TEST_ASSERT(castedDep1->getValuesAndValidators().size()==2)
Teuchos::RCP< const Epetra_BlockMap > getStochasticRowMap() const
Get stochastic row map.
Teuchos::RCP< const EpetraExt::MultiComm > getMultiComm() const
Get global comm.
An Epetra operator representing the block stochastic Galerkin operator generated by fully assembling ...
static void copyToInterlacedVector(const Stokhos::EpetraVectorOrthogPoly &x_sg, Epetra_Vector &x)