44 #include <Teuchos_ConfigDefs.hpp> 45 #include <Teuchos_UnitTestHarness.hpp> 46 #include <Teuchos_TimeMonitor.hpp> 47 #include <Teuchos_RCP.hpp> 60 #include "EpetraExt_MultiMpiComm.h" 64 #include "EpetraExt_MultiSerialComm.h" 68 #include "EpetraExt_RowMatrixOut.h" 73 Teuchos::RCP<Epetra_CrsGraph> graph
80 int colOffset[] = {-1, 0, 1};
81 for(
int myRow=0;myRow<numUnks;myRow++) {
82 int row = map.
GID(myRow);
84 colIndices[i] = colOffset[i]+row;
90 colPtr = colIndices+1;
95 TEUCHOS_ASSERT(graph->InsertGlobalIndices(row,colCnt,colPtr)==0);
98 graph->FillComplete();
107 Teuchos::RCP<const Epetra_Comm> comm = Teuchos::rcp(
new Epetra_MpiComm(MPI_COMM_WORLD));
112 int numProc = comm->NumProc();
113 int rank = comm->MyPID();
115 out <<
"NumProc = " << numProc <<
", Rank = " << rank << std::endl;
120 Teuchos::RCP<const Stokhos::CompletePolynomialBasis<int,double> > basis =
buildBasis(num_KL,porder);
123 std::vector<int> order(3);
124 order[0] = 2; order[1] = 3; order[2] = 1;
125 std::vector<Teuchos::RCP<const Stokhos::ProductBasis<int,double> > > sa_BasisPerDRow(3);
128 sa_BasisPerDRow[2] =
buildBasis(num_KL,order);
130 std::vector<Teuchos::RCP<const Stokhos::ProductBasis<int,double> > > sa_BasisPerDCol;
134 { TEST_EQUALITY(sa_BasisPerDCol.size(),4); }
136 { TEST_EQUALITY(sa_BasisPerDCol.size(),3); }
138 for(std::size_t c=0;c<sa_BasisPerDCol.size();c++) {
139 int gid = determGraph->ColMap().GID(c);
140 Teuchos::RCP<const Stokhos::ProductBasis<int,double> > cBasis =
143 Teuchos::Array<Teuchos::RCP<const Stokhos::OneDOrthogPolyBasis<int,double> > > cBases
146 for(
int i=0;i<cBases.size();i++) {
147 int bOrder = cBases[i]->order();
150 { TEST_EQUALITY(bOrder,order[i]); }
152 { TEST_EQUALITY(bOrder,order[i]); }
154 { TEST_EQUALITY(bOrder,1); }
void buildColBasisFunctions(const Epetra_CrsGraph &determGraph, const Teuchos::RCP< const Stokhos::ProductBasis< int, double > > &masterBasis, const std::vector< Teuchos::RCP< const Stokhos::ProductBasis< int, double > > > &per_dof_row_basis, std::vector< Teuchos::RCP< const Stokhos::ProductBasis< int, double > > > &per_dof_col_basis)
TEUCHOS_UNIT_TEST(tBuildColBasis, test_adapted)
Abstract base class for multivariate orthogonal polynomials generated from tensor products of univari...
Teuchos::RCP< Epetra_CrsGraph > buildTridiagonalGraph(int numUnks, const Epetra_Comm &Comm)
virtual Teuchos::Array< Teuchos::RCP< const OneDOrthogPolyBasis< ordinal_type, value_type > > > getCoordinateBases() const =0
Return array of coordinate bases.
Teuchos::RCP< const Stokhos::CompletePolynomialBasis< int, double > > buildBasis(int num_KL, int porder)
int NumGlobalElements() const