Ifpack2 Templated Preconditioning Package  Version 1.0
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Groups Pages
Ifpack2_ExplicitInstantiationHelpers.hpp
1 // @HEADER
2 // *****************************************************************************
3 // Ifpack2: Templated Object-Oriented Algebraic Preconditioner Package
4 //
5 // Copyright 2009 NTESS and the Ifpack2 contributors.
6 // SPDX-License-Identifier: BSD-3-Clause
7 // *****************************************************************************
8 // @HEADER
9 
10 #ifndef TPETRA_EXPLICITINSTANTIATIONHELPERS_HPP
11 #define TPETRA_EXPLICITINSTANTIATIONHELPERS_HPP
12 
13 #include <Tpetra_CrsMatrix.hpp>
14 #include <Tpetra_CrsGraph.hpp>
15 
16 #define IFPACK2_INST(CLASSNAME, S, LO, GO, NO) \
17  template class CLASSNAME<Tpetra::CrsMatrix<S, LO, GO, NO> >;
18 
19 #define IFPACK2_INST_GRAPH(CLASSNAME, LO, GO) \
20  template class CLASSNAME<Tpetra::CrsGraph<LO, GO> >;
21 
22 #define IFPACK2_CLASS_CrsMatrix_float_int_int_defaultNode_defaultOps(CLASSNAME) \
23  IFPACK2_INST(CLASSNAME, float, int, int)
24 
25 #define IFPACK2_CLASS_CrsMatrix_float_short_int_defaultNode_defaultOps(CLASSNAME) \
26  IFPACK2_INST(CLASSNAME, float, short, int)
27 
28 #define IFPACK2_CLASS_CrsMatrix_double_int_int_defaultNode_defaultOps(CLASSNAME) \
29  IFPACK2_INST(CLASSNAME, double, int, int)
30 
31 #define IFPACK2_INSTANT_CRSMATRIX_FLOAT_DOUBLE_DEFAULTS(CLASSNAME) \
32  IFPACK2_CLASS_CrsMatrix_double_int_int_defaultNode_defaultOps(CLASSNAME)
33 
34 #define IFPACK2_INSTANT_CRSMATRIX_COMPLEX_DEFAULTS(CLASSNAME) \
35  IFPACK2_INST(CLASSNAME, std::complex<double>, int, int) \
36  IFPACK2_INST(CLASSNAME, std::complex<float>, int, int)
37 
38 #endif // TPETRA_EXPLICITINSTANTIATIONHELPERS_HPP