Belos
Version of the Day
Toggle main menu visibility
Loading...
Searching...
No Matches
src
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
13
#include "
Belos_Details_registerSolverFactory.hpp
"
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
31
32
class
BelosSolverFactory
:
public
Impl::SolverFactoryParent
<double,MultiVec<double>,Operator<double>>
33
{
34
public
:
35
BelosSolverFactory
() {
36
Details::registerSolverFactory
();
37
};
38
};
39
40
class
BelosFloatSolverFactory
:
public
Impl::SolverFactoryParent
<float,MultiVec<float>,Operator<float>>
41
{
42
public
:
43
BelosFloatSolverFactory
() {
44
Details::registerSolverFactory
();
45
};
46
};
47
48
namespace
Impl {
49
50
template
<>
51
class
SolverFactorySelector
<double,
MultiVec
<double>,
Operator
<double>> {
52
public
:
53
typedef
BelosSolverFactory
type
;
54
};
55
56
template
<>
57
class
SolverFactorySelector
<float,
MultiVec
<float>,
Operator
<float>> {
58
public
:
59
typedef
BelosFloatSolverFactory
type
;
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() {
67
Details::registerSolverFactory
();
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() {
81
Details::registerSolverFactory();
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
Belos_Details_registerSolverFactory.hpp
BelosMultiVec.hpp
Interface for multivectors used by Belos' linear solvers.
BelosOperator.hpp
Alternative run-time polymorphic interface for operators.
Belos::BelosFloatSolverFactory
Definition
BelosSolverFactory_Belos.hpp:41
Belos::BelosFloatSolverFactory::BelosFloatSolverFactory
BelosFloatSolverFactory()
Definition
BelosSolverFactory_Belos.hpp:43
Belos::BelosSolverFactory
Definition
BelosSolverFactory_Belos.hpp:33
Belos::BelosSolverFactory::BelosSolverFactory
BelosSolverFactory()
Definition
BelosSolverFactory_Belos.hpp:35
Belos::Impl::SolverFactoryParent
Specializations of Belos::SolverFactory may inherit from this class to get basic SolverFactory functi...
Definition
BelosSolverFactory.hpp:65
Belos::Impl::SolverFactorySelector< double, MultiVec< double >, Operator< double > >::type
BelosSolverFactory type
Definition
BelosSolverFactory_Belos.hpp:53
Belos::Impl::SolverFactorySelector< float, MultiVec< float >, Operator< float > >::type
BelosFloatSolverFactory type
Definition
BelosSolverFactory_Belos.hpp:59
Belos::Impl::SolverFactorySelector
Definition
BelosSolverFactory.hpp:262
Belos::Impl::SolverFactorySelector::type
SolverFactoryParent< SC, MV, OP > type
Definition
BelosSolverFactory.hpp:273
Belos::MultiVec
Interface for multivectors used by Belos' linear solvers.
Definition
BelosMultiVec.hpp:59
Belos::Operator
Alternative run-time polymorphic interface for operators.
Definition
BelosOperator.hpp:48
Belos::Details::registerSolverFactory
void registerSolverFactory()
Definition
Belos_Details_registerSolverFactory.cpp:47
Belos
Definition
Belos_Details_EBelosSolverType.cpp:13
Generated for Belos by
1.17.0