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" 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 110 int main(
int argc,
char *argv[])
112 #ifdef HAVE_SHYLUCORE_MPI 114 Epetra_MpiComm Comm(MPI_COMM_WORLD);
116 Epetra_SerialComm Comm;
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.
ParameterList & sublist(const std::string &name, bool mustAlreadyExist=false, const std::string &docString="")
Main header file of ShyLU (Include main user calls)