Public Types | Public Member Functions | Private Attributes | List of all members
oomph::PseudoElasticPreconditionerSubsidiaryBlockPreconditionerOld Class Reference

///////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////// More...

#include <pseudo_elastic_preconditioner.h>

Inheritance diagram for oomph::PseudoElasticPreconditionerSubsidiaryBlockPreconditionerOld:

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...
 

Detailed Description

///////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////

Subsidiary helper preconditioner for the PseudoElasticPreconditioner. Required for block preconditioner of the augmented elastic subsidiary problem. NOTE:

  1. This is only intended to be used as a subsidiary preconditioner within the PseudoElasticPreconditioner.
  2. If this preconditioner has N DOF types then the first N/2 are assumed to be ordinary solid DOF types, and the second N/2 are the solid DOF types with lagrange multiplier tractions applied.
  3. By default this preconditioner uses a superlu preconditioner.

Definition at line 584 of file pseudo_elastic_preconditioner.h.

Member Typedef Documentation

◆ SubsidiaryPreconditionerFctPt

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.

Constructor & Destructor Documentation

◆ PseudoElasticPreconditionerSubsidiaryBlockPreconditionerOld() [1/2]

oomph::PseudoElasticPreconditionerSubsidiaryBlockPreconditionerOld::PseudoElasticPreconditionerSubsidiaryBlockPreconditionerOld ( )
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.

◆ ~PseudoElasticPreconditionerSubsidiaryBlockPreconditionerOld()

oomph::PseudoElasticPreconditionerSubsidiaryBlockPreconditionerOld::~PseudoElasticPreconditionerSubsidiaryBlockPreconditionerOld ( )
inline

Destructor.

Definition at line 610 of file pseudo_elastic_preconditioner.h.

References clean_up_memory().

◆ PseudoElasticPreconditionerSubsidiaryBlockPreconditionerOld() [2/2]

oomph::PseudoElasticPreconditionerSubsidiaryBlockPreconditionerOld::PseudoElasticPreconditionerSubsidiaryBlockPreconditionerOld ( const PseudoElasticPreconditionerSubsidiaryBlockPreconditionerOld )
delete

Broken copy constructor.

Member Function Documentation

◆ clean_up_memory()

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().

◆ preconditioner_solve()

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.

◆ scaling()

double& oomph::PseudoElasticPreconditionerSubsidiaryBlockPreconditionerOld::scaling ( )
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().

◆ set_subsidiary_preconditioner_function()

void oomph::PseudoElasticPreconditionerSubsidiaryBlockPreconditionerOld::set_subsidiary_preconditioner_function ( SubsidiaryPreconditionerFctPt  sub_prec_fn)
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().

◆ setup()

void oomph::PseudoElasticPreconditionerSubsidiaryBlockPreconditionerOld::setup ( )

◆ use_block_diagonal_approximation()

void oomph::PseudoElasticPreconditionerSubsidiaryBlockPreconditionerOld::use_block_diagonal_approximation ( )
inline

use as a block diagonal preconditioner

Definition at line 642 of file pseudo_elastic_preconditioner.h.

References Method.

Referenced by oomph::PseudoElasticPreconditionerOld::setup().

◆ use_lower_triangular_approximation()

void oomph::PseudoElasticPreconditionerSubsidiaryBlockPreconditionerOld::use_lower_triangular_approximation ( )
inline

Use as a lower triangular preconditioner.

Definition at line 654 of file pseudo_elastic_preconditioner.h.

References Method.

Referenced by oomph::PseudoElasticPreconditionerOld::setup().

◆ use_upper_triangular_approximation()

void oomph::PseudoElasticPreconditionerSubsidiaryBlockPreconditionerOld::use_upper_triangular_approximation ( )
inline

Use as an upper triangular preconditioner.

Definition at line 648 of file pseudo_elastic_preconditioner.h.

References Method.

Referenced by oomph::PseudoElasticPreconditionerOld::setup().

Member Data Documentation

◆ Diagonal_block_preconditioner_pt

Vector<PseudoElasticPreconditionerSubsidiaryPreconditionerOld*> oomph::PseudoElasticPreconditionerSubsidiaryBlockPreconditionerOld::Diagonal_block_preconditioner_pt
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().

◆ Method

unsigned oomph::PseudoElasticPreconditionerSubsidiaryBlockPreconditionerOld::Method
private

◆ Off_diagonal_matrix_vector_products

DenseMatrix<MatrixVectorProduct*> oomph::PseudoElasticPreconditionerSubsidiaryBlockPreconditionerOld::Off_diagonal_matrix_vector_products
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().

◆ Scaling

double oomph::PseudoElasticPreconditionerSubsidiaryBlockPreconditionerOld::Scaling
private

The scaling. default 1.0.

Definition at line 685 of file pseudo_elastic_preconditioner.h.

Referenced by PseudoElasticPreconditionerSubsidiaryBlockPreconditionerOld(), scaling(), and setup().

◆ Subsidiary_preconditioner_function_pt

SubsidiaryPreconditionerFctPt oomph::PseudoElasticPreconditionerSubsidiaryBlockPreconditionerOld::Subsidiary_preconditioner_function_pt
private

The documentation for this class was generated from the following files: