Skip to content
Snippets Groups Projects
Commit c875bc68 authored by Christoph Lehmann's avatar Christoph Lehmann
Browse files

[PL] Added CMake option to use EigenLis solver

parent 94ab096a
No related branches found
No related tags found
No related merge requests found
...@@ -64,6 +64,8 @@ option(OGS_NO_EXTERNAL_LIBS "Builds OGS without any external dependencies." OFF) ...@@ -64,6 +64,8 @@ option(OGS_NO_EXTERNAL_LIBS "Builds OGS without any external dependencies." OFF)
# Linear solvers # Linear solvers
option(OGS_USE_LIS "Use Lis" OFF) option(OGS_USE_LIS "Use Lis" OFF)
option(OGS_USE_EIGENLIS "Use Lis solver together with Eigen sparse matrices" OFF)
# Parallel computing: vector and matrix algebraic caculation, solvers # Parallel computing: vector and matrix algebraic caculation, solvers
option(OGS_USE_PETSC "Use PETSc routines" OFF) option(OGS_USE_PETSC "Use PETSc routines" OFF)
...@@ -147,6 +149,15 @@ if(OGS_USE_EIGEN) ...@@ -147,6 +149,15 @@ if(OGS_USE_EIGEN)
include_directories (SYSTEM ${EIGEN3_INCLUDE_DIR}) include_directories (SYSTEM ${EIGEN3_INCLUDE_DIR})
endif() endif()
if (OGS_USE_EIGENLIS)
if (OGS_USE_EIGEN AND OGS_USE_LIS)
add_definitions(-DOGS_USE_EIGENLIS)
else()
message(WARNING "The setting OGS_USE_EIGENLIS needs both OGS_USE_EIGEN"
" and OGS_USE_LIS set in order to have some effect.")
endif()
endif()
add_subdirectory( Applications ) add_subdirectory( Applications )
add_subdirectory( AssemblerLib ) add_subdirectory( AssemblerLib )
add_subdirectory( BaseLib ) add_subdirectory( BaseLib )
......
...@@ -23,7 +23,21 @@ ...@@ -23,7 +23,21 @@
// //
// Global vector/matrix types and linear solver. // Global vector/matrix types and linear solver.
// //
#if defined(USE_LIS) #if defined(OGS_USE_EIGENLIS)
#include "MathLib/LinAlg/Eigen/EigenMatrix.h"
#include "MathLib/LinAlg/Eigen/EigenVector.h"
#include "MathLib/LinAlg/EigenLis/EigenLisLinearSolver.h"
namespace detail
{
using GlobalVectorType = MathLib::EigenVector;
using GlobalMatrixType = MathLib::EigenMatrix;
using LinearSolverType = MathLib::EigenLisLinearSolver;
}
#elif defined(USE_LIS)
#include "MathLib/LinAlg/Lis/LisMatrix.h" #include "MathLib/LinAlg/Lis/LisMatrix.h"
#include "MathLib/LinAlg/Lis/LisVector.h" #include "MathLib/LinAlg/Lis/LisVector.h"
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment