53 #include "Epetra_CrsMatrix.h" 54 #include "Epetra_Map.h" 55 #include "Epetra_MultiVector.h" 56 #include "Epetra_LinearProblem.h" 57 #include "Epetra_SerialComm.h" 60 #include "Amesos_BaseSolver.h" 64 #include "Ifpack_Preconditioner.h" 70 #include "Isorropia_EpetraProber.hpp" 73 #ifdef HAVE_SHYLUCORE_AMESOS2 74 #include <Amesos2.hpp> 78 #ifdef HAVE_SHYLUCORE_TPETRA 84 #ifdef HAVE_SHYLUCORE_ZOLTAN2 85 #include <Zoltan2_XpetraCrsMatrixAdapter.hpp> 86 #include <Zoltan2_XpetraMultiVectorAdapter.hpp> 87 #include <Zoltan2_PartitioningProblem.hpp> 92 #include "shylu_symbolic.h" 93 #include "shylu_config.h" 94 #include "shylu_probing_operator.h" 95 #include "shylu_amesos_schur_operator.h" 101 #define MIN(a, b) (((a) < (b)) ? a : b) 102 #define MAX(a, b) (((a) > (b)) ? a : b) 150 AztecOO *innersolver;
156 Amesos_BaseSolver *dsolver;
188 const Epetra_MultiVector& X, Epetra_MultiVector& Y);
197 Epetra_CrsMatrix *G, Epetra_CrsMatrix *R,
198 Epetra_LinearProblem *LP, Amesos_BaseSolver *solver,
199 Ifpack_Preconditioner *ifSolver, Epetra_CrsMatrix *C,
200 Epetra_Map *localDRowMap);
210 Epetra_CrsMatrix *G, Epetra_CrsMatrix *R,
211 Epetra_LinearProblem *LP, Amesos_BaseSolver *solver,
212 Ifpack_Preconditioner *ifSolver, Epetra_CrsMatrix *C,
213 Epetra_Map *localDRowMap);
224 Epetra_Map *localDRowMap
int shylu_solve(shylu_symbolic *ssym, shylu_data *data, shylu_config *config, const Epetra_MultiVector &X, Epetra_MultiVector &Y)
Call solve on multiple RHS.
Teuchos::RCP< Epetra_CrsMatrix > computeSchur_GuidedProbing(shylu_config *config, shylu_symbolic *ssym, shylu_data *data, Epetra_Map *localDRowMap)
Compute an approximate Schur Complement using the option of Guided Probing.
Teuchos::RCP< Epetra_CrsMatrix > computeApproxSchur(shylu_config *config, shylu_symbolic *ssym, Epetra_CrsMatrix *G, Epetra_CrsMatrix *R, Epetra_LinearProblem *LP, Amesos_BaseSolver *solver, Ifpack_Preconditioner *ifSolver, Epetra_CrsMatrix *C, Epetra_Map *localDRowMap)
Compute an approximate Schur Complement (Narrow Sep)
Teuchos::RCP< Epetra_CrsMatrix > computeApproxWideSchur(shylu_config *config, shylu_symbolic *ssym, Epetra_CrsMatrix *G, Epetra_CrsMatrix *R, Epetra_LinearProblem *LP, Amesos_BaseSolver *solver, Ifpack_Preconditioner *ifSolver, Epetra_CrsMatrix *C, Epetra_Map *localDRowMap)
Compute an approximate Shur Complete (Wide Sep)
Encapsulates the IQR inexact solver functionality.
int shylu_factor(Epetra_CrsMatrix *A, shylu_symbolic *ssym, shylu_data *data, shylu_config *config)
Main function call into ShylU.
Main data structure holding needed offset and temp variables.
int shylu_symbolic_factor(Epetra_CrsMatrix *A, shylu_symbolic *ssym, shylu_data *data, shylu_config *config)
Call symbolic factorization on matrix.