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"
51using namespace Galeri;
91int 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();
115 ParameterList GaleriList;
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);
189 Teuchos::ParameterList List;
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);
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: A pure virtual class for direct solution of real-valued double-precision operators...
virtual int Solve()=0
Solves A X = B (or AT x = B)
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.
Amesos_BaseSolver * Create(const char *ClassType, const Epetra_LinearProblem &LinearProblem)
Amesos Create method.
int main(int argc, char *argv[])