47 #ifndef __Teko_InvLSCStrategy_hpp__
48 #define __Teko_InvLSCStrategy_hpp__
50 #include "Teko_LSCStrategy.hpp"
55 class LSCPrecondState;
74 LinearOp & mass,
bool rzn=
false);
76 const Teuchos::RCP<InverseFactory> & invFactS,
79 const Teuchos::RCP<InverseFactory> & invFactS,
80 LinearOp & mass,
bool rzn=
false);
138 {
return Teuchos::null; }
174 { isSymmetric_ = isSymmetric; }
178 const InverseLibrary & invLib);
190 { userPresStabMat_ = psm; }
223 virtual void setHScaling(
const LinearOp & hScaling) { hScaling_ = hScaling; }
229 { hScaling_ = buildDiagonal(hScaling,
"H"); }
235 { wScaling_ = wScaling; }
238 LinearOp massMatrix_;
241 Teuchos::RCP<InverseFactory> invFactoryF_;
242 Teuchos::RCP<InverseFactory> invFactoryS_;
248 bool rowZeroingNeeded_;
253 DiagonalType scaleType_;
258 LinearOp userPresStabMat_;
259 mutable LinearOp hScaling_;
260 MultiVector wScaling_;
virtual LinearOp getInvF(const BlockedLinearOp &A, BlockPreconditionerState &state) const
virtual void setUseFullLDU(bool val)
Set to true to use the Full LDU decomposition, false otherwise.
virtual LinearOp getInnerStabilization(const BlockedLinearOp &, BlockPreconditionerState &) const
virtual void setRowZeroing(bool val)
Set to true to zero the rows of F when computing the spectral radius.
virtual Teuchos::RCP< Teuchos::ParameterList > getRequestedParameters() const
For assiting in construction of the preconditioner.
virtual LinearOp getOuterStabilization(const BlockedLinearOp &A, BlockPreconditionerState &state) const
virtual void setHScaling(const LinearOp &hScaling)
virtual LinearOp getHScaling(const BlockedLinearOp &A, BlockPreconditionerState &state) const
virtual LinearOp getInvBHBt(const BlockedLinearOp &A, BlockPreconditionerState &state) const
An implementation of a state object for block preconditioners.
virtual void setEigSolveParam(int sz)
Set the number of power series iterations to use when finding the spectral radius.
virtual void buildState(BlockedLinearOp &A, BlockPreconditionerState &state) const
Functions inherited from LSCStrategy.
virtual void initializeState(const BlockedLinearOp &A, LSCPrecondState *state) const
Initialize the state object using this blocked linear operator.
A strategy that takes a single inverse factory and uses that for all inverses. If no mass matrix is p...
virtual LinearOp getInvMass(const BlockedLinearOp &A, BlockPreconditionerState &state) const
void computeInverses(const BlockedLinearOp &A, LSCPrecondState *state) const
Preconditioner state for the LSC factory.
virtual bool updateRequestedParameters(const Teuchos::ParameterList &pl)
For assiting in construction of the preconditioner.
Strategy for driving LSCPreconditionerFactory.
virtual void initializeFromParameterList(const Teuchos::ParameterList &pl, const InverseLibrary &invLib)
Initialize from a parameter list.
virtual void setMassMatrix(const LinearOp &mass)
set the mass matrix to use in computing the scaling
virtual void setHScaling(const MultiVector &hScaling)
virtual int getEigSolveParam()
Return the number of power series iterations to use when finding the spectral radius.
virtual bool useFullLDU() const
virtual void setPressureStabMatrix(const Teko::LinearOp &psm)
virtual void setSymmetric(bool isSymmetric)
virtual void setWScaling(const MultiVector &wScaling)
virtual LinearOp getInvBQBt(const BlockedLinearOp &A, BlockPreconditionerState &state) const