5 #include "Epetra_MpiComm.h" 7 #include "Epetra_SerialComm.h" 9 #include "Epetra_Map.h" 10 #include "Epetra_Vector.h" 11 #include "Epetra_Util.h" 14 #include "Teuchos_ParameterList.hpp" 15 #include "Galeri_Maps.h" 16 #include "Galeri_CrsMatrices.h" 17 #include "Galeri_Utils.h" 19 #include "Teuchos_ParameterList.hpp" 30 Teuchos::RCP<Epetra_Map>
buildMap(Epetra_Comm & Comm)
32 std::vector<int> vec(4);
33 int data[] = {0, 1 , 3 , 4};
36 vec[i] = 6*Comm.MyPID()+data[i];
38 return Teuchos::rcp(
new Epetra_Map(-1,4,&vec[0],0,Comm));
43 Teuchos::RCP<Epetra_CrsMatrix> A = Teuchos::rcp(
new Epetra_CrsMatrix(Copy,map,3));
46 double values[] = {-1,2,-1};
52 for(
int i=0;i<4;i++) {
54 ind[0] = map.GID(i-1);
56 ind[2] = map.GID(i+1);
69 A->InsertGlobalValues(gid,entries,valuesPtr,indPtr);
76 int main(
int argc,
char *argv[])
79 MPI_Init(&argc, &argv);
80 Epetra_MpiComm Comm(MPI_COMM_WORLD);
82 Epetra_SerialComm Comm;
85 Teuchos::ParameterList GaleriList;
87 Teuchos::RCP<Epetra_Map> Map =
buildMap(Comm);
88 Teuchos::RCP<Epetra_CrsMatrix> Matrix =
buildMatrix(*Map);
91 Epetra_MultiVector x(*Map,NumVectors);
92 Epetra_MultiVector x_exact(*Map,NumVectors);
93 Epetra_MultiVector b(*Map,NumVectors);
95 Matrix->Apply(x_exact,b);
101 Epetra_LinearProblem Problem(&*Matrix, &x, &b);
104 Teuchos::ParameterList List;
105 List.set(
"Reindex",
true);
112 double norm = ComputeNorm(&*Matrix, &x_exact, &b);
113 if (Comm.MyPID() == 0)
114 std::cout <<
"norm = " << norm << std::endl;
123 return(EXIT_SUCCESS);
Amesos_Klu: A serial, unblocked code ideal for getting started and for very sparse matrices...
int Solve()
Solves A X = B (or AT x = B)
Teuchos::RCP< Epetra_Map > buildMap(Epetra_Comm &Comm)
#define AMESOS_CHK_ERR(a)
int main(int argc, char *argv[])
Teuchos::RCP< Epetra_CrsMatrix > buildMatrix(Epetra_Map &map)
int SetParameters(Teuchos::ParameterList &ParameterList)
Updates internal variables.