45 #include "Epetra_MpiComm.h" 47 #include "Epetra_SerialComm.h" 49 #include "Epetra_CrsMatrix.h" 50 #include "Epetra_MultiVector.h" 51 #include "Epetra_LinearProblem.h" 52 #include "Epetra_Time.h" 53 #include "Galeri_Maps.h" 54 #include "Galeri_CrsMatrices.h" 55 #include "Teuchos_ParameterList.hpp" 56 #include "Teuchos_RefCountPtr.hpp" 61 int main(
int argc,
char *argv[])
66 MPI_Init(&argc,&argv);
67 Epetra_MpiComm Comm( MPI_COMM_WORLD );
69 Epetra_SerialComm Comm;
72 Teuchos::ParameterList GaleriList;
76 GaleriList.set(
"nx", nx);
77 GaleriList.set(
"ny", nx * Comm.NumProc());
78 GaleriList.set(
"mx", 1);
79 GaleriList.set(
"my", Comm.NumProc());
80 Teuchos::RefCountPtr<Epetra_Map> Map = Teuchos::rcp( Galeri::CreateMap(
"Cartesian2D", Comm, GaleriList) );
81 Teuchos::RefCountPtr<Epetra_RowMatrix> A = Teuchos::rcp( Galeri::CreateCrsMatrix(
"Laplace2D", &*Map, GaleriList) );
87 Teuchos::ParameterList List;
100 List.set(
"fact: ict level-of-fill", 1.0);
102 List.set(
"fact: absolute threshold", 0.0);
103 List.set(
"fact: relative threshold", 1.0);
104 List.set(
"fact: relaxation value", 0.0);
109 List.set(
"schwarz: filter singletons",
true);
130 Epetra_Vector LHS(A->OperatorDomainMap());
131 Epetra_Vector
RHS(A->OperatorDomainMap());
137 Epetra_LinearProblem Problem(&*A,&LHS,&
RHS);
143 Solver.SetAztecOption(AZ_solver,AZ_cg_condnum);
144 Solver.SetAztecOption(AZ_output,32);
147 Solver.SetPrecOperator(&Prec);
152 Solver.Iterate(1550,1e-5);
161 return (EXIT_SUCCESS);
virtual int Initialize()
Initialized the preconditioner.
Ifpack_AdditiveSchwarz: a class to define Additive Schwarz preconditioners of Epetra_RowMatrix's.
virtual int SetParameters(Teuchos::ParameterList &List)
Sets the parameters.
virtual int Compute()
Computes the preconditioner.
#define IFPACK_CHK_ERR(ifpack_err)
int main(int argc, char *argv[])