Teko Version of the Day
Public Member Functions | Protected Member Functions | Static Protected Member Functions | Protected Attributes
Teko::NS::PCDStrategy Class Reference

Strategy for computing implementation of the Pressure convection diffusion preconditioner. More...

#include <Teko_PCDStrategy.hpp>

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

List of all members.

Public Member Functions

 PCDStrategy ()
 default Constructor
 PCDStrategy (const Teuchos::RCP< InverseFactory > &invFA, const Teuchos::RCP< InverseFactory > &invS)
 Constructor to set the inverse factories.
virtual ~PCDStrategy ()
 Destructor (does nothing)
virtual const Teko::LinearOp getHatInvA00 (const Teko::BlockedLinearOp &A, BlockPreconditionerState &state) const
virtual const Teko::LinearOp getTildeInvA00 (const Teko::BlockedLinearOp &A, BlockPreconditionerState &state) const
virtual const Teko::LinearOp getInvS (const Teko::BlockedLinearOp &A, BlockPreconditionerState &state) const
virtual void initializeFromParameterList (const Teuchos::ParameterList &settings, const InverseLibrary &invLib)
 This function builds the internals of the state from a parameter list.
virtual Teuchos::RCP
< Teuchos::ParameterList > 
getRequestedParameters () const
 Request the additional parameters this preconditioner factory needs.
virtual bool updateRequestedParameters (const Teuchos::ParameterList &pl)
 Update this object with the fields from a parameter list.

Protected Member Functions

void initializeState (const Teko::BlockedLinearOp &A, BlockPreconditionerState &state) const

Static Protected Member Functions

static void buildTimers ()

Protected Attributes

Teuchos::RCP
< Teuchos::ParameterList > 
lapParams_
 Passed to application for construction of laplace operator.
Teuchos::RCP
< Teuchos::ParameterList > 
pcdParams_
 Passed to application for construction of PCD operator.

Detailed Description

Strategy for computing implementation of the Pressure convection diffusion preconditioner.

This requires the user to add a "PCD Operator", "Pressure Laplace Operator" and "Press Mass Operators" into the preconditioner state. The user is notified by boolean fields returned from the requested paramters list.

Definition at line 66 of file Teko_PCDStrategy.hpp.


Constructor & Destructor Documentation

Teko::NS::PCDStrategy::PCDStrategy ( )

default Constructor

Definition at line 77 of file Teko_PCDStrategy.cpp.

Teko::NS::PCDStrategy::PCDStrategy ( const Teuchos::RCP< InverseFactory > &  invFA,
const Teuchos::RCP< InverseFactory > &  invS 
)

Constructor to set the inverse factories.

Definition at line 89 of file Teko_PCDStrategy.cpp.

virtual Teko::NS::PCDStrategy::~PCDStrategy ( ) [inline, virtual]

Destructor (does nothing)

Definition at line 76 of file Teko_PCDStrategy.hpp.


Member Function Documentation

const Teko::LinearOp Teko::NS::PCDStrategy::getHatInvA00 ( const Teko::BlockedLinearOp &  A,
BlockPreconditionerState state 
) const [virtual]

returns the first (approximate) inverse of $A_{00}$

Implements Teko::LU2x2Strategy.

Definition at line 104 of file Teko_PCDStrategy.cpp.

const Teko::LinearOp Teko::NS::PCDStrategy::getTildeInvA00 ( const Teko::BlockedLinearOp &  A,
BlockPreconditionerState state 
) const [virtual]

returns the second (approximate) inverse of $A_{00}$

Implements Teko::LU2x2Strategy.

Definition at line 113 of file Teko_PCDStrategy.cpp.

const Teko::LinearOp Teko::NS::PCDStrategy::getInvS ( const Teko::BlockedLinearOp &  A,
BlockPreconditionerState state 
) const [virtual]

returns an (approximate) inverse of $S = -A_{11} + A_{10} \mbox{diag}(A_{00})^{-1} A_{01}$

Implements Teko::LU2x2Strategy.

