Teko Version of the Day
Public Member Functions
Teko::NS::ModALPreconditionerFactory Class Reference

Modified augmented Lagrangian-based preconditioner for incompressible Navier-Stokes equations. More...

#include <Teko_ModALPreconditionerFactory.hpp>

Inheritance diagram for Teko::NS::ModALPreconditionerFactory:
Inheritance graph
[legend]

List of all members.

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

Detailed Description

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]. $

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]. $

Here $ W $ can be take as the diagonal of the pressure mass matrix and $ \gamma $ is a positive number.

If $ A = (A_{11}, A_{12}; A_{21}, A_{22}) \quad \mathrm{and} \quad B = (B_1, B_2) $,

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]. $

More details (analysis, numerical results) can be found in [2].

Definition at line 112 of file Teko_ModALPreconditionerFactory.hpp.


Member Function Documentation

void Teko::NS::ModALPreconditionerFactory::setPressureMassMatrix ( const LinearOp &  pressureMassMatrix) [inline]

Set pressure mass matrix.

Parameters:
[in]pressureMassMatrixPressure mass matrix.

Definition at line 138 of file Teko_ModALPreconditionerFactory.hpp.

void Teko::NS::ModALPreconditionerFactory::setGamma ( double  gamma) [inline]

Set the augmentation parameter gamma.

Parameters:
[in]gammaAugmentation 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.

Parameters:
[in]alOpThe AL operator.
[in]stateState 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.


The documentation for this class was generated from the following files:
 All Classes Files Functions Variables