Teko  Version of the Day
 All Classes Files Functions Variables Pages
Teko_AddPreconditionerFactory.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_AddPreconditionerFactory_hpp__
11 #define __Teko_AddPreconditionerFactory_hpp__
12 
13 #include "Teko_BlockPreconditionerFactory.hpp"
14 #include "Teko_Utilities.hpp"
15 
16 namespace Teko {
17 
23  public:
24  AddPrecondState() {}
25 
26  Teuchos::RCP<BlockPreconditionerState> StateOne_;
27  Teuchos::RCP<BlockPreconditionerState> StateTwo_;
28 };
29 
35  public:
38  const Teuchos::RCP<const Teko::BlockPreconditionerFactory>& FirstFactory,
39  const Teuchos::RCP<const Teko::BlockPreconditionerFactory>& SecondFactory);
40 
42 
44  Teko::LinearOp buildPreconditionerOperator(Teko::BlockedLinearOp& blo,
45  Teko::BlockPreconditionerState& state) const;
46 
48  virtual Teuchos::RCP<Teko::PreconditionerState> buildPreconditionerState() const;
49 
50  protected:
52 
53  // class members
54  Teuchos::RCP<const Teko::BlockPreconditionerFactory> FirstFactory_;
55  Teuchos::RCP<const Teko::BlockPreconditionerFactory> SecondFactory_;
56 
58  virtual void initializeFromParameterList(const Teuchos::ParameterList& pl);
59 };
60 
61 } // end namespace Teko
62 
63 #endif
Teko::LinearOp buildPreconditionerOperator(Teko::BlockedLinearOp &blo, Teko::BlockPreconditionerState &state) const
Function inherited from Teko::BlockPreconditionerFactory.
virtual LinearOp buildPreconditionerOperator(BlockedLinearOp &blo, BlockPreconditionerState &state) const =0
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.
virtual void initializeFromParameterList(const Teuchos::ParameterList &pl)
Initialize from a parameter list.
An implementation of a state object for block preconditioners.
virtual Teuchos::RCP< Teko::PreconditionerState > buildPreconditionerState() const
Build the AddPrecondState object.