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

#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 &)
 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...
 

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 610 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 620 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 623 of file pseudo_elastic_preconditioner.h.

◆ ~PseudoElasticPreconditionerSubsidiaryBlockPreconditionerOld()

oomph::PseudoElasticPreconditionerSubsidiaryBlockPreconditionerOld::~PseudoElasticPreconditionerSubsidiaryBlockPreconditionerOld ( )
inline

Destructor.

Definition at line 637 of file pseudo_elastic_preconditioner.h.

◆ PseudoElasticPreconditionerSubsidiaryBlockPreconditionerOld() [2/2]

oomph::PseudoElasticPreconditionerSubsidiaryBlockPreconditionerOld::PseudoElasticPreconditionerSubsidiaryBlockPreconditionerOld ( const PseudoElasticPreconditionerSubsidiaryBlockPreconditionerOld )
inline

Broken copy constructor.

Definition at line 644 of file pseudo_elastic_preconditioner.h.

Member Function Documentation

◆ clean_up_memory()

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

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

◆ scaling()

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

◆ 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 669 of file pseudo_elastic_preconditioner.h.

◆ setup()

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

◆ use_block_diagonal_approximation()

void oomph::PseudoElasticPreconditionerSubsidiaryBlockPreconditionerOld::use_block_diagonal_approximation ( )
inline

use as a block diagonal preconditioner

Definition at line 675 of file pseudo_elastic_preconditioner.h.

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 687 of file pseudo_elastic_preconditioner.h.

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 681 of file pseudo_elastic_preconditioner.h.

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 704 of file pseudo_elastic_preconditioner.h.

◆ Method

unsigned oomph::PseudoElasticPreconditionerSubsidiaryBlockPreconditionerOld::Method
private

the preconditioning method. 0 - block diagonal 1 - upper triangular 2 - lower triangular

Definition at line 713 of file pseudo_elastic_preconditioner.h.

◆ 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 707 of file pseudo_elastic_preconditioner.h.

◆ Scaling

double oomph::PseudoElasticPreconditionerSubsidiaryBlockPreconditionerOld::Scaling
private

The scaling. default 1.0.

Definition at line 719 of file pseudo_elastic_preconditioner.h.

◆ Subsidiary_preconditioner_function_pt

SubsidiaryPreconditionerFctPt oomph::PseudoElasticPreconditionerSubsidiaryBlockPreconditionerOld::Subsidiary_preconditioner_function_pt
private

The SubisidaryPreconditionerFctPt.

Definition at line 716 of file pseudo_elastic_preconditioner.h.


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