A strategy that takes a single inverse factory and uses that for all inverses. If no mass matrix is passed in the diagonal of the 1,1 block is used. More...
#include <Teko_InvLSCStrategy.hpp>
Public Member Functions | |
virtual void | setPressureStabMatrix (const Teko::LinearOp &psm) |
virtual void | initializeState (const BlockedLinearOp &A, LSCPrecondState *state) const |
Initialize the state object using this blocked linear operator. More... | |
void | computeInverses (const BlockedLinearOp &A, LSCPrecondState *state) const |
virtual void | setEigSolveParam (int sz) |
Set the number of power series iterations to use when finding the spectral radius. More... | |
virtual int | getEigSolveParam () |
Return the number of power series iterations to use when finding the spectral radius. More... | |
virtual void | setUseFullLDU (bool val) |
Set to true to use the Full LDU decomposition, false otherwise. More... | |
virtual void | setRowZeroing (bool val) |
Set to true to zero the rows of F when computing the spectral radius. More... | |
virtual void | setMassMatrix (const LinearOp &mass) |
set the mass matrix to use in computing the scaling More... | |
virtual void | setHScaling (const LinearOp &hScaling) |
virtual void | setHScaling (const MultiVector &hScaling) |
virtual void | setWScaling (const MultiVector &wScaling) |
Constructors | |
InvLSCStrategy () | |
InvLSCStrategy (const Teuchos::RCP< InverseFactory > &factory, bool rzn=false) | |
InvLSCStrategy (const Teuchos::RCP< InverseFactory > &factory, LinearOp &mass, bool rzn=false) | |
InvLSCStrategy (const Teuchos::RCP< InverseFactory > &invFactF, const Teuchos::RCP< InverseFactory > &invFactS, bool rzn=false) | |
InvLSCStrategy (const Teuchos::RCP< InverseFactory > &invFactF, const Teuchos::RCP< InverseFactory > &invFactS, LinearOp &mass, bool rzn=false) | |
virtual void | buildState (BlockedLinearOp &A, BlockPreconditionerState &state) const |
Functions inherited from LSCStrategy. More... | |
virtual LinearOp | getInvBQBt (const BlockedLinearOp &A, BlockPreconditionerState &state) const |
virtual LinearOp | getInvBHBt (const BlockedLinearOp &A, BlockPreconditionerState &state) const |
virtual LinearOp | getInvF (const BlockedLinearOp &A, BlockPreconditionerState &state) const |
virtual LinearOp | getOuterStabilization (const BlockedLinearOp &A, BlockPreconditionerState &state) const |
virtual LinearOp | getInnerStabilization (const BlockedLinearOp &, BlockPreconditionerState &) const |
virtual LinearOp | getInvMass (const BlockedLinearOp &A, BlockPreconditionerState &state) const |
virtual LinearOp | getHScaling (const BlockedLinearOp &A, BlockPreconditionerState &state) const |
virtual bool | useFullLDU () const |
virtual void | setSymmetric (bool isSymmetric) |
virtual void | initializeFromParameterList (const Teuchos::ParameterList &pl, const InverseLibrary &invLib) |
Initialize from a parameter list. More... | |
virtual Teuchos::RCP < Teuchos::ParameterList > | getRequestedParameters () const |
For assiting in construction of the preconditioner. More... | |
virtual bool | updateRequestedParameters (const Teuchos::ParameterList &pl) |
For assiting in construction of the preconditioner. More... | |
Public Member Functions inherited from Teko::NS::LSCStrategy | |
void | setRequestHandler (const Teuchos::RCP< RequestHandler > &rh) |
This method sets the request handler for this object. More... | |
Teuchos::RCP< RequestHandler > | getRequestHandler () const |
This method gets the request handler uses by this object. More... | |
A strategy that takes a single inverse factory and uses that for all inverses. If no mass matrix is passed in the diagonal of the 1,1 block is used.
A strategy that takes a single inverse factory and uses that for all inverses. Optionally the mass matrix can be passed in, if it is the diagonal is extracted and that is used to form the inverse approximation.
Definition at line 66 of file Teko_InvLSCStrategy.hpp.
|
virtual |
Functions inherited from LSCStrategy.
This informs the strategy object to build the state associated with this operator.
[in] | A | The linear operator to be preconditioned by LSC. |
[in] | state | State object for storying reusable information about the operator A. |
Implements Teko::NS::LSCStrategy.
Definition at line 123 of file Teko_InvLSCStrategy.cpp.
|
virtual |
Get the inverse of .
[in] | A | The linear operator to be preconditioned by LSC. |
[in] | state | State object for storying reusable information about the operator A. |
Implements Teko::NS::LSCStrategy.
Definition at line 159 of file Teko_InvLSCStrategy.cpp.
|
virtual |
Get the inverse of .
[in] | A | The linear operator to be preconditioned by LSC. |
[in] | state | State object for storying reusable information about the operator A. |
Implements Teko::NS::LSCStrategy.
Definition at line 164 of file Teko_InvLSCStrategy.cpp.
|
virtual |
Get the inverse of the block.
[in] | A | The linear operator to be preconditioned by LSC. |
[in] | state | State object for storying reusable information about the operator A. |
Implements Teko::NS::LSCStrategy.
Definition at line 169 of file Teko_InvLSCStrategy.cpp.
|
virtual |
Get the inverse for stabilizing the whole schur complement approximation.
[in] | A | The linear operator to be preconditioned by LSC. |
[in] | state | State object for storying reusable information about the operator A. |
Implements Teko::NS::LSCStrategy.
Definition at line 174 of file Teko_InvLSCStrategy.cpp.
|
inlinevirtual |
Get the inverse to stablized stabilizing the Schur complement approximation using a placement on the ``inside''. That is what is the value for . This quantity may be null.
[in] | A | The linear operator to be preconditioned by LSC. |
[in] | state | State object for storying reusable information about the operator A. |
Implements Teko::NS::LSCStrategy.
Definition at line 137 of file Teko_InvLSCStrategy.hpp.
|
virtual |
Get the inverse mass matrix.
[in] | A | The linear operator to be preconditioned by LSC. |
[in] | state | State object for storying reusable information about the operator A. |
Implements Teko::NS::LSCStrategy.
Definition at line 183 of file Teko_InvLSCStrategy.cpp.
|
virtual |
Get the scaling matrix.
[in] | A | The linear operator to be preconditioned by LSC. |
[in] | state | State object for storying reusable information about the operator A. |
Implements Teko::NS::LSCStrategy.
Definition at line 192 of file Teko_InvLSCStrategy.cpp.
|
inlinevirtual |
Should the approximation of the inverse use a full LDU decomposition, or is a upper triangular approximation sufficient.
Implements Teko::NS::LSCStrategy.
Definition at line 166 of file Teko_InvLSCStrategy.hpp.
|
inlinevirtual |
Tell strategy that this operator is supposed to be symmetric. Behavior of LSC is slightly different for non-symmetric case.
[in] | isSymmetric | Is this operator symmetric? |
Implements Teko::NS::LSCStrategy.
Definition at line 173 of file Teko_InvLSCStrategy.hpp.
|
virtual |
Initialize from a parameter list.
Reimplemented from Teko::NS::LSCStrategy.
Definition at line 434 of file Teko_InvLSCStrategy.cpp.
|
virtual |
For assiting in construction of the preconditioner.
Reimplemented from Teko::NS::LSCStrategy.
Definition at line 509 of file Teko_InvLSCStrategy.cpp.
|
virtual |
For assiting in construction of the preconditioner.
Reimplemented from Teko::NS::LSCStrategy.
Definition at line 542 of file Teko_InvLSCStrategy.cpp.
|
inlinevirtual |
When computing the Schur complement, use the passed in matrix instead of to stabilize the gradient operator.
Definition at line 189 of file Teko_InvLSCStrategy.hpp.
|
virtual |
Initialize the state object using this blocked linear operator.
Definition at line 199 of file Teko_InvLSCStrategy.cpp.
void Teko::NS::InvLSCStrategy::computeInverses | ( | const BlockedLinearOp & | A, |
LSCPrecondState * | state | ||
) | const |
Compute the inverses required for the LSC Schur complement
Definition at line 371 of file Teko_InvLSCStrategy.cpp.
|
inlinevirtual |
Set the number of power series iterations to use when finding the spectral radius.
Definition at line 206 of file Teko_InvLSCStrategy.hpp.
|
inlinevirtual |
Return the number of power series iterations to use when finding the spectral radius.
Definition at line 209 of file Teko_InvLSCStrategy.hpp.
|
inlinevirtual |
Set to true to use the Full LDU decomposition, false otherwise.
Definition at line 212 of file Teko_InvLSCStrategy.hpp.
|
inlinevirtual |
Set to true to zero the rows of F when computing the spectral radius.
Definition at line 215 of file Teko_InvLSCStrategy.hpp.
|
inlinevirtual |
set the mass matrix to use in computing the scaling
Definition at line 218 of file Teko_InvLSCStrategy.hpp.
|
inlinevirtual |
Set the -Scaling operator used in . It is expected that this will be a diagonal matrix.
Definition at line 223 of file Teko_InvLSCStrategy.hpp.
|
inlinevirtual |
Set the -Scaling operator used in . This method takes a vector and constructs the diagonal matrix.
Definition at line 228 of file Teko_InvLSCStrategy.hpp.
|
inlinevirtual |
Set the -Scaling vector used in . This method takes a vector.
Definition at line 234 of file Teko_InvLSCStrategy.hpp.