[Dune] Building DUNE with Cmake: SuperLU

lriedel at iup.uni-heidelberg.de lriedel at iup.uni-heidelberg.de
Wed Jul 22 14:22:06 CEST 2015


Dear Dune Developers,

when switching from the Autotools buildsystem to CMake, I encounter the
problem that the SuperLU package is found but the respective Linear Solver
in the dune-istl package cannot be used.
Using Autotools, I needed to add the SuperLU LIBS, LDFLAGS and CPPFLAGS to
the respective Makefile.am of the project and it would work fine. Do I
need to do something similar when using CMake?

With Autotools I execute

$ ./dune-common/bin/dunecontrol --module=<myproject> --opts=config.opts all

with the opts file containing

 CONFIGURE_FLAGS=" --enable-parallel
--with-superlu=$INSTALLDIR/SuperLU_4.3
--with-superlu-lib=libsuperlu_4.3.a
--with-blas=$INSTALLDIR/OpenBLAS/lib/libopenblas.a <...>"

Switching to CMake I execute

$ ./dune-common/bin/dunecontrol --use-cmake --module=<myproject>
--opts=config.opts all

with the opts file containing

 CMAKE_FLAGS="-DUSE_MPI=ON -DSUPERLU_ROOT=$INSTALLDIR/SuperLU_4.3
-DBLAS_ROOT=$INSTALLDIR/OpenBLAS/lib/libopenblas.a <...>"

Partial output of configure:
"
-- The following OPTIONAL packages have been found:

 * MPI
 * Doxygen
 * PkgConfig
 * LAPACK
 * GMP
 * UG (required version >= 3.9.1)
 * X11
 * OpenGL
 * CXXTemplateAliases
 * CXXDecltype
 * GCCTypeof
 * Boost
 * METIS
 * ParMETIS
 * SuperLU
 * Threads

-- The following REQUIRED packages have been found:

 * dune-common
 * dune-geometry
 * dune-grid
 * dune-istl
 * dune-localfunctions
 * dune-pdelab
 * dune-typetree
 * BLAS

-- The following features have been disabled:

 * Experimental grid extensions , Enables additional grid features.

-- The following OPTIONAL packages have not been found:

 * LATEX
 * Inkscape
 * ALUGrid
 * Alberta
 * Grape
 * Psurface
 * AmiraMesh
 * BoostFusion
 * UMFPack
 * PETSc
 * CXXUnorderedContainers

-- Configuring done
-- Generating done
"

But when compiling the project, I receive the error
 error: 'ISTLBackend_SEQ_SuperLU' in namespace 'Dune::PDELab' does not
name a type
   typedef Dune::PDELab::ISTLBackend_SEQ_SuperLU LS;

Do I need to add something specific to the CMAkeLists.txt files?

Thank you in advance and best regards,
Lukas Riedel





More information about the Dune mailing list