mirror of
https://gitlab.com/libeigen/eigen.git
synced 2025-06-04 18:54:00 +08:00
Add KLU support to spbenchsolver
This commit is contained in:
parent
5fdc179241
commit
ba9d18b938
@ -29,6 +29,13 @@ if(UMFPACK_FOUND AND BLAS_FOUND)
|
|||||||
set(UMFPACK_ALL_LIBS ${UMFPACK_LIBRARIES} ${BLAS_LIBRARIES})
|
set(UMFPACK_ALL_LIBS ${UMFPACK_LIBRARIES} ${BLAS_LIBRARIES})
|
||||||
endif()
|
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)
|
find_package(SuperLU 4.0)
|
||||||
if(SUPERLU_FOUND AND BLAS_FOUND)
|
if(SUPERLU_FOUND AND BLAS_FOUND)
|
||||||
add_definitions("-DEIGEN_SUPERLU_SUPPORT")
|
add_definitions("-DEIGEN_SUPERLU_SUPPORT")
|
||||||
|
@ -37,6 +37,10 @@
|
|||||||
#include <Eigen/UmfPackSupport>
|
#include <Eigen/UmfPackSupport>
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#ifdef EIGEN_KLU_SUPPORT
|
||||||
|
#include <Eigen/KLUSupport>
|
||||||
|
#endif
|
||||||
|
|
||||||
#ifdef EIGEN_PARDISO_SUPPORT
|
#ifdef EIGEN_PARDISO_SUPPORT
|
||||||
#include <Eigen/PardisoSupport>
|
#include <Eigen/PardisoSupport>
|
||||||
#endif
|
#endif
|
||||||
@ -51,6 +55,7 @@
|
|||||||
|
|
||||||
// CONSTANTS
|
// CONSTANTS
|
||||||
#define EIGEN_UMFPACK 10
|
#define EIGEN_UMFPACK 10
|
||||||
|
#define EIGEN_KLU 11
|
||||||
#define EIGEN_SUPERLU 20
|
#define EIGEN_SUPERLU 20
|
||||||
#define EIGEN_PASTIX 30
|
#define EIGEN_PASTIX 30
|
||||||
#define EIGEN_PARDISO 40
|
#define EIGEN_PARDISO 40
|
||||||
@ -109,6 +114,12 @@ void printStatheader(std::ofstream& out)
|
|||||||
out << " <PACKAGE> UMFPACK </PACKAGE> \n";
|
out << " <PACKAGE> UMFPACK </PACKAGE> \n";
|
||||||
out << " </SOLVER> \n";
|
out << " </SOLVER> \n";
|
||||||
#endif
|
#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
|
#ifdef EIGEN_SUPERLU_SUPPORT
|
||||||
out <<" <SOLVER ID='" << EIGEN_SUPERLU << "'>\n";
|
out <<" <SOLVER ID='" << EIGEN_SUPERLU << "'>\n";
|
||||||
out << " <TYPE> LU </TYPE> \n";
|
out << " <TYPE> LU </TYPE> \n";
|
||||||
@ -315,6 +326,14 @@ void SelectSolvers(const SparseMatrix<Scalar>&A, unsigned int sym, Matrix<Scalar
|
|||||||
UmfPackLU<SpMat> solver;
|
UmfPackLU<SpMat> solver;
|
||||||
call_directsolver(solver, EIGEN_UMFPACK, A, b, refX,statFile);
|
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
|
#endif
|
||||||
//SuperLU
|
//SuperLU
|
||||||
#ifdef EIGEN_SUPERLU_SUPPORT
|
#ifdef EIGEN_SUPERLU_SUPPORT
|
||||||
|
Loading…
x
Reference in New Issue
Block a user