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"
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);
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.
An implementation of a state object for block preconditioners.
Construct a preconditioner using a LDU dcomposition of a block 2x2 matrix.
virtual Teuchos::RCP< Teuchos::ParameterList > getRequestedParameters() const
Request the additional parameters this preconditioner factory needs.
LU2x2PreconditionerFactory()
Default constructor for use with AutoClone.
virtual void initializeFromParameterList(const Teuchos::ParameterList &settings)
This function builds the internals of the preconditioner factory from a parameter list.
virtual void setFullLDU(bool value)
Set the type of inverse operation to use.
LU2x2PreconditionerFactory(const Teuchos::RCP< LU2x2Strategy > &strategy)
Constructor that permits the most generality in building and .
Teuchos::RCP< LU2x2Strategy > invOpsStrategy_
some members
virtual bool updateRequestedParameters(const Teuchos::ParameterList &pl)
Update this object with the fields from a parameter list.
static RCP< LU2x2Strategy > buildStrategy(const std::string &name, const Teuchos::ParameterList &settings, const RCP< const InverseLibrary > &invLib, const RCP< RequestHandler > &rh)
Builder function for creating strategies.
virtual bool useFullLDU() const
Determine the type of inverse operator to build.
static void addStrategy(const std::string &name, const RCP< Cloneable > &clone)
Add a strategy to the builder. This is done using the clone pattern.
LinearOp buildPreconditionerOperator(BlockedLinearOp &blo, BlockPreconditionerState &state) const
Create the LU 2x2 preconditioner operator.