66 Teuchos::RCP<const Epetra_Comm> comm = Teuchos::rcp(
new Epetra_MpiComm(MPI_COMM_WORLD));
71 int numProc = comm->NumProc();
76 Teuchos::RCP<const Stokhos::CompletePolynomialBasis<int,double> > basis =
buildBasis(num_KL,porder);
77 Teuchos::RCP<Stokhos::Sparse3Tensor<int,double> > Cijk = basis->computeTripleProductTensor();
78 Teuchos::RCP<Stokhos::ParallelData> sg_parallel_data;
81 Teuchos::ParameterList parallelParams;
82 parallelParams.set(
"Number of Spatial Processors", numProc);
86 Teuchos::RCP<const EpetraExt::MultiComm> sg_comm = sg_parallel_data->getMultiComm();
87 Teuchos::RCP<Stokhos::EpetraSparse3Tensor> epetraCijk =
93 out <<
"Size = " << big.rowCount() <<
" x " << big.colCount() << std::endl;
95 for(std::size_t i=0;i<big.rowCount();i++) {
96 for(std::size_t
j=0;
j<big.colCount();
j++)
97 out <<
" " << (big(i,
j) ?
"*" :
" " ) <<
" ";
103 Teuchos::RCP<const Epetra_CrsGraph> graph = epetraCijk->getStochasticGraph();
104 TEST_EQUALITY(graph->NumMyRows(),graph->NumGlobalRows());
105 TEST_EQUALITY(
int(big.rowCount()),graph->NumMyRows());
106 TEST_EQUALITY(
int(big.colCount()),graph->NumMyCols());
108 for(
int i=0;i<graph->NumGlobalRows();i++) {
109 bool rowPassed =
true;
111 std::vector<bool> row(graph->NumGlobalRows(),
false);
112 std::vector<int> activeRow(graph->NumGlobalRows());
113 graph->ExtractGlobalRowCopy(i,graph->NumGlobalRows(),count,&activeRow[0]);
116 for(
int j=0;
j<count;
j++)
117 row[activeRow[
j]] =
true;
120 for(std::size_t
j=0;
j<row.size();
j++)
121 rowPassed = rowPassed && (row[
j]==big(i,
j));
123 TEST_ASSERT(rowPassed);
130 Teuchos::RCP<const Epetra_Comm> comm = Teuchos::rcp(
new Epetra_MpiComm(MPI_COMM_WORLD));
138 Teuchos::RCP<const Stokhos::ProductBasis<int,double> > masterBasis =
buildBasis(num_KL,porder);
139 Teuchos::RCP<const Stokhos::ProductBasis<int,double> > rowBasis =
buildBasis(num_KL,2);
140 Teuchos::RCP<const Stokhos::ProductBasis<int,double> > colBasis =
buildBasis(num_KL,3);
142 out <<
"Master Array Basis = \n";
143 for(
int i=0;i<masterBasis->size();i++) {
145 for(
int i=0;i<num_KL;i++) {
146 out << masterArray[i] <<
" ";
151 out <<
"Row Array Basis = \n";
152 for(
int i=0;i<rowBasis->size();i++) {
154 for(
int i=0;i<num_KL;i++) {
155 out << rowArray[i] <<
" ";
163 out <<
"rowBasis.size = " << rowBasis->size() << std::endl;
164 out <<
"colBasis.size = " << colBasis->size() << std::endl;
167 out <<
"Size = " << rectBig.rowCount() <<
" x " << rectBig.colCount() << std::endl;
168 for(std::size_t i=0;i<rectBig.rowCount();i++) {
169 for(std::size_t
j=0;
j<rectBig.colCount();
j++)
170 out <<
" " << (rectBig(i,
j) ?
"*" :
" " ) <<
" ";
175 out <<
"Size = " << masterBig.rowCount() <<
" x " << masterBig.colCount() << std::endl;
176 for(std::size_t i=0;i<masterBig.rowCount();i++) {
177 for(std::size_t
j=0;
j<masterBig.colCount();
j++)
178 out <<
" " << (masterBig(i,
j) ?
"*" :
" " ) <<
" ";
184 bool graphs_match =
true;
185 for(std::size_t i=0;i<rectBig.rowCount();i++) {
186 std::size_t masterI = masterBasis->index(rowBasis->term(i));
187 for(std::size_t
j=0;
j<rectBig.colCount();
j++) {
188 std::size_t masterJ = masterBasis->index(colBasis->term(
j));
189 graphs_match &= (rectBig(i,
j)==masterBig(masterI,masterJ));
193 TEST_ASSERT(graphs_match);