#include <HierarchicalBasisPrec.h>
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 ¶ms) | |
~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_ |
Definition at line 23 of file HierarchicalBasisPrec.h.
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.
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_.
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.
In | X - A Epetra_MultiVector of dimension NumVectors to multiply with matrix. | |
Out | Y -A Epetra_MultiVector of dimension NumVectors containing result. |
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.
In | X - A Epetra_MultiVector of dimension NumVectors to solve for. | |
Out | Y -A Epetra_MultiVector of dimension NumVectors containing result. |
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.
In | UseTranspose -If true, multiply by the transpose of operator, otherwise just use operator. |
Definition at line 230 of file HierarchicalBasisPrec.cpp.
References _useTranspose.
bool HierarchicalBasisPrec::UseTranspose | ( | ) | const |
const Epetra_Comm& HierarchicalBasisPrec::_Comm [protected] |
Definition at line 150 of file HierarchicalBasisPrec.h.
Referenced by Comm(), and HierarchicalBasisPrec().
bool HierarchicalBasisPrec::_useTranspose [protected] |
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] |
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] |
Epetra_CrsMatrix* HierarchicalBasisPrec::K22 [protected] |
Definition at line 134 of file HierarchicalBasisPrec.h.
Referenced by Apply(), ApplyInverse(), and HierarchicalBasisPrec().
Epetra_CrsMatrix* HierarchicalBasisPrec::NodeMatrix11 [protected] |
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] |
AztecOO* HierarchicalBasisPrec::solver22_ [protected] |
Definition at line 142 of file HierarchicalBasisPrec.h.
Referenced by HierarchicalBasisPrec(), and ~HierarchicalBasisPrec().
Epetra_CrsMatrix* HierarchicalBasisPrec::TMatrix11 [protected] |