MueLu
Version of the Day
Toggle main menu visibility
Loading...
Searching...
No Matches
MueLu_BlockedRAPFactory_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_BLOCKEDRAPFACTORY_DECL_HPP
11
#define MUELU_BLOCKEDRAPFACTORY_DECL_HPP
12
13
#include <Xpetra_Matrix_fwd.hpp>
14
#include <Xpetra_CrsMatrix_fwd.hpp>
15
#include <Xpetra_BlockedCrsMatrix_fwd.hpp>
16
#include <Xpetra_MatrixFactory_fwd.hpp>
17
18
#include "
MueLu_ConfigDefs.hpp
"
19
#include "
MueLu_RAPFactory_fwd.hpp
"
20
21
#include "
MueLu_Level_fwd.hpp
"
22
#include "
MueLu_FactoryBase_fwd.hpp
"
23
#include "
MueLu_PerfUtils_fwd.hpp
"
24
#include "
MueLu_TwoLevelFactoryBase.hpp
"
25
26
namespace
MueLu
{
31
template
<
class
Scalar
=
DefaultScalar
,
32
class
LocalOrdinal
=
DefaultLocalOrdinal
,
33
class
GlobalOrdinal
=
DefaultGlobalOrdinal
,
34
class
Node
=
DefaultNode
>
35
class
BlockedRAPFactory
:
public
TwoLevelFactoryBase
{
36
#undef MUELU_BLOCKEDRAPFACTORY_SHORT
37
#include "
MueLu_UseShortNames.hpp
"
38
39
public
:
41
42
43
BlockedRAPFactory
();
44
45
virtual
~BlockedRAPFactory
() =
default
;
47
49
50
51
RCP<const ParameterList>
GetValidParameterList
()
const override
;
52
53
void
DeclareInput
(
Level
&fineLevel,
Level
&coarseLevel)
const override
;
54
56
58
59
void
Build
(
Level
&fineLevel,
Level
&coarseLevel)
const override
;
61
63
64
66
void
SetRepairZeroDiagonal
(
bool
const
&repair) {
67
repairZeroDiagonals_
= repair;
68
if
(repair)
checkAc_
=
true
;
// make sure that plausibility check is performed. Otherwise SetRepairZeroDiagonal(true) has no effect.
69
}
70
72
void
SetPlausibilityCheck
(
bool
const
&check) {
73
checkAc_
= check;
74
}
75
77
82
void
AddTransferFactory
(
const
RCP<const FactoryBase> &factory);
83
84
// TODO add a function to remove a specific transfer factory?
85
87
size_t
NumTransferFactories
()
const
{
return
transferFacts_
.size(); }
88
90
91
private
:
94
static
void
CheckMainDiagonal
(RCP<BlockedCrsMatrix> &bAc,
bool
repairZeroDiagonals =
false
);
95
98
bool
checkAc_
;
99
103
bool
repairZeroDiagonals_
;
104
106
108
std::vector<RCP<const FactoryBase> >
transferFacts_
;
109
111
112
};
// class BlockedRAPFactory
113
114
}
// namespace MueLu
115
116
#define MUELU_BLOCKEDRAPFACTORY_SHORT
117
#endif
// MUELU_BLOCKEDRAPFACTORY_DECL_HPP
MueLu_ConfigDefs.hpp
MueLu_FactoryBase_fwd.hpp
MueLu_Level_fwd.hpp
MueLu_PerfUtils_fwd.hpp
MueLu_RAPFactory_fwd.hpp
MueLu_TwoLevelFactoryBase.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::BlockedRAPFactory::SetPlausibilityCheck
void SetPlausibilityCheck(bool const &check)
Indicate that a simple plausibility check shall be done for Ac after building RAP.
Definition
MueLu_BlockedRAPFactory_decl.hpp:72
MueLu::BlockedRAPFactory< Scalar, LocalOrdinal, GlobalOrdinal, Node >::checkAc_
bool checkAc_
Definition
MueLu_BlockedRAPFactory_decl.hpp:98
MueLu::BlockedRAPFactory::BlockedRAPFactory
BlockedRAPFactory()
Definition
MueLu_BlockedRAPFactory_def.hpp:28
MueLu::BlockedRAPFactory::SetRepairZeroDiagonal
void SetRepairZeroDiagonal(bool const &repair)
Indicate that zero entries on the diagonal of Ac shall be repaired (i.e. if A(i,i) == 0....
Definition
MueLu_BlockedRAPFactory_decl.hpp:66
MueLu::BlockedRAPFactory::NumTransferFactories
size_t NumTransferFactories() const
Returns number of transfer factories.
Definition
MueLu_BlockedRAPFactory_decl.hpp:87
MueLu::BlockedRAPFactory::CheckMainDiagonal
static void CheckMainDiagonal(RCP< BlockedCrsMatrix > &bAc, bool repairZeroDiagonals=false)
Definition
MueLu_BlockedRAPFactory_def.hpp:137
MueLu::BlockedRAPFactory::~BlockedRAPFactory
virtual ~BlockedRAPFactory()=default
MueLu::BlockedRAPFactory::Build
void Build(Level &fineLevel, Level &coarseLevel) const override
Build an object with this factory.
Definition
MueLu_BlockedRAPFactory_def.hpp:61
MueLu::BlockedRAPFactory::DeclareInput
void DeclareInput(Level &fineLevel, Level &coarseLevel) const override
Input.
Definition
MueLu_BlockedRAPFactory_def.hpp:47
MueLu::BlockedRAPFactory< Scalar, LocalOrdinal, GlobalOrdinal, Node >::transferFacts_
std::vector< RCP< const FactoryBase > > transferFacts_
Definition
MueLu_BlockedRAPFactory_decl.hpp:108
MueLu::BlockedRAPFactory::GetValidParameterList
RCP< const ParameterList > GetValidParameterList() const override
Return a const parameter list of valid parameters that setParameterList() will accept.
Definition
MueLu_BlockedRAPFactory_def.hpp:33
MueLu::BlockedRAPFactory< Scalar, LocalOrdinal, GlobalOrdinal, Node >::repairZeroDiagonals_
bool repairZeroDiagonals_
Definition
MueLu_BlockedRAPFactory_decl.hpp:103
MueLu::BlockedRAPFactory::AddTransferFactory
void AddTransferFactory(const RCP< const FactoryBase > &factory)
Add transfer factory in the end of list of transfer factories in RepartitionAcFactory.
Definition
MueLu_BlockedRAPFactory_def.hpp:178
MueLu::Level
Class that holds all level-specific information.
Definition
MueLu_Level.hpp:63
MueLu::TwoLevelFactoryBase::TwoLevelFactoryBase
TwoLevelFactoryBase()
Constructor.
MueLu
Namespace for MueLu classes and methods.
Definition
MueLu_BrickAggregationFactory_decl.hpp:42
MueLu::DefaultNode
Tpetra::KokkosClassic::DefaultNode::DefaultNodeType DefaultNode
Definition
MueLu_Details_DefaultTypes.hpp:32
MueLu::DefaultGlobalOrdinal
int DefaultGlobalOrdinal
Definition
MueLu_Details_DefaultTypes.hpp:29
MueLu::DefaultLocalOrdinal
int DefaultLocalOrdinal
Definition
MueLu_Details_DefaultTypes.hpp:22
MueLu::DefaultScalar
Tpetra::Details::DefaultTypes::scalar_type DefaultScalar
Definition
MueLu_Details_DefaultTypes.hpp:20
src
Misc
MueLu_BlockedRAPFactory_decl.hpp
Generated by
1.17.0