Belos Version of the Day
Loading...
Searching...
No Matches
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
23namespace Belos {
24
32class BelosSolverFactory : public Impl::SolverFactoryParent<double,MultiVec<double>,Operator<double>>
33{
34 public:
38};
39
40class BelosFloatSolverFactory : public Impl::SolverFactoryParent<float,MultiVec<float>,Operator<float>>
41{
42 public:
46};
47
48namespace Impl {
49
50template<>
55
56template<>
61
62#ifdef HAVE_TEUCHOS_COMPLEX
63class BelosComplexSolverFactory : public Impl::SolverFactoryParent<std::complex<double>,MultiVec<std::complex<double>>,Operator<std::complex<double>>>
64{
65 public:
67 Details::registerSolverFactory();
68 };
69};
70
71template<>
72class SolverFactorySelector<std::complex<double>,MultiVec<std::complex<double>>,Operator<std::complex<double>>> {
73 public:
74 typedef BelosComplexSolverFactory type;
75};
76
77class BelosFloatComplexSolverFactory : public Impl::SolverFactoryParent<std::complex<float>,MultiVec<std::complex<float>>,Operator<std::complex<float>>>
78{
79 public:
80 BelosFloatComplexSolverFactory() {
81 Details::registerSolverFactory();
82 };
83};
84
85template<>
86class 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
Interface for multivectors used by Belos' linear solvers.
Alternative run-time polymorphic interface for operators.
Specializations of Belos::SolverFactory may inherit from this class to get basic SolverFactory functi...
SolverFactoryParent< SC, MV, OP > type
Interface for multivectors used by Belos' linear solvers.
Alternative run-time polymorphic interface for operators.

Generated for Belos by doxygen 1.9.8