#include <MLAPI_MultiLevelSA.h>
Public Member Functions | |
MultiLevelSA (const Operator FineMatrix, Teuchos::ParameterList &List, const bool ConstructNow=true) | |
Constructs the hierarchy for given Operator and parameters. | |
virtual | ~MultiLevelSA () |
Destructor. | |
const Space | GetOperatorDomainSpace () const |
Returns a copy of the internally stored domain space. | |
const Space | GetOperatorRangeSpace () const |
Returns a copy of the internally stored range space. | |
const Space | GetDomainSpace () const |
Returns a copy of the internally stored domain space. | |
const Space | GetRangeSpace () const |
Returns a copy of the internally stored range space. | |
const Operator & | R (const int i) const |
Returns a reference to the restriction operator of level i . | |
const Operator & | A (const int i) const |
Returns a reference to the operator of level i . | |
const Operator & | P (const int i) const |
Returns a reference to the prolongator operator of level i . | |
const InverseOperator & | S (const int i) const |
Returns a reference to the inverse operator of level i . | |
int | GetMaxLevels () const |
Returns the actual number of levels. | |
bool | IsComputed () const |
Returns true if the hierarchy has been successfully computed, false otherwise. | |
void | Compute () |
Computes the hierarchy. | |
int | Apply (const MultiVector &b_f, MultiVector &x_f) const |
Applies the preconditioner to b_f , returns the result in x_f . | |
int | SolveMultiLevelSA (const MultiVector &b_f, MultiVector &x_f, int level) const |
Recursively called core of the multi level preconditioner. | |
std::ostream & | Print (std::ostream &os, const bool verbose=true) const |
Prints basic information about this preconditioner. | |
Private Attributes | |
int | MaxLevels_ |
Maximum number of levels. | |
Operator | FineMatrix_ |
Fine-level matrix. | |
std::vector< Operator > | A_ |
Contains the hierarchy of operators. | |
std::vector< Operator > | R_ |
Contains the hierarchy of restriction operators. | |
std::vector< Operator > | P_ |
Contains the hierarchy of prolongator operators. | |
std::vector< InverseOperator > | S_ |
Contains the hierarchy of inverse operators. | |
Teuchos::ParameterList | List_ |
Contains a copy of the input list. | |
bool | IsComputed_ |
true if the hierarchy has been successfully computed, false otherwise. |
MLAPI::MultiLevelSA::MultiLevelSA | ( | const Operator | FineMatrix, | |
Teuchos::ParameterList & | List, | |||
const bool | ConstructNow = true | |||
) | [inline] |
virtual MLAPI::MultiLevelSA::~MultiLevelSA | ( | ) | [inline, virtual] |
const Operator& MLAPI::MultiLevelSA::A | ( | const int | i | ) | const [inline] |
int MLAPI::MultiLevelSA::Apply | ( | const MultiVector & | b_f, | |
MultiVector & | x_f | |||
) | const [inline, virtual] |
Implements MLAPI::BaseOperator.
void MLAPI::MultiLevelSA::Compute | ( | ) | [inline] |
const Space MLAPI::MultiLevelSA::GetDomainSpace | ( | ) | const [inline] |
int MLAPI::MultiLevelSA::GetMaxLevels | ( | ) | const [inline] |
const Space MLAPI::MultiLevelSA::GetOperatorDomainSpace | ( | ) | const [inline, virtual] |
Implements MLAPI::BaseOperator.
const Space MLAPI::MultiLevelSA::GetOperatorRangeSpace | ( | ) | const [inline, virtual] |
Implements MLAPI::BaseOperator.
const Space MLAPI::MultiLevelSA::GetRangeSpace | ( | ) | const [inline] |
bool MLAPI::MultiLevelSA::IsComputed | ( | ) | const [inline] |
const Operator& MLAPI::MultiLevelSA::P | ( | const int | i | ) | const [inline] |
std::ostream& MLAPI::MultiLevelSA::Print | ( | std::ostream & | os, | |
const bool | verbose = true | |||
) | const [inline, virtual] |
Implements MLAPI::BaseObject.
const Operator& MLAPI::MultiLevelSA::R | ( | const int | i | ) | const [inline] |
const InverseOperator& MLAPI::MultiLevelSA::S | ( | const int | i | ) | const [inline] |
int MLAPI::MultiLevelSA::SolveMultiLevelSA | ( | const MultiVector & | b_f, | |
MultiVector & | x_f, | |||
int | level | |||
) | const [inline] |
std::vector<Operator> MLAPI::MultiLevelSA::A_ [private] |
Operator MLAPI::MultiLevelSA::FineMatrix_ [private] |
bool MLAPI::MultiLevelSA::IsComputed_ [private] |
Teuchos::ParameterList MLAPI::MultiLevelSA::List_ [private] |
int MLAPI::MultiLevelSA::MaxLevels_ [private] |
std::vector<Operator> MLAPI::MultiLevelSA::P_ [private] |
std::vector<Operator> MLAPI::MultiLevelSA::R_ [private] |
std::vector<InverseOperator> MLAPI::MultiLevelSA::S_ [private] |