A direct coarse solver of AMG is needed for good convergence and umfpack was tested to work better than SuperLU previously. Hence we now require it.
70 lines
1.6 KiB
CMake
70 lines
1.6 KiB
CMake
# - Find DUNE ISTL library
|
|
#
|
|
# Defines the following variables:
|
|
# dune-istl_INCLUDE_DIRS Directory of header files
|
|
# dune-istl_LIBRARIES Directory of shared object files
|
|
# dune-istl_DEFINITIONS Defines that must be set to compile
|
|
# dune-istl_CONFIG_VARS List of defines that should be in config.h
|
|
# HAVE_DUNE_ISTL Binary value to use in config.h
|
|
|
|
# Copyright (C) 2012 Uni Research AS
|
|
# This code is licensed under The GNU General Public License v3.0
|
|
|
|
include (OpmPackage)
|
|
find_opm_package (
|
|
# module name
|
|
"dune-istl"
|
|
|
|
# required dependencies
|
|
"dune-common REQUIRED;
|
|
ParMETIS;
|
|
SuperLU;
|
|
SuiteSparse COMPONENTS umfpack REQUIRED
|
|
"
|
|
# header to search for
|
|
"dune/istl/bcrsmatrix.hh"
|
|
|
|
# library to search for
|
|
""
|
|
|
|
# defines to be added to compilations
|
|
""
|
|
|
|
# test program
|
|
"#include <dune/common/deprecated.hh>
|
|
#include <dune/istl/bcrsmatrix.hh>
|
|
#include <dune/common/fmatrix.hh>
|
|
|
|
int main (void) {
|
|
typedef Dune::BCRSMatrix<Dune::FieldMatrix<double,1,1> > Matrix;
|
|
Matrix matrix( 3, 3, Matrix::random );
|
|
for (int i = 0; i < 3; ++i) matrix.setrowsize(i, 2);
|
|
matrix.endrowsizes();
|
|
return 0;
|
|
}
|
|
"
|
|
# config variables
|
|
"HAVE_BOOST_FUSION;
|
|
HAVE_MEM_USAGE_T_EXPANSIONS;
|
|
HAVE_PARDISO;
|
|
HAVE_BOOST;
|
|
HAVE_MPI;
|
|
HAVE_PARMETIS;
|
|
HAVE_SUPERLU;
|
|
HAVE_UMFPACK;
|
|
HAVE_SUITESPARSE_UMFPACK;
|
|
SUPERLU_INT_TYPE;
|
|
HAVE_SLU_CDEFS_H;
|
|
HAVE_SLU_DDEFS_H;
|
|
HAVE_SLU_SDEFS_H;
|
|
HAVE_SLU_ZDEFS_H;
|
|
SUPERLU_MIN_VERSION_4_3;
|
|
SUPERLU_MIN_VERSION_5;
|
|
SUPERLU_POST_2005_VERSION
|
|
")
|
|
#debug_find_vars ("dune-istl")
|
|
|
|
# make version number available in config.h
|
|
include (UseDuneVer)
|
|
find_dune_version ("dune" "istl")
|