Teko Version of the Day
Loading...
Searching...
No Matches
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
16namespace Teko {
17
22class AddPrecondState : public Teko::BlockPreconditionerState {
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,
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
virtual Teuchos::RCP< Teko::PreconditionerState > buildPreconditionerState() const
Build the AddPrecondState object.
AddPreconditionerFactory(const Teuchos::RCP< const Teko::BlockPreconditionerFactory > &FirstFactory, const Teuchos::RCP< const Teko::BlockPreconditionerFactory > &SecondFactory)
Constructor.
Teko::LinearOp buildPreconditionerOperator(Teko::BlockedLinearOp &blo, Teko::BlockPreconditionerState &state) const
Function inherited from Teko::BlockPreconditionerFactory.
virtual void initializeFromParameterList(const Teuchos::ParameterList &pl)
Initialize from a parameter list.
Abstract class which block preconditioner factories in Teko should be based on.
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.
An implementation of a state object for block preconditioners.