HierarchicalBasisPrec Class Reference

#include <HierarchicalBasisPrec.h>

List of all members.

Public Member Functions

 HierarchicalBasisPrec (Epetra_CrsMatrix *Block11, Epetra_CrsMatrix *TMatrix, Epetra_CrsMatrix *NodeMatrix, Epetra_CrsMatrix *Block12, Epetra_CrsMatrix *Block22, const Epetra_Map &DMap, const Epetra_Map &RMap, Teuchos::ParameterList &params)
 ~HierarchicalBasisPrec ()
 Destructor.
int SetUseTranspose (bool UseTranspose)
 If set true, transpose of this operator will be applied.
int Apply (const Epetra_MultiVector &X, Epetra_MultiVector &Y) const
 Returns the result of a Epetra_Operator applied to a Epetra_MultiVector X in Y.
int ApplyInverse (const Epetra_MultiVector &X, Epetra_MultiVector &Y) const
 Returns the result of a Epetra_Operator inverse applied to an Epetra_MultiVector X in Y.
double NormInf () const
 Returns the infinity norm of the global matrix.
const char * Label () const
 Returns a character string describing the operator.
bool UseTranspose () const
 Returns the current UseTranspose setting.
bool HasNormInf () const
 Returns true if the this object can provide an approximate Inf-norm, false otherwise.
const Epetra_Comm & Comm () const
 Returns a pointer to the Epetra_Comm communicator associated with this operator.
const Epetra_Map & OperatorDomainMap () const
 Returns the Epetra_Map object associated with the domain of this operator.
const Epetra_Map & OperatorRangeMap () const
 Returns the Epetra_Map object associated with the range of this operator.

Protected Attributes

Epetra_CrsMatrix * K11
Epetra_CrsMatrix * TMatrix11
Epetra_CrsMatrix * NodeMatrix11
Epetra_CrsMatrix * K12
Epetra_CrsMatrix * K22
const Epetra_Map & DomainMap
const Epetra_Map & RangeMap
Amesos_BaseSolver * Abase
Epetra_LinearProblem * ProblemL
Teuchos::ParameterList * ParamList
AztecOO * solver22_
Epetra_Operator * operator22_
Epetra_Operator * operator11_
const Epetra_Comm & _Comm
bool _useTranspose
bool isFactorized

Private Attributes

Teuchos::ParameterList & params_


Detailed Description

Two-level hierarchical preconditioner operator. 2-by-2 block preconditioner for Laplace matrix H or Nedelec matrix A - sigma*M.

Definition at line 23 of file HierarchicalBasisPrec.h.


Constructor & Destructor Documentation

HierarchicalBasisPrec::HierarchicalBasisPrec ( Epetra_CrsMatrix *  Block11,
Epetra_CrsMatrix *  TMatrix,
Epetra_CrsMatrix *  NodeMatrix,
Epetra_CrsMatrix *  Block12,
Epetra_CrsMatrix *  Block22,
const Epetra_Map &  DMap,
const Epetra_Map &  RMap,
Teuchos::ParameterList &  params 
)

Constructor.

Parameters:
Block11 (1,1)-diagonal block of matrix.
TMatrix Nullspace matrix of Block11. Used for ML. If TMatrix==0, the matrix is considered a Laplacian.
NodeMatrix Node matrix. Used for ML. If NodeMatrix==0, the matrix is considered a Laplacian.
Block12 Off-diagonal block of matrix.
Block22 (2,2)-diagonal block of matrix.
DMap Domain map of preconditioner operator.
RMap Range map of preconditioner operator.
params Parameter list for configuring the preconditioner. The "solver11" parameter determines the method for approximately solving the (1,1)-block. The "solver22" parameter determines the method for approximately solving the (2,2)-block. Other, solver-specific, parameters may be required.

Definition at line 37 of file HierarchicalBasisPrec.cpp.

References _Comm, Abase, OutputCapturer::begin_capture(), OutputCapturer::end_capture(), isFactorized, K11, K22, OutputCapturer::log(), NodeMatrix11, operator11_, params_, pbe_start, pbe_stop, ProblemL, rExit, solver22_, and TMatrix11.

