///////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////// More...
#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 &)=delete | |
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 |
the preconditioning method. 0 - block diagonal 1 - upper triangular 2 - lower triangular More... | |
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 584 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 593 of file pseudo_elastic_preconditioner.h.
|
inline |
Constructor. (By default this preconditioner is upper triangular).
Definition at line 596 of file pseudo_elastic_preconditioner.h.
References Method, Scaling, and Subsidiary_preconditioner_function_pt.
|
inline |
Destructor.
Definition at line 610 of file pseudo_elastic_preconditioner.h.
References clean_up_memory().
|
delete |
Broken copy constructor.
void oomph::PseudoElasticPreconditionerSubsidiaryBlockPreconditionerOld::clean_up_memory | ( | ) |
Broken assignment operator.
//////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////
clean up the memory
Definition at line 915 of file pseudo_elastic_preconditioner.cc.
References Diagonal_block_preconditioner_pt, Method, and Off_diagonal_matrix_vector_products.
Referenced by setup(), and ~PseudoElasticPreconditionerSubsidiaryBlockPreconditionerOld().
void oomph::PseudoElasticPreconditionerSubsidiaryBlockPreconditionerOld::preconditioner_solve | ( | const DoubleVector & | res, |
DoubleVector & | z | ||
) |
Apply preconditioner to r.
Definition at line 1044 of file pseudo_elastic_preconditioner.cc.
References Diagonal_block_preconditioner_pt, Method, and Off_diagonal_matrix_vector_products.
|
inline |
Specify the scaling. Default is 1.0 Must be set before setup(...).
Definition at line 661 of file pseudo_elastic_preconditioner.h.
References Scaling.
Referenced by oomph::PseudoElasticPreconditionerOld::setup().
|
inline |
access function to set the subsidiary preconditioner function.
Definition at line 635 of file pseudo_elastic_preconditioner.h.
References Subsidiary_preconditioner_function_pt.
Referenced by oomph::PseudoElasticPreconditionerOld::setup().
void oomph::PseudoElasticPreconditionerSubsidiaryBlockPreconditionerOld::setup | ( | ) |
Setup the preconditioner.
Definition at line 951 of file pseudo_elastic_preconditioner.cc.
References clean_up_memory(), Diagonal_block_preconditioner_pt, Method, Off_diagonal_matrix_vector_products, Scaling, and Subsidiary_preconditioner_function_pt.
|
inline |
use as a block diagonal preconditioner
Definition at line 642 of file pseudo_elastic_preconditioner.h.
References Method.
Referenced by oomph::PseudoElasticPreconditionerOld::setup().
|
inline |
Use as a lower triangular preconditioner.
Definition at line 654 of file pseudo_elastic_preconditioner.h.
References Method.
Referenced by oomph::PseudoElasticPreconditionerOld::setup().
|
inline |
Use as an upper triangular preconditioner.
Definition at line 648 of file pseudo_elastic_preconditioner.h.
References Method.
Referenced by oomph::PseudoElasticPreconditionerOld::setup().
|
private |
Vector of SuperLU preconditioner pointers for storing the preconditioners for each diagonal block.
Definition at line 670 of file pseudo_elastic_preconditioner.h.
Referenced by clean_up_memory(), preconditioner_solve(), and setup().
|
private |
the preconditioning method. 0 - block diagonal 1 - upper triangular 2 - lower triangular
Definition at line 679 of file pseudo_elastic_preconditioner.h.
Referenced by clean_up_memory(), preconditioner_solve(), PseudoElasticPreconditionerSubsidiaryBlockPreconditionerOld(), setup(), use_block_diagonal_approximation(), use_lower_triangular_approximation(), and use_upper_triangular_approximation().
|
private |
Matrix of matrix vector product operators for the off diagonals.
Definition at line 673 of file pseudo_elastic_preconditioner.h.
Referenced by clean_up_memory(), preconditioner_solve(), and setup().
|
private |
The scaling. default 1.0.
Definition at line 685 of file pseudo_elastic_preconditioner.h.
Referenced by PseudoElasticPreconditionerSubsidiaryBlockPreconditionerOld(), scaling(), and setup().
|
private |
The SubisidaryPreconditionerFctPt.
Definition at line 682 of file pseudo_elastic_preconditioner.h.
Referenced by PseudoElasticPreconditionerSubsidiaryBlockPreconditionerOld(), set_subsidiary_preconditioner_function(), and setup().