MueLu
Version of the Day
Toggle main menu visibility
Loading...
Searching...
No Matches
MueLu_SmootherFactory_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_SMOOTHERFACTORY_DECL_HPP
11
#define MUELU_SMOOTHERFACTORY_DECL_HPP
12
13
#include "
MueLu_ConfigDefs.hpp
"
14
#include "
MueLu_SmootherFactory_fwd.hpp
"
15
16
#include "
MueLu_SmootherFactoryBase.hpp
"
17
18
#include "
MueLu_Level_fwd.hpp
"
19
#include "
MueLu_SmootherPrototype_fwd.hpp
"
20
#include "
MueLu_SmootherBase_fwd.hpp
"
21
22
namespace
MueLu
{
23
49
50
template
<
class
Scalar
= double,
51
class
LocalOrdinal
= int,
52
class
GlobalOrdinal
=
LocalOrdinal
,
53
class
Node
= Tpetra::KokkosClassic::DefaultNode::DefaultNodeType>
54
class
SmootherFactory
:
public
SmootherFactoryBase
{
55
public
:
56
typedef
Scalar
scalar_type
;
57
typedef
LocalOrdinal
local_ordinal_type
;
58
typedef
GlobalOrdinal
global_ordinal_type
;
59
typedef
Node
node_type
;
60
61
private
:
62
#undef MUELU_SMOOTHERFACTORY_SHORT
63
#include "
MueLu_UseShortNames.hpp
"
64
65
public
:
67
68
107
// Note: Teuchos::null as parameter allowed (= no smoother)
108
// Note: precondition: input smoother must not be Setup()
109
SmootherFactory
(RCP<SmootherPrototype> preAndPostSmootherPrototype = Teuchos::null);
110
111
SmootherFactory
(RCP<SmootherPrototype> preSmootherPrototype, RCP<SmootherPrototype> postSmootherPrototype);
112
113
virtual
~SmootherFactory
();
115
117
118
120
void
SetSmootherPrototypes
(RCP<SmootherPrototype> preAndPostSmootherPrototype);
121
123
void
SetSmootherPrototypes
(RCP<SmootherPrototype> preSmootherPrototype, RCP<SmootherPrototype> postSmootherPrototype);
124
126
void
GetSmootherPrototypes
(RCP<SmootherPrototype>& preSmootherPrototype, RCP<SmootherPrototype>& postSmootherPrototype)
const
;
127
129
130
131
RCP<const ParameterList>
GetValidParameterList
()
const
;
132
133
void
DeclareInput
(
Level
& currentLevel)
const
;
134
136
138
139
156
void
Build
(
Level
& currentLevel)
const
;
157
158
void
BuildSmoother
(
Level
& currentLevel,
const
PreOrPost
preOrPost =
BOTH
)
const
;
// Build()
159
161
163
164
166
std::string
description
()
const
;
167
169
using
MueLu::Describable::describe
;
// overloading, not hiding
170
void
describe
(Teuchos::FancyOStream& out,
const
VerbLevel
verbLevel =
Default
)
const
;
171
173
174
private
:
175
RCP<SmootherPrototype>
preSmootherPrototype_
;
176
RCP<SmootherPrototype>
postSmootherPrototype_
;
177
178
void
CheckPrototypes
()
const
;
179
181
182
};
// class SmootherFactory
183
184
}
// namespace MueLu
185
186
// TODO: doc: setup done twice if PostSmoother object != PreSmoother object and no adv. reused capability
187
#define MUELU_SMOOTHERFACTORY_SHORT
188
#endif
// MUELU_SMOOTHERFACTORY_DECL_HPP
MueLu_ConfigDefs.hpp
MueLu_Level_fwd.hpp
MueLu_SmootherBase_fwd.hpp
MueLu_SmootherFactory_fwd.hpp
MueLu_SmootherFactoryBase.hpp
MueLu_SmootherPrototype_fwd.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::Describable::describe
virtual void describe(Teuchos::FancyOStream &out_arg, const VerbLevel verbLevel=Default) const
Definition
MueLu_Describable.cpp:19
MueLu::Level
Class that holds all level-specific information.
Definition
MueLu_Level.hpp:63
MueLu::SmootherFactory::SetSmootherPrototypes
void SetSmootherPrototypes(RCP< SmootherPrototype > preSmootherPrototype, RCP< SmootherPrototype > postSmootherPrototype)
Set smoother prototypes.
Definition
MueLu_SmootherFactory_def.hpp:42
MueLu::SmootherFactory::GetSmootherPrototypes
void GetSmootherPrototypes(RCP< SmootherPrototype > &preSmootherPrototype, RCP< SmootherPrototype > &postSmootherPrototype) const
Get smoother prototypes.
Definition
MueLu_SmootherFactory_def.hpp:70
MueLu::SmootherFactory< Scalar, LocalOrdinal, GlobalOrdinal, Node >::global_ordinal_type
GlobalOrdinal global_ordinal_type
Definition
MueLu_SmootherFactory_decl.hpp:58
MueLu::SmootherFactory< Scalar, LocalOrdinal, GlobalOrdinal, Node >::preSmootherPrototype_
RCP< SmootherPrototype > preSmootherPrototype_
Definition
MueLu_SmootherFactory_decl.hpp:175
MueLu::SmootherFactory< Scalar, LocalOrdinal, GlobalOrdinal, Node >::node_type
Node node_type
Definition
MueLu_SmootherFactory_decl.hpp:59
MueLu::SmootherFactory< Scalar, LocalOrdinal, GlobalOrdinal, Node >::local_ordinal_type
LocalOrdinal local_ordinal_type
Definition
MueLu_SmootherFactory_decl.hpp:57
MueLu::SmootherFactory::CheckPrototypes
void CheckPrototypes() const
Definition
MueLu_SmootherFactory_def.hpp:62
MueLu::SmootherFactory::SetSmootherPrototypes
void SetSmootherPrototypes(RCP< SmootherPrototype > preAndPostSmootherPrototype)
Set smoother prototypes.
Definition
MueLu_SmootherFactory_def.hpp:36
MueLu::SmootherFactory::GetValidParameterList
RCP< const ParameterList > GetValidParameterList() const
Input.
Definition
MueLu_SmootherFactory_def.hpp:50
MueLu::SmootherFactory::description
std::string description() const
Return a simple one-line description of this object.
Definition
MueLu_SmootherFactory_def.hpp:211
MueLu::SmootherFactory::SmootherFactoryBase
MueLu::SmootherFactoryBase SmootherFactoryBase
MueLu::SmootherFactory::SmootherFactory
SmootherFactory(RCP< SmootherPrototype > preAndPostSmootherPrototype=Teuchos::null)
Constructor.
Definition
MueLu_SmootherFactory_def.hpp:25
MueLu::SmootherFactory::DeclareInput
void DeclareInput(Level ¤tLevel) const
Specifies the data that this class needs, and the factories that generate that data.
Definition
MueLu_SmootherFactory_def.hpp:77
MueLu::SmootherFactory::BuildSmoother
void BuildSmoother(Level ¤tLevel, const PreOrPost preOrPost=BOTH) const
Definition
MueLu_SmootherFactory_def.hpp:91
MueLu::SmootherFactory::SmootherFactory
SmootherFactory(RCP< SmootherPrototype > preSmootherPrototype, RCP< SmootherPrototype > postSmootherPrototype)
Definition
MueLu_SmootherFactory_def.hpp:30
MueLu::SmootherFactory< Scalar, LocalOrdinal, GlobalOrdinal, Node >::scalar_type
Scalar scalar_type
Definition
MueLu_SmootherFactory_decl.hpp:56
MueLu::SmootherFactory::~SmootherFactory
virtual ~SmootherFactory()
MueLu::SmootherFactory::describe
void describe(Teuchos::FancyOStream &out, const VerbLevel verbLevel=Default) const
Definition
MueLu_SmootherFactory_def.hpp:221
MueLu::SmootherFactory< Scalar, LocalOrdinal, GlobalOrdinal, Node >::postSmootherPrototype_
RCP< SmootherPrototype > postSmootherPrototype_
Definition
MueLu_SmootherFactory_decl.hpp:176
MueLu::SmootherFactory::Build
void Build(Level ¤tLevel) const
Creates pre and post smoothers.
Definition
MueLu_SmootherFactory_def.hpp:86
MueLu
Namespace for MueLu classes and methods.
Definition
MueLu_BrickAggregationFactory_decl.hpp:42
MueLu::VerbLevel
int VerbLevel
Definition
MueLu_VerbosityLevel.hpp:76
MueLu::Default
@ Default
Definition
MueLu_VerbosityLevel.hpp:70
MueLu::PreOrPost
PreOrPost
Definition
MueLu_Types.hpp:21
MueLu::BOTH
@ BOTH
Definition
MueLu_Types.hpp:24
src
Smoothers
MueLu_SmootherFactory_decl.hpp
Generated by
1.17.0