Here is the call graph for this function:

HierarchicalBasisPrec::~HierarchicalBasisPrec (  ) 

Destructor.

Definition at line 219 of file HierarchicalBasisPrec.cpp.

References Abase, operator11_, operator22_, and solver22_.


Member Function Documentation

int HierarchicalBasisPrec::Apply ( const Epetra_MultiVector &  X,
Epetra_MultiVector &  Y 
) const

Returns the result of a Epetra_Operator applied to a Epetra_MultiVector X in Y.

Parameters:
In X - A Epetra_MultiVector of dimension NumVectors to multiply with matrix.
Out Y -A Epetra_MultiVector of dimension NumVectors containing result.
Returns:
Integer error code, set to 0 if successful.

Definition at line 236 of file HierarchicalBasisPrec.cpp.

References K11, K12, K22, OperatorDomainMap(), OperatorRangeMap(), pbe_start, and pbe_stop.

Here is the call graph for this function:

int HierarchicalBasisPrec::ApplyInverse ( const Epetra_MultiVector &  X,
Epetra_MultiVector &  Y 
) const

Returns the result of a Epetra_Operator inverse applied to an Epetra_MultiVector X in Y.

Parameters:
In X - A Epetra_MultiVector of dimension NumVectors to solve for.
Out Y -A Epetra_MultiVector of dimension NumVectors containing result.
Returns:
Integer error code, set to 0 if successful.
Warning:
In order to work with AztecOO, any implementation of this method must support the case where X and Y are the same object.

Definition at line 271 of file HierarchicalBasisPrec.cpp.

References Abase, isFactorized, K11, K12, K22, OperatorDomainMap(), OperatorRangeMap(), params_, pbe_start, pbe_stop, and ProblemL.

Here is the call graph for this function:

const Epetra_Comm & HierarchicalBasisPrec::Comm (  )  const

Returns a pointer to the Epetra_Comm communicator associated with this operator.

Definition at line 385 of file HierarchicalBasisPrec.cpp.

References _Comm.

bool HierarchicalBasisPrec::HasNormInf (  )  const

Returns true if the this object can provide an approximate Inf-norm, false otherwise.

Definition at line 381 of file HierarchicalBasisPrec.cpp.

const char * HierarchicalBasisPrec::Label (  )  const

Returns a character string describing the operator.

Definition at line 373 of file HierarchicalBasisPrec.cpp.

double HierarchicalBasisPrec::NormInf (  )  const

Returns the infinity norm of the global matrix.

Definition at line 368 of file HierarchicalBasisPrec.cpp.

const Epetra_Map & HierarchicalBasisPrec::OperatorDomainMap (  )  const

Returns the Epetra_Map object associated with the domain of this operator.

Definition at line 389 of file HierarchicalBasisPrec.cpp.

References DomainMap.

Referenced by Apply(), and ApplyInverse().

const Epetra_Map & HierarchicalBasisPrec::OperatorRangeMap (  )  const

Returns the Epetra_Map object associated with the range of this operator.

Definition at line 393 of file HierarchicalBasisPrec.cpp.

References RangeMap.

Referenced by Apply(), and ApplyInverse().

int HierarchicalBasisPrec::SetUseTranspose ( bool  UseTranspose  ) 

If set true, transpose of this operator will be applied.

This flag allows the transpose of the given operator to be used implicitly. Setting this flag affects only the Apply() and ApplyInverse() methods. If the implementation of this interface does not support transpose use, this method should return a value of -1.

Parameters:
In UseTranspose -If true, multiply by the transpose of operator, otherwise just use operator.
Returns:
Integer error code, set to 0 if successful. Set to -1 if this implementation does not support transpose.

Definition at line 230 of file HierarchicalBasisPrec.cpp.

References _useTranspose.

bool HierarchicalBasisPrec::UseTranspose (  )  const

Returns the current UseTranspose setting.

