Teko  Version of the Day
 All Classes Files Functions Variables Pages
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 
18 namespace 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
virtual LinearOp buildPreconditionerOperator(LinearOp &lo, PreconditionerState &state) const
Function that is called to build the preconditioner for the linear operator that is passed in...
virtual void initializeFromParameterList(const Teuchos::ParameterList &settings)
This function builds the internals of the preconditioner factory from a parameter list...
Abstract class which block preconditioner factories in Teko should be based on.
virtual ~DiagonallyScaledPreconditionerFactory()
default destructor: prints out diagnostic string
DiagonallyScaledPreconditionerFactory()
Default constructor, for use with the AutoClone class.
An implementation of a state object preconditioners.
Using an absolute row sum approximation of the matrix this factory creates an inverse using the expli...