16#ifndef __Teko_ModALStrategy_hpp__
17#define __Teko_ModALStrategy_hpp__
19#include "Teuchos_RCP.hpp"
21#include "Thyra_LinearOpBase.hpp"
24#include "Teko_InverseFactory.hpp"
25#include "Teko_BlockPreconditionerFactory.hpp"
31class ModALPrecondState;
53 InvModALStrategy(
const Teuchos::RCP<InverseFactory>& factory, LinearOp& pressureMassMatrix);
56 const Teuchos::RCP<InverseFactory>& invFactS);
59 const Teuchos::RCP<InverseFactory>& invFactS, LinearOp& pressureMassMatrix);
140 virtual void setSymmetric(
bool isSymmetric) { isSymmetric_ = isSymmetric; }
146 Teuchos::RCP<InverseFactory> invFactoryA_;
147 Teuchos::RCP<InverseFactory> invFactoryS_;
148 LinearOp pressureMassMatrix_;
DiagonalType
Type describing the type of diagonal to construct.
An implementation of a state object for block preconditioners.
Strategy object for the modified augmented-Lagrangian (ModAL) Navier-Stokes preconditioner.
virtual ~InvModALStrategy()
Destructor.
void setPressureMassMatrix(const LinearOp &pressureMassMatrix)
virtual void buildState(const BlockedLinearOp &A, BlockPreconditionerState &state) const
virtual void initializeState(const BlockedLinearOp &A, ModALPrecondState *state) const
virtual LinearOp getInvA33p(BlockPreconditionerState &state) const
virtual LinearOp getInvS(BlockPreconditionerState &state) const
virtual LinearOp getInvA22p(BlockPreconditionerState &state) const
virtual LinearOp getInvA11p(BlockPreconditionerState &state) const
virtual void setSymmetric(bool isSymmetric)
InvModALStrategy()
Empty constructor.
void setGamma(double gamma)
virtual void computeInverses(const BlockedLinearOp &A, ModALPrecondState *state) const
Class for saving state variables for ModALPreconditionerFactory.