45 #include "Epetra_SerialComm.h" 47 # include "Epetra_MpiComm.h" 49 #include "Epetra_Map.h" 50 #include "Epetra_CrsMatrix.h" 69 using Teuchos::outArg;
76 bool g_dumpAll =
false;
77 bool g_show_all_tests =
false;
83 "local-dim", &
g_localDim,
"Local dimension of each vector." );
85 "show-all-tests",
"no-show-all-tests", &g_show_all_tests,
86 "Set if all tests are shown or not." );
88 "dump-all",
"no-dump-all", &g_dumpAll,
89 "Dump lots of data" );
93 RCP<const Epetra_Comm> getEpetraComm()
96 return rcp(
new Epetra_MpiComm(MPI_COMM_WORLD));
98 return rcp(
new Epetra_SerialComm());
103 void createEpetraVsAndMap(
const Thyra::Ordinal localDim_in,
104 const Ptr<RCP<
const Thyra::VectorSpaceBase<double> > > &vs,
105 const Ptr<RCP<const Epetra_Map> > &epetra_map,
106 const int emptyProcRootRank = -1
109 const RCP<const Epetra_Comm> epetra_comm = getEpetraComm();
110 const int procRank = epetra_comm->MyPID();
111 const Thyra::Ordinal localDim = (procRank == emptyProcRootRank ? 0 : localDim_in);
112 *epetra_map =
rcp(
new Epetra_Map(-1, as<int>(localDim), 0, *epetra_comm));
117 RCP<Epetra_CrsMatrix> getEpetraMatrix(
int numRows,
int numCols,
double shift=0.0)
120 const RCP<const Epetra_Comm> comm = getEpetraComm();
122 const Epetra_Map rowMap(numRows, 0, *comm);
123 const Epetra_Map domainMap(numCols, numCols, 0, *comm);
125 const RCP<Epetra_CrsMatrix> epetraCrsM =
126 rcp(
new Epetra_CrsMatrix(Copy, rowMap, numCols));
128 Array<double> rowEntries(numCols);
130 for (
int j = 0; j < numCols; ++j) {
131 columnIndices[j] = j;
134 const int numLocalRows = rowMap.NumMyElements();
136 for (
int i = 0; i < numLocalRows; ++i) {
138 for (
int j = 0; j < numCols; ++j) {
139 rowEntries[j] = as<double>(i+1) + as<double>(j+1) / 10 + shift;
142 epetraCrsM->InsertMyValues( i, numCols, &rowEntries[0], &columnIndices[0] );
146 epetraCrsM->FillComplete(domainMap, rowMap);
static CommandLineProcessor & getCLP()
RCP< const VectorSpaceBase< double > > create_VectorSpace(const RCP< const Epetra_Map > &epetra_map)
Create an VectorSpaceBase object given an Epetra_Map object.
TEUCHOS_ORDINAL_TYPE Teuchos_Ordinal
TEUCHOS_DEPRECATED RCP< T > rcp(T *p, Dealloc_T dealloc, bool owns_mem)
void setOption(const char option_true[], const char option_false[], bool *option_val, const char documentation[]=NULL)
TypeTo as(const TypeFrom &t)