diff options
Diffstat (limited to 'bench/spbench/spbenchsolver.h')
-rw-r--r-- | bench/spbench/spbenchsolver.h | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/bench/spbench/spbenchsolver.h b/bench/spbench/spbenchsolver.h index 19c719c04..8f59d1071 100644 --- a/bench/spbench/spbenchsolver.h +++ b/bench/spbench/spbenchsolver.h @@ -37,6 +37,10 @@ #include <Eigen/UmfPackSupport> #endif +#ifdef EIGEN_KLU_SUPPORT +#include <Eigen/KLUSupport> +#endif + #ifdef EIGEN_PARDISO_SUPPORT #include <Eigen/PardisoSupport> #endif @@ -51,6 +55,7 @@ // CONSTANTS #define EIGEN_UMFPACK 10 +#define EIGEN_KLU 11 #define EIGEN_SUPERLU 20 #define EIGEN_PASTIX 30 #define EIGEN_PARDISO 40 @@ -109,6 +114,12 @@ void printStatheader(std::ofstream& out) out << " <PACKAGE> UMFPACK </PACKAGE> \n"; out << " </SOLVER> \n"; #endif +#ifdef EIGEN_KLU_SUPPORT + out <<" <SOLVER ID='" << EIGEN_KLU << "'>\n"; + out << " <TYPE> LU </TYPE> \n"; + out << " <PACKAGE> KLU </PACKAGE> \n"; + out << " </SOLVER> \n"; +#endif #ifdef EIGEN_SUPERLU_SUPPORT out <<" <SOLVER ID='" << EIGEN_SUPERLU << "'>\n"; out << " <TYPE> LU </TYPE> \n"; @@ -316,6 +327,14 @@ void SelectSolvers(const SparseMatrix<Scalar>&A, unsigned int sym, Matrix<Scalar call_directsolver(solver, EIGEN_UMFPACK, A, b, refX,statFile); } #endif + //KLU + #ifdef EIGEN_KLU_SUPPORT + { + cout << "Solving with KLU LU ... \n"; + KLU<SpMat> solver; + call_directsolver(solver, EIGEN_KLU, A, b, refX,statFile); + } + #endif //SuperLU #ifdef EIGEN_SUPERLU_SUPPORT { |