diff --git a/CMakeLists.txt b/CMakeLists.txt index c62529345b6975043d9021cac0465bee94adcad2..47c1b5dacf2ec22a7c9fb576a02da7a1dadbf528 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -56,6 +56,10 @@ OPTION(OGS_NO_EXTERNAL_LIBS "Builds OGS without any external dependencies." OFF) # Linear solvers OPTION(OGS_USE_LIS "Use Lis" OFF) +# Eigen +OPTION(OGS_USE_EIGEN "Use EIGEN for local matrix and vector" ON) +OPTION(EIGEN_NO_DEBUG "Disables Eigen's assertions" ON) + # Logging OPTION(OGS_DISABLE_LOGGING "Disables all logog messages." OFF) @@ -105,6 +109,15 @@ IF(OGS_USE_LIS) ADD_DEFINITIONS(-DUSE_LIS) ENDIF() +IF(OGS_USE_EIGEN) +# ADD_DEFINITIONS(-DEIGEN_DEFAULT_DENSE_INDEX_TYPE=std::size_t) + ADD_DEFINITIONS(-DEIGEN_INITIALIZE_MATRICES_BY_ZERO) + ADD_DEFINITIONS(-DOGS_USE_EIGEN) + IF (EIGEN_NO_DEBUG) + ADD_DEFINITIONS(-DEIGEN_NO_DEBUG) + ENDIF() +ENDIF() + ADD_SUBDIRECTORY( AssemblerLib ) ADD_SUBDIRECTORY( BaseLib ) # TODO This is a hack but we have to make sure that Boost is built first diff --git a/scripts/cmake/Find.cmake b/scripts/cmake/Find.cmake index 2cc014e3b5ea33f3fdfa546adc21b1bf2203af96..1295af1ffbdc6ade270e946b93159b2c504197fa 100644 --- a/scripts/cmake/Find.cmake +++ b/scripts/cmake/Find.cmake @@ -163,5 +163,10 @@ ENDIF() # Shapelib_FOUND ## lis ## IF(OGS_USE_LIS) - FIND_PACKAGE( LIS REQUIRED ) + FIND_PACKAGE( LIS REQUIRED ) +ENDIF() + +## Eigen ## +IF(OGS_USE_EIGEN) + FIND_PACKAGE( Eigen3 REQUIRED ) ENDIF()