Teko Version of the Day
Loading...
Searching...
No Matches
Teko_DiagonallyScaledPreconditionerFactory.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_DiagonallyScaledPreconditionerFactory_hpp__
11#define __Teko_DiagonallyScaledPreconditionerFactory_hpp__
12
13#include "Teuchos_Time.hpp"
14
15// Teko includes
16#include "Teko_PreconditionerFactory.hpp"
17
18namespace Teko {
19
47 public:
48 typedef enum { COLUMN_SCALING, ROW_SCALING } ScalingType;
49
52
57 DiagonallyScaledPreconditionerFactory(const Teuchos::RCP<Teko::InverseFactory>& invFactory,
58 ScalingType columnScaling = COLUMN_SCALING,
59 DiagonalType diagonalType = AbsRowSum);
60
63
77 virtual LinearOp buildPreconditionerOperator(LinearOp& lo, PreconditionerState& state) const;
78
80
81
92 virtual void initializeFromParameterList(const Teuchos::ParameterList& settings);
93
95
96 private:
97 Teuchos::RCP<Teko::InverseFactory> invFactory_;
98 ScalingType scalingType_;
99 DiagonalType diagonalType_;
100};
101
102} // end namespace Teko
103
104#endif
@ AbsRowSum
Specifies that the diagonal entry is .
DiagonallyScaledPreconditionerFactory()
Default constructor, for use with the AutoClone class.
virtual ~DiagonallyScaledPreconditionerFactory()
default destructor: prints out diagnostic string
virtual void initializeFromParameterList(const Teuchos::ParameterList &settings)
This function builds the internals of the preconditioner factory from a parameter list.
virtual LinearOp buildPreconditionerOperator(LinearOp &lo, PreconditionerState &state) const
Function that is called to build the preconditioner for the linear operator that is passed in.
Abstract class which block preconditioner factories in Teko should be based on.
An implementation of a state object preconditioners.