50int main(
int argc,
char *argv[])
54 MPI_Init(&argc,&argv);
60 Teuchos::ParameterList GaleriList;
64 GaleriList.set(
"nx", nx);
65 GaleriList.set(
"ny", nx * Comm.
NumProc());
66 GaleriList.set(
"mx", 1);
67 GaleriList.set(
"my", Comm.
NumProc());
68 Teuchos::RefCountPtr<Epetra_Map> Map = Teuchos::rcp( Galeri::CreateMap64(
"Cartesian2D", Comm, GaleriList) );
69 Teuchos::RefCountPtr<Epetra_RowMatrix> A = Teuchos::rcp( Galeri::CreateCrsMatrix(
"Laplace2D", &*Map, GaleriList) );
75 Teuchos::ParameterList List;
96 int OverlapBlocks = 0;
100 Ifpack_AdditiveSchwarz<Ifpack_BlockRelaxation<Ifpack_DenseContainer> > Prec(A, OverlapProcs);
102 Ifpack_AdditiveSchwarz<Ifpack_BlockRelaxation<Ifpack_SparseContainer<Ifpack_Amesos> > > Prec(&*A, OverlapProcs);
105 List.set(
"relaxation: type",
"symmetric Gauss-Seidel");
106 List.set(
"partitioner: overlap", OverlapBlocks);
107#ifdef HAVE_IFPACK_METIS
110 List.set(
"partitioner: type",
"metis");
113 List.set(
"partitioner: type",
"greedy");
118 List.set(
"partitioner: local parts", 4);
150 Solver.SetAztecOption(AZ_solver,AZ_cg);
151 Solver.SetAztecOption(AZ_output,32);
154 Solver.SetPrecOperator(&Prec);
159 Solver.Iterate(1550,1e-5);
165 return(EXIT_SUCCESS);