Modified augmented Lagrangian-based preconditioner for incompressible Navier-Stokes equations. More...
#include <Teko_ModALPreconditionerFactory.hpp>

Public Member Functions | |
| void | setPressureMassMatrix (const LinearOp &pressureMassMatrix) |
| void | setGamma (double gamma) |
| virtual LinearOp | buildPreconditionerOperator (BlockedLinearOp &alOp, BlockPreconditionerState &state) const |
| virtual Teuchos::RCP < PreconditionerState > | buildPreconditionerState () const |
Modified augmented Lagrangian-based preconditioner for incompressible Navier-Stokes equations.
This class implements sparse matrix vector multiplication for augmented Lagrangian-based preconditioners. Details can be found in the following papers:
[1] Benzi, M. A. Olshanskii and Z. Wang, Modified Augmented Lagrangian Preconditioners for the Incompressible Navier-Stokes Equations, International Journal for Numerical Methods in Fluids, 66 (2011), pp. 486-508.
[2] M. Benzi and Z. Wang, Analysis of Augmented Lagrangian-Based Preconditioners for the Steady Incompressible Navier-Stokes Equations, SIAM J. Scientific Computing, 33 (2011), pp. 2761-2784.
Suppose we are solving the following linear system:
![$ \left[ \begin{array}{cc} A & B^T \\ B & -C \end{array} \right] \left[ \begin{array}{c} u \\ p \end{array} \right] = \left[ \begin{array}{c} f \\ g \end{array} \right]. $](form_7.png)
The equivalent augmented Lagrangian (AL) formulation is:
![$ \left[ \begin{array}{cc} A + \gamma B^T W^{-1} B & B^T - \gamma B^T W^{-1} C \\ B & -C \end{array} \right] \left[ \begin{array}{c} u \\ p \end{array} \right] = \left[ \begin{array}{c} f + \gamma B^T W^{-1} g \\ g \end{array} \right]. $](form_51.png)
Here
can be take as the diagonal of the pressure mass matrix and
is a positive number.
If
,
then the modified AL preconditioner is defined as
![$ \left[ \begin{array}{ccc} A_{11} + \gamma B_1^T W^{-1} B_1^T & A_{12} + \gamma B_1^T W^{-1} B_2^T & B_1^T - \gamma B_1^T W^{-1} C \\ 0 & A_{22} + \gamma B_2^T W^{-1} B_2^T & B_1^T - \gamma B_2^T W^{-1} C \\ 0 & 0 & S \end{array} \right]. $](form_53.png)
More details (analysis, numerical results) can be found in [2].
Definition at line 112 of file Teko_ModALPreconditionerFactory.hpp.
| void Teko::NS::ModALPreconditionerFactory::setPressureMassMatrix | ( | const LinearOp & | pressureMassMatrix | ) | [inline] |
Set pressure mass matrix.
| [in] | pressureMassMatrix | Pressure mass matrix. |
Definition at line 138 of file Teko_ModALPreconditionerFactory.hpp.
| void Teko::NS::ModALPreconditionerFactory::setGamma | ( | double | gamma | ) | [inline] |
Set the augmentation parameter gamma.
| [in] | gamma | Augmentation paramter. |
Definition at line 149 of file Teko_ModALPreconditionerFactory.hpp.
| LinearOp Teko::NS::ModALPreconditionerFactory::buildPreconditionerOperator | ( | BlockedLinearOp & | alOp, |
| BlockPreconditionerState & | state | ||
| ) | const [virtual] |
Build modified AL preconditioner.
| [in] | alOp | The AL operator. |
| [in] | state | State object for storying reusable information about the AL operator. |
Implements Teko::BlockPreconditionerFactory.
Definition at line 71 of file Teko_ModALPreconditionerFactory.cpp.
| virtual Teuchos::RCP<PreconditionerState> Teko::NS::ModALPreconditionerFactory::buildPreconditionerState | ( | ) | const [inline, virtual] |
Build the ModALPrecondState object.
Reimplemented from Teko::BlockPreconditionerFactory.
Definition at line 170 of file Teko_ModALPreconditionerFactory.hpp.
1.7.6.1