Definition at line 122 of file Teko_PCDStrategy.cpp.

void Teko::NS::PCDStrategy::initializeFromParameterList ( const Teuchos::ParameterList &  pl,
const InverseLibrary &  invLib 
) [virtual]

This function builds the internals of the state from a parameter list.

Parameters:
[in]settingsParameter list to use as the internal settings
[in]invLibInverse library to use for building inverse factory objects
Note:
The default implementation does nothing.

This function builds the internals of the LU 2x2 state from a parameter list. Furthermore, it allows a developer to easily add a factory to the build system.

Parameters:
[in]settingsParameter list to use as the internal settings
[in]invLibInverse library to use for building inverse factory objects
Note:
The default implementation does nothing.

Reimplemented from Teko::LU2x2Strategy.

Definition at line 236 of file Teko_PCDStrategy.cpp.

Teuchos::RCP< Teuchos::ParameterList > Teko::NS::PCDStrategy::getRequestedParameters ( ) const [virtual]

Request the additional parameters this preconditioner factory needs.

For assiting in construction of the preconditioner.

Request the additonal parameters needed by this preconditioner factory. The parameter list will have a set of fields that can be filled with the requested values. These fields include all requirements, even those of the sub-solvers if there are any. Once correctly filled the object can be updated by calling the updateRequestedParameters with the filled parameter list.

For the PCD strategy the following fields are required to be set to true, they are passed to the user as false. The user acknowledges that the operators are required by updating the parameters to true.

  • <ParameterList name="PCD Operator" type="bool" value="false">
  • <ParameterList name="Pressure Laplace Operator" type="bool" value="false">
  • <ParameterList name="Pressure Mass Operator" type="bool" value="false">
Returns:
A parameter list with the requested parameters.
Note:
The default implementation returns Teuchos::null.

Reimplemented from Teko::LU2x2Strategy.

Definition at line 316 of file Teko_PCDStrategy.cpp.

bool Teko::NS::PCDStrategy::updateRequestedParameters ( const Teuchos::ParameterList &  pl) [virtual]

Update this object with the fields from a parameter list.

For assiting in construction of the preconditioner.

Update the requested fields using a parameter list. This method is expected to pair with the getRequestedParameters method (i.e. the fields requested are going to be update using this method).

For the PCD strategy the following fields are required to be set to true. Essentially, the user is acknowledging that the operators are required.

  • <ParameterList name="PCD Operator" type="bool" value="true">
  • <ParameterList name="Pressure Laplace Operator" type="bool" value="true">
  • <ParameterList name="Pressure Mass Operator" type="bool" value="true">
Parameters:
[in]plParameter list containing the requested parameters.
Returns:
If the method succeeded (found all its required parameters) this method returns true, otherwise it returns false.
Note:
The default implementation returns true (it does nothing!).

Reimplemented from Teko::LU2x2Strategy.

Definition at line 324 of file Teko_PCDStrategy.cpp.

void Teko::NS::PCDStrategy::buildTimers ( ) [static, protected]

Build timers for this type of object.

Definition at line 62 of file Teko_PCDStrategy.cpp.

void Teko::NS::PCDStrategy::initializeState ( const Teko::BlockedLinearOp &  A,
BlockPreconditionerState state 
) const [protected]

Initialize the operator's state. This builds the Schur complement and the inverse operators. If the state has already been initialized this method does nothing.

Parameters:
[in]AOperator to intialize with.
[in]stateStorage object for this operator.

Definition at line 129 of file Teko_PCDStrategy.cpp.


Member Data Documentation

Teuchos::RCP<Teuchos::ParameterList> Teko::NS::PCDStrategy::lapParams_ [protected]

Passed to application for construction of laplace operator.

Definition at line 169 of file Teko_PCDStrategy.hpp.

Teuchos::RCP<Teuchos::ParameterList> Teko::NS::PCDStrategy::pcdParams_ [protected]

Passed to application for construction of PCD operator.

Definition at line 172 of file Teko_PCDStrategy.hpp.


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