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_;
101 class LSCPreconditionerFactory
108 LSCPreconditionerFactory(
const LinearOp & invF,
const LinearOp & invBQBtmC,
109 const LinearOp & invD,
const LinearOp & invMass);
112 LSCPreconditionerFactory(
const LinearOp & invF,
113 const LinearOp & invBQBtmC,
114 const LinearOp & invMass);
117 LSCPreconditionerFactory(
const Teuchos::RCP<LSCStrategy> & strategy);
120 LSCPreconditionerFactory();
127 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>
160 buildStrategy(
const std::string & name,
161 const Teuchos::ParameterList & settings,
162 const RCP<const InverseLibrary> & invLib,
163 const RCP<RequestHandler> & rh);
178 static void addStrategy(
const std::string & name,
const RCP<Cloneable> & clone);
185 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.