Belos  Version of the Day
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
BelosSolverFactory_Belos.hpp
Go to the documentation of this file.
1 // @HEADER
2 // *****************************************************************************
3 // Belos: Block Linear Solvers Package
4 //
5 // Copyright 2004-2016 NTESS and the Belos contributors.
6 // SPDX-License-Identifier: BSD-3-Clause
7 // *****************************************************************************
8 // @HEADER
9 
10 #ifndef BELOSSOLVERFACTORY_BELOS_HPP
11 #define BELOSSOLVERFACTORY_BELOS_HPP
12 
14 
15 // Note that this file is currently included by BelosSolverFactory.hpp
16 // to maintain backwards compatibility. We don't include it here because
17 // gcc won't resolve the circular includes for namespacing
18 // #include "BelosSolverFactory.hpp"
19 
20 #include "BelosMultiVec.hpp"
21 #include "BelosOperator.hpp"
22 
23 namespace Belos {
24 
32 class BelosSolverFactory : public Impl::SolverFactoryParent<double,MultiVec<double>,Operator<double>>
33 {
34  public:
37  };
38 };
39 
40 class BelosFloatSolverFactory : public Impl::SolverFactoryParent<float,MultiVec<float>,Operator<float>>
41 {
42  public:
45  };
46 };
47 
48 namespace Impl {
49 
50 template<>
51 class SolverFactorySelector<double,MultiVec<double>,Operator<double>> {
52  public:
54 };
55 
56 template<>
57 class SolverFactorySelector<float,MultiVec<float>,Operator<float>> {
58  public:
60 };
61 
62 #ifdef HAVE_TEUCHOS_COMPLEX
63 class BelosComplexSolverFactory : public Impl::SolverFactoryParent<std::complex<double>,MultiVec<std::complex<double>>,Operator<std::complex<double>>>
64 {
65  public:
66  BelosComplexSolverFactory() {
68  };
69 };
70 
71 template<>
72 class SolverFactorySelector<std::complex<double>,MultiVec<std::complex<double>>,Operator<std::complex<double>>> {
73  public:
74  typedef BelosComplexSolverFactory type;
75 };
76 
77 class BelosFloatComplexSolverFactory : public Impl::SolverFactoryParent<std::complex<float>,MultiVec<std::complex<float>>,Operator<std::complex<float>>>
78 {
79  public:
80  BelosFloatComplexSolverFactory() {
82  };
83 };
84 
85 template<>
86 class SolverFactorySelector<std::complex<float>,MultiVec<std::complex<float>>,Operator<std::complex<float>>> {
87  public:
88  typedef BelosFloatComplexSolverFactory type;
89 };
90 #endif
91 
92 } // namespace Impl
93 } // namespace Belos
94 
95 #endif // BELOSSOLVERFACTORY_BELOS_HPP
SolverFactoryParent< SC, MV, OP > type
Alternative run-time polymorphic interface for operators.
Specializations of Belos::SolverFactory may inherit from this class to get basic SolverFactory functi...
Alternative run-time polymorphic interface for operators.
Interface for multivectors used by Belos&#39; linear solvers.
Interface for multivectors used by Belos&#39; linear solvers.

Generated on Fri Nov 22 2024 09:23:06 for Belos by doxygen 1.8.5