63 #define BLOCK_DIAGONAL_Si 68 #ifdef HAVE_SHYLUCORE_MPI 69 # include "Epetra_MpiComm.h" 70 #endif // HAVE_SHYLUCORE_MPI 71 #include "Epetra_SerialComm.h" 72 #include "Epetra_Time.h" 73 #include "Epetra_CrsMatrix.h" 74 #include "Epetra_Map.h" 75 #include "Epetra_MultiVector.h" 76 #include "Epetra_LinearProblem.h" 77 #include "Epetra_Import.h" 78 #include "Epetra_Export.h" 81 #include "Teuchos_GlobalMPISession.hpp" 82 #include "Teuchos_XMLParameterListHelpers.hpp" 83 #include "Teuchos_LAPACK.hpp" 86 #include "EpetraExt_RowMatrixOut.h" 87 #include "EpetraExt_MultiVectorOut.h" 88 #include "EpetraExt_CrsMatrixIn.h" 92 #include "Amesos_BaseSolver.h" 96 #ifdef HAVE_SHYLUCORE_AMESOS2 97 #include <Amesos2.hpp> 101 #ifdef HAVE_SHYLUCORE_TPETRA 102 #include <Tpetra_CrsMatrix_decl.hpp> 103 #include <Tpetra_CrsMatrix_def.hpp> 110 int main(
int argc,
char *argv[])
112 #ifdef HAVE_SHYLUCORE_MPI 113 Teuchos::GlobalMPISession mpiSession(&argc, &argv, 0);
114 Epetra_MpiComm Comm(MPI_COMM_WORLD);
116 Epetra_SerialComm Comm;
119 Teuchos::ParameterList pLUList ;
120 Teuchos::ParameterList isoList ;
121 string ipFileName =
"ShyLU.xml";
124 nProcs = mpiSession.getNProc();
125 myPID = Comm.MyPID();
129 cout <<
"Parallel execution: nProcs="<< nProcs << endl;
133 Teuchos::updateParametersFromXmlFile(ipFileName, &pLUList);
134 isoList = pLUList.sublist(
"Isorropia Input");
136 string MMFileName = Teuchos::getParameter<string>(pLUList,
"mm_file");
140 cout <<
"Input :" << endl;
141 cout <<
"ParaLU params " << endl;
142 pLUList.print(std::cout, 2,
true,
true);
143 cout <<
"Matrix market file name: " << MMFileName << endl;
149 Epetra_CrsMatrix *tempA;
150 EpetraExt::MatrixMarketFileToCrsMatrix(MMFileName.c_str(), Comm, tempA);
152 Epetra_CrsMatrix *A = balanceAndRedistribute(tempA, isoList);
155 Epetra_MultiVector *localS;
156 Epetra_MultiVector *CMV;
157 Epetra_LinearProblem *LP;
158 Amesos_BaseSolver *Solver;
160 int *DRowElems, *SRowElems, *piv;
162 shylu_factor(A, sym, localS, LP, Solver, Dnr, DRowElems, Snr, SRowElems,
int shylu_factor(Epetra_CrsMatrix *A, shylu_symbolic *ssym, shylu_data *data, shylu_config *config)
Main function call into ShylU.
Main header file of ShyLU (Include main user calls)