Teko
Version of the Day
Toggle main menu visibility
Loading...
Searching...
No Matches
src
Teko_LU2x2DiagonalStrategy.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_LU2x2DiagonalStrategy_hpp__
11
#define __Teko_LU2x2DiagonalStrategy_hpp__
12
13
#include "Teko_LU2x2Strategy.hpp"
14
15
// Teuchos includes
16
#include "Teuchos_Time.hpp"
17
18
namespace
Teko {
19
29
class
LU2x2DiagonalStrategy
:
public
LU2x2Strategy
{
30
public
:
32
LU2x2DiagonalStrategy
();
33
35
LU2x2DiagonalStrategy
(
const
Teuchos::RCP<InverseFactory>& invFA,
36
const
Teuchos::RCP<InverseFactory>& invS);
37
39
virtual
~LU2x2DiagonalStrategy
() {}
40
42
virtual
const
Teko::LinearOp
getHatInvA00
(
const
Teko::BlockedLinearOp& A,
43
BlockPreconditionerState
& state)
const
;
44
46
virtual
const
Teko::LinearOp
getTildeInvA00
(
const
Teko::BlockedLinearOp& A,
47
BlockPreconditionerState
& state)
const
;
48
51
virtual
const
Teko::LinearOp
getInvS
(
const
Teko::BlockedLinearOp& A,
52
BlockPreconditionerState
& state)
const
;
53
65
virtual
void
initializeFromParameterList
(
const
Teuchos::ParameterList& settings,
66
const
InverseLibrary& invLib);
67
68
protected
:
71
static
void
buildTimers
();
72
79
void
initializeState
(
const
Teko::BlockedLinearOp& A,
BlockPreconditionerState
& state)
const
;
80
81
// how to invert the matrices
82
Teuchos::RCP<InverseFactory> invFactoryA00_;
// for \tilde{A_00}\f$
83
Teuchos::RCP<InverseFactory> invFactoryS_;
84
85
DiagonalType
a00InverseType_;
86
87
static
Teuchos::RCP<Teuchos::Time> initTimer_;
88
static
Teuchos::RCP<Teuchos::Time> invSTimer_;
89
static
Teuchos::RCP<Teuchos::Time> invA00Timer_;
90
static
Teuchos::RCP<Teuchos::Time> opsTimer_;
91
};
92
93
}
// end namespace Teko
94
95
#endif
Teko::DiagonalType
DiagonalType
Definition
Teko_Utilities.hpp:809
Teko::BlockPreconditionerState
An implementation of a state object for block preconditioners.
Definition
Teko_BlockPreconditionerFactory.hpp:43
Teko::LU2x2DiagonalStrategy::getInvS
virtual const Teko::LinearOp getInvS(const Teko::BlockedLinearOp &A, BlockPreconditionerState &state) const
Definition
Teko_LU2x2DiagonalStrategy.cpp:64
Teko::LU2x2DiagonalStrategy::getTildeInvA00
virtual const Teko::LinearOp getTildeInvA00(const Teko::BlockedLinearOp &A, BlockPreconditionerState &state) const
Definition
Teko_LU2x2DiagonalStrategy.cpp:55
Teko::LU2x2DiagonalStrategy::buildTimers
static void buildTimers()
Definition
Teko_LU2x2DiagonalStrategy.cpp:23
Teko::LU2x2DiagonalStrategy::~LU2x2DiagonalStrategy
virtual ~LU2x2DiagonalStrategy()
Destructor (does nothing).
Definition
Teko_LU2x2DiagonalStrategy.hpp:39
Teko::LU2x2DiagonalStrategy::getHatInvA00
virtual const Teko::LinearOp getHatInvA00(const Teko::BlockedLinearOp &A, BlockPreconditionerState &state) const
Definition
Teko_LU2x2DiagonalStrategy.cpp:47
Teko::LU2x2DiagonalStrategy::LU2x2DiagonalStrategy
LU2x2DiagonalStrategy()
default Constructor
Definition
Teko_LU2x2DiagonalStrategy.cpp:37
Teko::LU2x2DiagonalStrategy::initializeState
void initializeState(const Teko::BlockedLinearOp &A, BlockPreconditionerState &state) const
Definition
Teko_LU2x2DiagonalStrategy.cpp:71
Teko::LU2x2DiagonalStrategy::initializeFromParameterList
virtual void initializeFromParameterList(const Teuchos::ParameterList &settings, const InverseLibrary &invLib)
This function builds the internals of the state from a parameter list.
Definition
Teko_LU2x2DiagonalStrategy.cpp:143
Teko::LU2x2Strategy
Abstract strategy for computing inv(F) and inv(S) in the LU2x2PreconditionerFactory.
Definition
Teko_LU2x2Strategy.hpp:65
Generated by
1.17.0