Teko
Version of the Day
Toggle main menu visibility
Loading...
Searching...
No Matches
src
NS
Teko_StaticLSCStrategy.hpp
1
// @HEADER
2
// *****************************************************************************
3
// Teko: A package for block and physics based preconditioning
4
//
5
// Copyright 2010 NTESS and the Teko contributors.
6
// SPDX-License-Identifier: BSD-3-Clause
7
// *****************************************************************************
8
// @HEADER
9
10
#ifndef __Teko_StaticLSCStrategy_hpp__
11
#define __Teko_StaticLSCStrategy_hpp__
12
13
#include "Teko_LSCStrategy.hpp"
14
15
namespace
Teko {
16
namespace
NS {
17
18
class
LSCPrecondState
;
// forward declaration
19
20
// constant, not very flexible strategy for driving LSCPreconditioenrFactory
21
class
StaticLSCStrategy :
public
LSCStrategy
{
22
public
:
23
// Staiblized constructor
24
StaticLSCStrategy(
const
LinearOp& invF,
const
LinearOp& invBQBtmC,
const
LinearOp& invD,
25
const
LinearOp& invMass);
26
27
// Stable constructor
28
StaticLSCStrategy(
const
LinearOp& invF,
const
LinearOp& invBQBtmC,
const
LinearOp& invMass);
29
37
virtual
void
buildState(BlockedLinearOp&
/* A */
, BlockPreconditionerState&
/* state */
)
const
{}
38
47
virtual
LinearOp getInvF(
const
BlockedLinearOp&
/* A */
,
48
BlockPreconditionerState&
/* state */
)
const
{
49
return
invF_;
50
}
51
60
virtual
LinearOp getInvBQBt(
const
BlockedLinearOp&
/* A */
,
61
BlockPreconditionerState&
/* state */
)
const
{
62
return
invBQBtmC_;
63
}
64
73
virtual
LinearOp getInvBHBt(
const
BlockedLinearOp&
/* A */
,
74
BlockPreconditionerState&
/* state */
)
const
{
75
return
invBQBtmC_;
76
}
77
86
virtual
LinearOp getOuterStabilization(
const
BlockedLinearOp&
/* A */
,
87
BlockPreconditionerState&
/* state */
)
const
{
88
return
invD_;
89
}
90
91
virtual
LinearOp getInnerStabilization(
const
BlockedLinearOp&
/* A */
,
92
BlockPreconditionerState&
/* state */
)
const
{
93
return
Teuchos::null;
94
}
95
104
virtual
LinearOp getInvMass(
const
BlockedLinearOp&
/* A */
,
105
BlockPreconditionerState&
/* state */
)
const
{
106
return
invMass_;
107
}
108
117
virtual
LinearOp getHScaling(
const
BlockedLinearOp&
/* A */
,
118
BlockPreconditionerState&
/* state */
)
const
{
119
return
invMass_;
120
}
121
128
virtual
bool
useFullLDU
()
const
{
return
false
; }
129
135
virtual
void
setSymmetric(
bool
/* isSymmetric */
) {}
136
137
protected
:
138
// protected memebers
139
LinearOp invF_;
140
LinearOp invBQBtmC_;
141
LinearOp invD_;
142
LinearOp invMass_;
143
};
144
145
}
// end namespace NS
146
}
// end namespace Teko
147
148
#endif
Teko::NS::LSCPrecondState
Preconditioner state for the LSC factory.
Definition
Teko_LSCPreconditionerFactory.hpp:27
Teko::NS::LSCStrategy
Strategy for driving LSCPreconditionerFactory.
Definition
Teko_LSCStrategy.hpp:82
Teko::NS::LSCStrategy::useFullLDU
virtual bool useFullLDU() const =0
Generated by
1.17.0