Definition at line 377 of file HierarchicalBasisPrec.cpp.


Member Data Documentation

const Epetra_Comm& HierarchicalBasisPrec::_Comm [protected]

Definition at line 150 of file HierarchicalBasisPrec.h.

Referenced by Comm(), and HierarchicalBasisPrec().

bool HierarchicalBasisPrec::_useTranspose [protected]

Definition at line 152 of file HierarchicalBasisPrec.h.

Referenced by SetUseTranspose().

Amesos_BaseSolver* HierarchicalBasisPrec::Abase [protected]

Definition at line 138 of file HierarchicalBasisPrec.h.

Referenced by ApplyInverse(), HierarchicalBasisPrec(), and ~HierarchicalBasisPrec().

const Epetra_Map& HierarchicalBasisPrec::DomainMap [protected]

Definition at line 135 of file HierarchicalBasisPrec.h.

Referenced by OperatorDomainMap().

bool HierarchicalBasisPrec::isFactorized [mutable, protected]

Definition at line 153 of file HierarchicalBasisPrec.h.

Referenced by ApplyInverse(), and HierarchicalBasisPrec().

Epetra_CrsMatrix* HierarchicalBasisPrec::K11 [protected]

Definition at line 130 of file HierarchicalBasisPrec.h.

Referenced by Apply(), ApplyInverse(), and HierarchicalBasisPrec().

Epetra_CrsMatrix* HierarchicalBasisPrec::K12 [protected]

Definition at line 133 of file HierarchicalBasisPrec.h.

Referenced by Apply(), and ApplyInverse().

Epetra_CrsMatrix* HierarchicalBasisPrec::K22 [protected]

Definition at line 134 of file HierarchicalBasisPrec.h.

Referenced by Apply(), ApplyInverse(), and HierarchicalBasisPrec().

Epetra_CrsMatrix* HierarchicalBasisPrec::NodeMatrix11 [protected]

Definition at line 132 of file HierarchicalBasisPrec.h.

Referenced by HierarchicalBasisPrec().

Epetra_Operator* HierarchicalBasisPrec::operator11_ [protected]

Operator, whose ApplyInverse method (approximately) solves with the (1,1)-block.

Definition at line 148 of file HierarchicalBasisPrec.h.

Referenced by HierarchicalBasisPrec(), and ~HierarchicalBasisPrec().

Epetra_Operator* HierarchicalBasisPrec::operator22_ [protected]

Operator, whose ApplyInverse method approximately solves with the (2,2)-block.

Definition at line 145 of file HierarchicalBasisPrec.h.

Referenced by ~HierarchicalBasisPrec().

Teuchos::ParameterList* HierarchicalBasisPrec::ParamList [protected]

Definition at line 140 of file HierarchicalBasisPrec.h.

Teuchos::ParameterList& HierarchicalBasisPrec::params_ [private]

Definition at line 156 of file HierarchicalBasisPrec.h.

Referenced by ApplyInverse(), and HierarchicalBasisPrec().

Epetra_LinearProblem* HierarchicalBasisPrec::ProblemL [protected]

Definition at line 139 of file HierarchicalBasisPrec.h.

Referenced by ApplyInverse(), and HierarchicalBasisPrec().

const Epetra_Map& HierarchicalBasisPrec::RangeMap [protected]

Definition at line 136 of file HierarchicalBasisPrec.h.

Referenced by OperatorRangeMap().

AztecOO* HierarchicalBasisPrec::solver22_ [protected]

Definition at line 142 of file HierarchicalBasisPrec.h.

Referenced by HierarchicalBasisPrec(), and ~HierarchicalBasisPrec().

Epetra_CrsMatrix* HierarchicalBasisPrec::TMatrix11 [protected]

Definition at line 131 of file HierarchicalBasisPrec.h.

Referenced by HierarchicalBasisPrec().


The documentation for this class was generated from the following files:
Generated on Fri Oct 26 13:35:16 2007 for FEMAXX (Finite Element Maxwell Eigensolver) by  doxygen 1.4.7