MueLu
Version of the Day
Toggle main menu visibility
Loading...
Searching...
No Matches
MueLu_LowPrecisionFactory_decl.hpp
Go to the documentation of this file.
1
// @HEADER
2
// *****************************************************************************
3
// MueLu: A package for multigrid based preconditioning
4
//
5
// Copyright 2012 NTESS and the MueLu contributors.
6
// SPDX-License-Identifier: BSD-3-Clause
7
// *****************************************************************************
8
// @HEADER
9
10
#ifndef MUELU_LOWPRECISIONFACTORY_DECL_HPP
11
#define MUELU_LOWPRECISIONFACTORY_DECL_HPP
12
13
#include <string>
14
15
#include "
MueLu_ConfigDefs.hpp
"
16
#include "
MueLu_LowPrecisionFactory_fwd.hpp
"
17
18
#include "
MueLu_Level_fwd.hpp
"
19
#include "
MueLu_SingleLevelFactoryBase.hpp
"
20
21
namespace
MueLu
{
22
27
28
template
<
class
Scalar =
double
,
class
LocalOrdinal =
int
,
class
GlobalOrdinal = LocalOrdinal,
class
Node = Tpetra::KokkosClassic::DefaultNode::DefaultNodeType>
29
class
LowPrecisionFactory
:
public
SingleLevelFactoryBase
{
30
#undef MUELU_LOWPRECISIONFACTORY_SHORT
31
#include "
MueLu_UseShortNames.hpp
"
32
33
public
:
35
36
37
LowPrecisionFactory
() {}
38
40
virtual
~LowPrecisionFactory
() {}
41
42
RCP<const ParameterList>
GetValidParameterList
()
const
;
43
45
47
48
49
void
DeclareInput
(
Level
& currentLevel)
const
;
50
52
54
55
61
void
Build
(
Level
& currentLevel)
const
;
62
64
65
};
// class LowPrecisionFactory
66
67
#if defined(HAVE_TPETRA_INST_DOUBLE) && defined(HAVE_TPETRA_INST_FLOAT)
68
template
<
class
LocalOrdinal,
class
GlobalOrdinal,
class
Node>
69
class
LowPrecisionFactory
<double,
LocalOrdinal
,
GlobalOrdinal
,
Node
> :
public
SingleLevelFactoryBase
{
70
typedef
double
Scalar
;
71
#undef MUELU_LOWPRECISIONFACTORY_SHORT
72
#include "
MueLu_UseShortNames.hpp
"
73
74
public
:
76
77
78
LowPrecisionFactory
() {}
79
81
virtual
~LowPrecisionFactory
() {}
82
83
RCP<const ParameterList>
GetValidParameterList
()
const
;
84
86
88
89
90
void
DeclareInput
(Level& currentLevel)
const
;
91
93
95
96
102
void
Build
(Level& currentLevel)
const
;
103
105
106
};
// class LowPrecisionFactory
107
#endif
108
109
#if defined(HAVE_TPETRA_INST_COMPLEX_DOUBLE) && defined(HAVE_TPETRA_INST_COMPLEX_FLOAT)
110
template
<
class
LocalOrdinal,
class
GlobalOrdinal,
class
Node>
111
class
LowPrecisionFactory
<std::complex<double>,
LocalOrdinal
,
GlobalOrdinal
,
Node
> :
public
SingleLevelFactoryBase
{
112
typedef
std::complex<double>
Scalar
;
113
#undef MUELU_LOWPRECISIONFACTORY_SHORT
114
#include "
MueLu_UseShortNames.hpp
"
115
116
public
:
118
119
120
LowPrecisionFactory
() {}
121
123
virtual
~LowPrecisionFactory
() {}
124
125
RCP<const ParameterList>
GetValidParameterList
()
const
;
126
128
130
131
132
void
DeclareInput
(Level& currentLevel)
const
;
133
135
137
138
144
void
Build
(Level& currentLevel)
const
;
145
147
148
};
// class LowPrecisionFactory
149
#endif
150
151
}
// namespace MueLu
152
153
#define MUELU_LOWPRECISIONFACTORY_SHORT
154
#endif
// MUELU_LOWPRECISIONFACTORY_DECL_HPP
MueLu_ConfigDefs.hpp
MueLu_Level_fwd.hpp
MueLu_LowPrecisionFactory_fwd.hpp
MueLu_SingleLevelFactoryBase.hpp
LocalOrdinal
MueLu::DefaultLocalOrdinal LocalOrdinal
Definition
MueLu_UseDefaultTypes.hpp:13
Scalar
MueLu::DefaultScalar Scalar
Definition
MueLu_UseDefaultTypes.hpp:12
GlobalOrdinal
MueLu::DefaultGlobalOrdinal GlobalOrdinal
Definition
MueLu_UseDefaultTypes.hpp:14
Node
MueLu::DefaultNode Node
Definition
MueLu_UseDefaultTypes.hpp:15
MueLu_UseShortNames.hpp
MueLu::Level
Class that holds all level-specific information.
Definition
MueLu_Level.hpp:63
MueLu::LowPrecisionFactory
Factory for converting matrices to half precision operators.
Definition
MueLu_LowPrecisionFactory_decl.hpp:29
MueLu::LowPrecisionFactory::GetValidParameterList
RCP< const ParameterList > GetValidParameterList() const
Return a const parameter list of valid parameters that setParameterList() will accept.
Definition
MueLu_LowPrecisionFactory_def.hpp:26
MueLu::LowPrecisionFactory::DeclareInput
void DeclareInput(Level ¤tLevel) const
Input.
Definition
MueLu_LowPrecisionFactory_def.hpp:38
MueLu::LowPrecisionFactory::Build
void Build(Level ¤tLevel) const
Build method.
Definition
MueLu_LowPrecisionFactory_def.hpp:45
MueLu::LowPrecisionFactory::LowPrecisionFactory
LowPrecisionFactory()
Definition
MueLu_LowPrecisionFactory_decl.hpp:37
MueLu::LowPrecisionFactory::~LowPrecisionFactory
virtual ~LowPrecisionFactory()
Destructor.
Definition
MueLu_LowPrecisionFactory_decl.hpp:40
MueLu::SingleLevelFactoryBase
Base class for factories that use one level (currentLevel).
Definition
MueLu_SingleLevelFactoryBase.hpp:26
MueLu::SingleLevelFactoryBase::SingleLevelFactoryBase
SingleLevelFactoryBase()
Constructor.
MueLu
Namespace for MueLu classes and methods.
Definition
MueLu_BrickAggregationFactory_decl.hpp:42
src
Misc
MueLu_LowPrecisionFactory_decl.hpp
Generated by
1.17.0