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
32 class BelosSolverFactory : public Impl::SolverFactoryParent<double,MultiVec<double, DefaultDenseMatrix<int,double>>,Operator<double, DefaultDenseMatrix<int,double>>,
33 DefaultDenseMatrix<int,double>>
34{
35 public:
39};
40
41 class BelosFloatSolverFactory : public Impl::SolverFactoryParent<float,MultiVec<float, DefaultDenseMatrix<int,float>>,Operator<float, DefaultDenseMatrix<int,float>>,
42 DefaultDenseMatrix<int,float>>
43{
44 public:
48};
49
50namespace Impl {
51
52template<>
57
58template<>
63
64#ifdef HAVE_TEUCHOS_COMPLEX
65class BelosComplexSolverFactory : public Impl::SolverFactoryParent<std::complex<double>,MultiVec<std::complex<double>>,
66 Operator<std::complex<double>, DefaultDenseMatrix<int,std::complex<double>>>, DefaultDenseMatrix<int,std::complex<double>>>
67{
68 public:
70 Details::registerSolverFactory();
71 };
72};
73
74template<>
75class SolverFactorySelector<std::complex<double>,MultiVec<std::complex<double>>,Operator<std::complex<double>, DefaultDenseMatrix<int,std::complex<double>>>,
76 DefaultDenseMatrix<int,std::complex<double>>>
77{
78 public:
79 typedef BelosComplexSolverFactory type;
80};
81
82class BelosFloatComplexSolverFactory : public Impl::SolverFactoryParent<std::complex<float>,MultiVec<std::complex<float>>,
83 Operator<std::complex<float>, DefaultDenseMatrix<int,std::complex<float>>>, DefaultDenseMatrix<int,std::complex<float>>>
84{
85 public:
86 BelosFloatComplexSolverFactory() {
87 Details::registerSolverFactory();
88 };
89};
90
91template<>
92class SolverFactorySelector<std::complex<float>,MultiVec<std::complex<float>>,Operator<std::complex<float>, DefaultDenseMatrix<int,std::complex<float>>>,
93 DefaultDenseMatrix<int,std::complex<float>>>
94{
95 public:
96 typedef BelosFloatComplexSolverFactory type;
97};
98#endif
99
100} // namespace Impl
101} // namespace Belos
102
103#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, DM > type
Interface for multivectors used by Belos' linear solvers.
Alternative run-time polymorphic interface for operators.
Teuchos::SerialDenseMatrix< Ordinal, Scalar > DefaultDenseMatrix

Generated for Belos by doxygen 1.9.8