10#ifndef __Teko_LU2x2PreconditionerFactory_hpp__
11#define __Teko_LU2x2PreconditionerFactory_hpp__
13#include "Teuchos_RCP.hpp"
15#include "Teko_BlockPreconditionerFactory.hpp"
16#include "Teko_LU2x2Strategy.hpp"
110 LU2x2PreconditionerFactory(LinearOp& invA00, LinearOp& invS);
113 LU2x2PreconditionerFactory(LinearOp& hatInvA00, LinearOp& tildeInvA00, LinearOp& invS);
123 LU2x2PreconditionerFactory(
const Teuchos::RCP<LU2x2Strategy>& strategy);
129 LU2x2PreconditionerFactory();
139 LinearOp buildPreconditionerOperator(BlockedLinearOp& blo, BlockPreconditionerState& state)
const;
153 virtual void initializeFromParameterList(
const Teuchos::ParameterList& settings);
169 virtual Teuchos::RCP<Teuchos::ParameterList> getRequestedParameters()
const;
184 virtual bool updateRequestedParameters(
const Teuchos::ParameterList& pl);
198 virtual bool useFullLDU()
const {
return useFullLDU_; }
210 virtual void setFullLDU(
bool value) { useFullLDU_ = value; }
216 Teuchos::RCP<LU2x2Strategy> invOpsStrategy_;
237 static RCP<LU2x2Strategy> buildStrategy(
const std::string& name,
238 const Teuchos::ParameterList& settings,
239 const RCP<const InverseLibrary>& invLib,
240 const RCP<RequestHandler>& rh);
255 static void addStrategy(
const std::string& name,
const RCP<Cloneable>& clone);
259 static CloneFactory<LU2x2Strategy> strategyBuilder_;
262 static void initializeStrategyBuilder();
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.