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_;
101class 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();
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.
Preconditioner state for the LSC factory.
LinearOp invMass_
Inverse mass operator ( )