Teko
Version of the Day
Toggle main menu visibility
Loading...
Searching...
No Matches
src
Teko_DiagnosticPreconditionerFactory.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_DiagnosticPreconditionerFactory_hpp__
11
#define __Teko_DiagnosticPreconditionerFactory_hpp__
12
13
#include "Teuchos_Time.hpp"
14
15
// Teko includes
16
#include "Teko_PreconditionerFactory.hpp"
17
18
namespace
Teko {
19
37
class
DiagnosticPreconditionerFactory
:
public
virtual
Teko::PreconditionerFactory
{
38
public
:
40
DiagnosticPreconditionerFactory
();
41
48
DiagnosticPreconditionerFactory
(
const
Teuchos::RCP<Teko::InverseFactory>& invFactory,
49
const
std::string& label,
50
const
Teuchos::RCP<std::ostream>& os = Teuchos::null,
51
bool
printResidual =
false
);
52
60
DiagnosticPreconditionerFactory
(
const
Teuchos::RCP<Teko::InverseFactory>& invFactory,
61
const
Teuchos::RCP<Teko::InverseFactory>& precFactory,
62
const
std::string& label,
63
const
Teuchos::RCP<std::ostream>& os = Teuchos::null,
64
bool
printResidual =
false
);
65
67
virtual
~DiagnosticPreconditionerFactory
();
68
82
virtual
LinearOp
buildPreconditionerOperator
(LinearOp& lo,
PreconditionerState
& state)
const
;
83
85
86
97
virtual
void
initializeFromParameterList
(
const
Teuchos::ParameterList& settings);
98
111
virtual
Teuchos::RCP<Teuchos::ParameterList>
getRequestedParameters
()
const
;
112
124
virtual
bool
updateRequestedParameters
(
const
Teuchos::ParameterList& pl);
125
127
128
int
numInitialBuilds()
const
{
return
buildTimer_->numCalls(); }
129
double
totalInitialBuildTime()
const
;
130
131
int
numRebuilds()
const
{
return
rebuildTimer_->numCalls(); }
132
double
totalRebuildTime()
const
;
133
134
private
:
135
void
initTimers(
const
std::string& label);
136
137
Teuchos::RCP<std::ostream> outputStream_;
138
Teuchos::RCP<Teko::InverseFactory> invFactory_;
139
Teuchos::RCP<Teko::InverseFactory> precFactory_;
140
std::string diagString_;
141
bool
printResidual_;
142
143
mutable
Teuchos::RCP<Teuchos::Time>
144
buildTimer_;
// only first pass construction time (no rebuild)
145
mutable
Teuchos::RCP<Teuchos::Time>
146
precBuildTimer_;
// only first pass construction time (no rebuild)
147
mutable
Teuchos::RCP<Teuchos::Time> rebuildTimer_;
// rebuild-construction timer (no build)
148
mutable
Teuchos::RCP<Teuchos::Time> precRebuildTimer_;
// rebuild-construction timer (no build)
149
};
150
151
}
// end namespace Teko
152
153
#endif
Teko::DiagnosticPreconditionerFactory::~DiagnosticPreconditionerFactory
virtual ~DiagnosticPreconditionerFactory()
default destructor: prints out diagnostic string
Definition
Teko_DiagnosticPreconditionerFactory.cpp:68
Teko::DiagnosticPreconditionerFactory::updateRequestedParameters
virtual bool updateRequestedParameters(const Teuchos::ParameterList &pl)
Update this object with the fields from a parameter list.
Definition
Teko_DiagnosticPreconditionerFactory.cpp:241
Teko::DiagnosticPreconditionerFactory::initializeFromParameterList
virtual void initializeFromParameterList(const Teuchos::ParameterList &settings)
This function builds the internals of the preconditioner factory from a parameter list.
Definition
Teko_DiagnosticPreconditionerFactory.cpp:197
Teko::DiagnosticPreconditionerFactory::DiagnosticPreconditionerFactory
DiagnosticPreconditionerFactory()
Default constructor, for use with the AutoClone class.
Definition
Teko_DiagnosticPreconditionerFactory.cpp:21
Teko::DiagnosticPreconditionerFactory::getRequestedParameters
virtual Teuchos::RCP< Teuchos::ParameterList > getRequestedParameters() const
Request the additional parameters this preconditioner factory needs.
Definition
Teko_DiagnosticPreconditionerFactory.cpp:229
Teko::DiagnosticPreconditionerFactory::buildPreconditionerOperator
virtual LinearOp buildPreconditionerOperator(LinearOp &lo, PreconditionerState &state) const
Function that is called to build the preconditioner for the linear operator that is passed in.
Definition
Teko_DiagnosticPreconditionerFactory.cpp:120
Teko::PreconditionerFactory
Abstract class which block preconditioner factories in Teko should be based on.
Definition
Teko_PreconditionerFactory.hpp:46
Teko::PreconditionerState
An implementation of a state object preconditioners.
Definition
Teko_PreconditionerState.hpp:34
Generated by
1.17.0