10#ifndef __Teko_LSCPreconditionerFactory_hpp__
11#define __Teko_LSCPreconditionerFactory_hpp__
13#include "Teko_BlockPreconditionerFactory.hpp"
14#include "Teko_LSCStrategy.hpp"
45 InverseLinearOp invBQBtmC_;
50 InverseLinearOp invBHBtmC_;
70 LSCPreconditionerFactory(
const LinearOp& invF,
const LinearOp& invBQBtmC,
const LinearOp& invD,
71 const LinearOp& invMass);
74 LSCPreconditionerFactory(
const LinearOp& invF,
const LinearOp& invBQBtmC,
75 const LinearOp& invMass);
78 LSCPreconditionerFactory(
const Teuchos::RCP<LSCStrategy>& strategy);
81 LSCPreconditionerFactory();
85 virtual LinearOp buildPreconditionerOperator(BlockedLinearOp& blo,
97 virtual bool updateRequestedParameters(
const Teuchos::ParameterList& pl);
103 Teuchos::RCP<LSCStrategy> invOpsStrategy_;
107 virtual void initializeFromParameterList(
const Teuchos::ParameterList& pl);
122 static RCP<LSCStrategy> buildStrategy(
const std::string& name,
123 const Teuchos::ParameterList& settings,
124 const RCP<const InverseLibrary>& invLib,
125 const RCP<RequestHandler>& rh);
140 static void addStrategy(
const std::string& name,
const RCP<Cloneable>& clone);
147 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.
virtual RCP< PreconditionerState > buildPreconditionerState() const
Function that permits the construction of an arbitrary BlockPreconditionerState object.
An implementation of a state object for block preconditioners.
Preconditioner state for the LSC factory.
LinearOp invMass_
Inverse mass operator ( ).
virtual Teuchos::RCP< Teuchos::ParameterList > getRequestedParameters() const
Request the additional parameters this preconditioner factory needs.