#include <pseudo_elastic_preconditioner.h>
Public Types | |
typedef Preconditioner *(* | SubsidiaryPreconditionerFctPt) () |
This preconditioner includes the option to use subsidiary operators other than SuperLUPreconditioner for this problem. This is the typedef of a function that should return an instance of a subsidiary preconditioning operator. This preconditioner is responsible for the destruction of the subsidiary preconditioners. More... | |
Public Member Functions | |
PseudoElasticPreconditionerSubsidiaryBlockPreconditionerOld () | |
Constructor. (By default this preconditioner is upper triangular). More... | |
~PseudoElasticPreconditionerSubsidiaryBlockPreconditionerOld () | |
Destructor. More... | |
PseudoElasticPreconditionerSubsidiaryBlockPreconditionerOld (const PseudoElasticPreconditionerSubsidiaryBlockPreconditionerOld &) | |
Broken copy constructor. More... | |
void | clean_up_memory () |
Broken assignment operator. More... | |
void | setup () |
Setup the preconditioner. More... | |
void | preconditioner_solve (const DoubleVector &res, DoubleVector &z) |
Apply preconditioner to r. More... | |
void | set_subsidiary_preconditioner_function (SubsidiaryPreconditionerFctPt sub_prec_fn) |
access function to set the subsidiary preconditioner function. More... | |
void | use_block_diagonal_approximation () |
use as a block diagonal preconditioner More... | |
void | use_upper_triangular_approximation () |
Use as an upper triangular preconditioner. More... | |
void | use_lower_triangular_approximation () |
Use as a lower triangular preconditioner. More... | |
double & | scaling () |
Specify the scaling. Default is 1.0 Must be set before setup(...). More... | |
Private Attributes | |
Vector< PseudoElasticPreconditionerSubsidiaryPreconditionerOld * > | Diagonal_block_preconditioner_pt |
Vector of SuperLU preconditioner pointers for storing the preconditioners for each diagonal block. More... | |
DenseMatrix< MatrixVectorProduct * > | Off_diagonal_matrix_vector_products |
Matrix of matrix vector product operators for the off diagonals. More... | |
unsigned | Method |
SubsidiaryPreconditionerFctPt | Subsidiary_preconditioner_function_pt |
The SubisidaryPreconditionerFctPt. More... | |
double | Scaling |
The scaling. default 1.0. More... | |
Subsidiary helper preconditioner for the PseudoElasticPreconditioner. Required for block preconditioner of the augmented elastic subsidiary problem. NOTE:
Definition at line 610 of file pseudo_elastic_preconditioner.h.
typedef Preconditioner*(* oomph::PseudoElasticPreconditionerSubsidiaryBlockPreconditionerOld::SubsidiaryPreconditionerFctPt) () |
This preconditioner includes the option to use subsidiary operators other than SuperLUPreconditioner for this problem. This is the typedef of a function that should return an instance of a subsidiary preconditioning operator. This preconditioner is responsible for the destruction of the subsidiary preconditioners.
Definition at line 620 of file pseudo_elastic_preconditioner.h.
|
inline |
Constructor. (By default this preconditioner is upper triangular).
Definition at line 623 of file pseudo_elastic_preconditioner.h.
|
inline |
Destructor.
Definition at line 637 of file pseudo_elastic_preconditioner.h.
|
inline |
Broken copy constructor.
Definition at line 644 of file pseudo_elastic_preconditioner.h.
void oomph::PseudoElasticPreconditionerSubsidiaryBlockPreconditionerOld::clean_up_memory | ( | ) |
Broken assignment operator.
clean up the memory
Definition at line 945 of file pseudo_elastic_preconditioner.cc.
References setup().
Referenced by oomph::PseudoElasticPreconditionerSubsidiaryPreconditionerOld::preconditioner_solve().
void oomph::PseudoElasticPreconditionerSubsidiaryBlockPreconditionerOld::preconditioner_solve | ( | const DoubleVector & | res, |
DoubleVector & | z | ||
) |
Apply preconditioner to r.
Definition at line 1077 of file pseudo_elastic_preconditioner.cc.
Referenced by setup().
|
inline |
Specify the scaling. Default is 1.0 Must be set before setup(...).
Definition at line 694 of file pseudo_elastic_preconditioner.h.
Referenced by oomph::PseudoElasticPreconditionerOld::setup().
|
inline |
access function to set the subsidiary preconditioner function.
Definition at line 669 of file pseudo_elastic_preconditioner.h.
void oomph::PseudoElasticPreconditionerSubsidiaryBlockPreconditionerOld::setup | ( | ) |
Setup the preconditioner.
Definition at line 981 of file pseudo_elastic_preconditioner.cc.
References preconditioner_solve().
Referenced by clean_up_memory().
|
inline |
use as a block diagonal preconditioner
Definition at line 675 of file pseudo_elastic_preconditioner.h.
Referenced by oomph::PseudoElasticPreconditionerOld::setup().
|
inline |
Use as a lower triangular preconditioner.
Definition at line 687 of file pseudo_elastic_preconditioner.h.
Referenced by oomph::PseudoElasticPreconditionerOld::setup().
|
inline |
Use as an upper triangular preconditioner.
Definition at line 681 of file pseudo_elastic_preconditioner.h.
Referenced by oomph::PseudoElasticPreconditionerOld::setup().
|
private |
Vector of SuperLU preconditioner pointers for storing the preconditioners for each diagonal block.
Definition at line 704 of file pseudo_elastic_preconditioner.h.
|
private |
the preconditioning method. 0 - block diagonal 1 - upper triangular 2 - lower triangular
Definition at line 713 of file pseudo_elastic_preconditioner.h.
|
private |
Matrix of matrix vector product operators for the off diagonals.
Definition at line 707 of file pseudo_elastic_preconditioner.h.
|
private |
The scaling. default 1.0.
Definition at line 719 of file pseudo_elastic_preconditioner.h.
|
private |
The SubisidaryPreconditionerFctPt.
Definition at line 716 of file pseudo_elastic_preconditioner.h.