47 #ifndef __Teko_LSCPreconditionerFactory_hpp__
48 #define __Teko_LSCPreconditionerFactory_hpp__
50 #include "Teko_BlockPreconditionerFactory.hpp"
51 #include "Teko_LSCStrategy.hpp"
82 InverseLinearOp invBQBtmC_;
87 InverseLinearOp invBHBtmC_;
107 LSCPreconditionerFactory(
const LinearOp& invF,
const LinearOp& invBQBtmC,
const LinearOp& invD,
108 const LinearOp& invMass);
111 LSCPreconditionerFactory(
const LinearOp& invF,
const LinearOp& invBQBtmC,
112 const LinearOp& invMass);
115 LSCPreconditionerFactory(
const Teuchos::RCP<LSCStrategy>& strategy);
118 LSCPreconditionerFactory();
122 virtual LinearOp buildPreconditionerOperator(BlockedLinearOp& blo,
126 virtual RCP<PreconditionerState> buildPreconditionerState()
const {
131 virtual Teuchos::RCP<Teuchos::ParameterList> getRequestedParameters()
const;
134 virtual bool updateRequestedParameters(
const Teuchos::ParameterList& pl);
140 Teuchos::RCP<LSCStrategy> invOpsStrategy_;
144 virtual void initializeFromParameterList(
const Teuchos::ParameterList& pl);
159 static RCP<LSCStrategy> buildStrategy(
const std::string& name,
160 const Teuchos::ParameterList& settings,
161 const RCP<const InverseLibrary>& invLib,
162 const RCP<RequestHandler>& rh);
177 static void addStrategy(
const std::string& name,
const RCP<Cloneable>& clone);
184 static void initializeStrategyBuilder();
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.
An implementation of a state object for block preconditioners.
LinearOp invMass_
Inverse mass operator ( )
Preconditioner state for the LSC factory.