diff options
Diffstat (limited to 'bench/spbench')
-rw-r--r-- | bench/spbench/CMakeLists.txt | 23 | ||||
-rw-r--r-- | bench/spbench/sp_solver.cpp | 2 | ||||
-rw-r--r-- | bench/spbench/spbenchsolver.cpp | 2 | ||||
-rw-r--r-- | bench/spbench/spbenchsolver.h | 19 | ||||
-rw-r--r-- | bench/spbench/test_sparseLU.cpp | 2 |
5 files changed, 37 insertions, 11 deletions
diff --git a/bench/spbench/CMakeLists.txt b/bench/spbench/CMakeLists.txt index 932735698..b1860049c 100644 --- a/bench/spbench/CMakeLists.txt +++ b/bench/spbench/CMakeLists.txt @@ -11,9 +11,9 @@ set(SPARSE_LIBS "") # if(PARDISO_LIBRARIES) # add_definitions("-DEIGEN_PARDISO_SUPPORT") # set(SPARSE_LIBS ${SPARSE_LIBS} ${PARDISO_LIBRARIES}) -# endif(PARDISO_LIBRARIES) +# endif() -find_package(Cholmod) +find_package(CHOLMOD) if(CHOLMOD_FOUND AND BLAS_FOUND AND LAPACK_FOUND) add_definitions("-DEIGEN_CHOLMOD_SUPPORT") include_directories(${CHOLMOD_INCLUDES}) @@ -21,7 +21,7 @@ if(CHOLMOD_FOUND AND BLAS_FOUND AND LAPACK_FOUND) set(CHOLMOD_ALL_LIBS ${CHOLMOD_LIBRARIES} ${BLAS_LIBRARIES} ${LAPACK_LIBRARIES}) endif() -find_package(Umfpack) +find_package(UMFPACK) if(UMFPACK_FOUND AND BLAS_FOUND) add_definitions("-DEIGEN_UMFPACK_SUPPORT") include_directories(${UMFPACK_INCLUDES}) @@ -29,8 +29,15 @@ if(UMFPACK_FOUND AND BLAS_FOUND) set(UMFPACK_ALL_LIBS ${UMFPACK_LIBRARIES} ${BLAS_LIBRARIES}) endif() +find_package(KLU) +if(KLU_FOUND) + add_definitions("-DEIGEN_KLU_SUPPORT") + include_directories(${KLU_INCLUDES}) + set(SPARSE_LIBS ${SPARSE_LIBS} ${KLU_LIBRARIES}) +endif() + find_package(SuperLU 4.0) -if(SUPERLU_FOUND AND BLAS_FOUND) +if(SuperLU_FOUND AND BLAS_FOUND) add_definitions("-DEIGEN_SUPERLU_SUPPORT") include_directories(${SUPERLU_INCLUDES}) set(SPARSE_LIBS ${SPARSE_LIBS} ${SUPERLU_LIBRARIES} ${BLAS_LIBRARIES}) @@ -57,21 +64,21 @@ if(PASTIX_FOUND AND PASTIX_pastix_nompi.h_INCLUDE_DIRS AND BLAS_FOUND) elseif(METIS_FOUND) include_directories(${METIS_INCLUDE_DIRS}) set(PASTIX_LIBRARIES ${PASTIX_LIBRARIES} ${METIS_LIBRARIES}) - endif(SCOTCH_FOUND) + endif() set(SPARSE_LIBS ${SPARSE_LIBS} ${PASTIX_LIBRARIES_DEP} ${ORDERING_LIBRARIES}) set(PASTIX_ALL_LIBS ${PASTIX_LIBRARIES_DEP}) -endif(PASTIX_FOUND AND BLAS_FOUND) +endif() if(METIS_FOUND) include_directories(${METIS_INCLUDE_DIRS}) set (SPARSE_LIBS ${SPARSE_LIBS} ${METIS_LIBRARIES}) add_definitions("-DEIGEN_METIS_SUPPORT") -endif(METIS_FOUND) +endif() find_library(RT_LIBRARY rt) if(RT_LIBRARY) set(SPARSE_LIBS ${SPARSE_LIBS} ${RT_LIBRARY}) -endif(RT_LIBRARY) +endif() add_executable(spbenchsolver spbenchsolver.cpp) target_link_libraries (spbenchsolver ${SPARSE_LIBS}) diff --git a/bench/spbench/sp_solver.cpp b/bench/spbench/sp_solver.cpp index a1f4bac8a..75821a620 100644 --- a/bench/spbench/sp_solver.cpp +++ b/bench/spbench/sp_solver.cpp @@ -122,4 +122,4 @@ int main(int argc, char **args) // std::cout<<x.transpose()<<"\n"; return 0; -}
\ No newline at end of file +} diff --git a/bench/spbench/spbenchsolver.cpp b/bench/spbench/spbenchsolver.cpp index 4acd0039c..2a7351124 100644 --- a/bench/spbench/spbenchsolver.cpp +++ b/bench/spbench/spbenchsolver.cpp @@ -54,7 +54,7 @@ int main(int argc, char ** args) statbuf.close(); } else - std::cerr << "Unable to open the provided file for writting... \n"; + std::cerr << "Unable to open the provided file for writing... \n"; } // Get the maximum number of iterations and the tolerance 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 { diff --git a/bench/spbench/test_sparseLU.cpp b/bench/spbench/test_sparseLU.cpp index f8ecbe69b..a4cade641 100644 --- a/bench/spbench/test_sparseLU.cpp +++ b/bench/spbench/test_sparseLU.cpp @@ -90,4 +90,4 @@ int main(int argc, char **args) cout << "Number of nonzeros in the factor : " << solver.nnzL() + solver.nnzU() << std::endl; return 0; -}
\ No newline at end of file +} |