37 #include "Epetra_MpiComm.h" 39 #include "Epetra_SerialComm.h" 42 #include "Epetra_RowMatrix.h" 43 #include "Epetra_MultiVector.h" 44 #include "Epetra_LinearProblem.h" 48 #include "Galeri_Maps.h" 49 #include "Galeri_CrsMatrices.h" 91 int main(
int argc,
char *argv[])
95 MPI_Init(&argc, &argv);
96 Epetra_MpiComm
Comm(MPI_COMM_WORLD);
98 Epetra_SerialComm
Comm;
102 int ny = 100 *
Comm.NumProc();
116 GaleriList.
set(
"nx", nx);
117 GaleriList.
set(
"ny", ny);
118 GaleriList.
set(
"mx", 1);
119 GaleriList.
set(
"my",
Comm.NumProc());
121 Epetra_Map* Map = CreateMap(
"Cartesian2D",
Comm, GaleriList);
122 Epetra_CrsMatrix* Matrix =
CreateCrsMatrix(
"Laplace2D", Map, GaleriList);
127 Epetra_MultiVector LHS(*Map, NumVectors); LHS.PutScalar(0.0);
128 Epetra_MultiVector RHS(*Map, NumVectors); RHS.Random();
129 Epetra_LinearProblem Problem(Matrix, &LHS, &RHS);
160 std::string SolverType =
"Klu";
161 Solver = Factory.
Create(SolverType, Problem);
167 std::cerr <<
"Specified solver is not available" << std::endl;
173 return(EXIT_SUCCESS);
190 List.
set(
"PrintTiming",
true);
191 List.
set(
"PrintStatus",
true);
202 if (
Comm.MyPID() == 0)
203 std::cout <<
"Starting symbolic factorization..." << std::endl;
207 if (
Comm.MyPID() == 0)
208 std::cout <<
"Starting numeric factorization..." << std::endl;
212 if (
Comm.MyPID() == 0)
213 std::cout <<
"Starting solution phase..." << std::endl;
264 return(EXIT_SUCCESS);
virtual int Solve()=0
Solves A X = B (or AT x = B)
ParameterList & set(std::string const &name, T const &value, std::string const &docString="", RCP< const ParameterEntryValidator > const &validator=null)
virtual int NumericFactorization()=0
Performs NumericFactorization on the matrix A.
virtual int SymbolicFactorization()=0
Performs SymbolicFactorization on the matrix A.
virtual int SetParameters(Teuchos::ParameterList &ParameterList)=0
Updates internal variables.
Factory for binding a third party direct solver to an Epetra_LinearProblem.
int CreateCrsMatrix(const char *in_filename, const Epetra_Comm &Comm, Epetra_Map *&readMap, const bool transpose, const bool distribute, bool &symmetric, Epetra_CrsMatrix *&Matrix)
Amesos_BaseSolver * Create(const char *ClassType, const Epetra_LinearProblem &LinearProblem)
Amesos Create method.
int main(int argc, char *argv[])
Amesos_BaseSolver: A pure virtual class for direct solution of real-valued double-precision operators...