CMakeLists.txt 2.22 KB
Newer Older
1
set(HEADERS
Praetorius, Simon's avatar
Praetorius, Simon committed
2
    AMGPrecon.hpp
3
    Communication.hpp
4
    Constraints.hpp
5
    Creators.hpp
6
7
8
    ISTLPreconCreator.hpp
    ISTLSolverCreator.hpp
    LinearSolver.hpp
9
    MatrixBackend.hpp
10
    Operations.hpp
11
    Preconditioners.hpp
12
    PreconWrapper.hpp
13
    Solvers.hpp
14
    SolverWrapper.hpp
15
    Traits.hpp
16
17
18
19
20
21
22
23
24
25
26
27
28
    VectorBackend.hpp)

set(IMPL_HEADERS
    Communication.inc.hpp
)

install(FILES ${HEADERS} ${IMPL_HEADERS}
    DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/amdis/linearalgebra/istl)

# define precompiled headers for amdis
if(ENABLE_PCH AND CMAKE_VERSION VERSION_GREATER 3.16)
  target_precompile_headers(amdis PUBLIC ${HEADERS})
endif()
29

30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
# explicit template instantiation

set(istl_solvers "CGSolver" "GeneralizedPCGSolver" "BiCGSTABSolver" "MINRESSolver" "RestartedGMResSolver")
if(dune-istl_VERSION VERSION_GREATER_EQUAL 2.7)
  list(APPEND istl_solvers "RestartedFCGSolver" "CompleteFCGSolver" "RestartedFlexibleGMResSolver")
endif()

foreach (solver ${istl_solvers})
  amdis_template_instantiation(amdis PUBLIC
    TYPES "Dune::${solver}<Dune::BlockVector<Dune::FieldVector<double,1>>>"
    HEADERS "dune/istl/solvers.hh"
    DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/amdis/linearalgebra/istl)
endforeach(solver)

if (HAVE_SUITESPARSE_UMFPACK)
  amdis_template_instantiation(amdis PUBLIC
    TYPES "Dune::UMFPack<Dune::BCRSMatrix<Dune::FieldMatrix<double,1,1>>>"
    HEADERS "dune/istl/umfpack.hh"
    DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/amdis/linearalgebra/istl)
endif()

if (HAVE_SUITESPARSE_LDL)
  amdis_template_instantiation(amdis PUBLIC
    TYPES "Dune::LDL<Dune::BCRSMatrix<Dune::FieldMatrix<double,1,1>>>"
    HEADERS "dune/istl/ldl.hh"
    DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/amdis/linearalgebra/istl)
endif()

if (HAVE_SUITESPARSE_SPQR)
  amdis_template_instantiation(amdis PUBLIC
    TYPES "Dune::SPQR<Dune::BCRSMatrix<Dune::FieldMatrix<double,1,1>>>"
    HEADERS "dune/istl/spqr.hh"
    DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/amdis/linearalgebra/istl)
endif()

if (HAVE_SUPERLU AND dune-istl_VERSION VERSION_LESS 2.7)
  amdis_template_instantiation(amdis PUBLIC
    TYPES "Dune::SuperLU<Dune::BCRSMatrix<Dune::FieldMatrix<double,1,1>>>"
    HEADERS "dune/istl/superlu.hh"
    DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/amdis/linearalgebra/istl)
endif()