oomph::PseudoElasticPreconditionerSubsidiaryPreconditionerOld Class Reference

#include <pseudo_elastic_preconditioner.h>

+ Inheritance diagram for oomph::PseudoElasticPreconditionerSubsidiaryPreconditionerOld:

Public Types

typedef Preconditioner *(* SubsidiaryPreconditionerFctPt) ()
 

Public Member Functions

 PseudoElasticPreconditionerSubsidiaryPreconditionerOld ()
 Constructor. More...
 
 ~PseudoElasticPreconditionerSubsidiaryPreconditionerOld ()
 Destructor. More...
 
 PseudoElasticPreconditionerSubsidiaryPreconditionerOld (const PseudoElasticPreconditionerSubsidiaryPreconditionerOld &)=delete
 Broken copy constructor. More...
 
void setup ()
 Broken assignment operator. More...
 
void preconditioner_solve (const DoubleVector &r, DoubleVector &z)
 Apply the preconditioner. More...
 
doublescaling ()
 
void set_subsidiary_preconditioner_function (SubsidiaryPreconditionerFctPt sub_prec_fn)
 access function to set the subsidiary preconditioner function. More...
 
- Public Member Functions inherited from oomph::BlockPreconditioner< CRDoubleMatrix >
 BlockPreconditioner ()
 Constructor. More...
 
 BlockPreconditioner (const BlockPreconditioner &)=delete
 Broken copy constructor. More...
 
virtual ~BlockPreconditioner ()
 Destructor. More...
 
void operator= (const BlockPreconditioner &)=delete
 Broken assignment operator. More...
 
CRDoubleMatrixmatrix_pt () const
 
void turn_on_recursive_debug_flag ()
 
void turn_off_recursive_debug_flag ()
 
void turn_on_debug_flag ()
 Toggles on the debug flag. More...
 
void turn_off_debug_flag ()
 Toggles off the debug flag. More...
 
void turn_into_subsidiary_block_preconditioner (BlockPreconditioner< CRDoubleMatrix > *master_block_prec_pt, const Vector< unsigned > &doftype_in_master_preconditioner_coarse)
 
void turn_into_subsidiary_block_preconditioner (BlockPreconditioner< CRDoubleMatrix > *master_block_prec_pt, const Vector< unsigned > &doftype_in_master_preconditioner_coarse, const Vector< Vector< unsigned >> &doftype_coarsen_map_coarse)
 
virtual void block_setup ()
 
void block_setup (const Vector< unsigned > &dof_to_block_map)
 
void get_block (const unsigned &i, const unsigned &j, CRDoubleMatrix &output_matrix, const bool &ignore_replacement_block=false) const
 
CRDoubleMatrix get_block (const unsigned &i, const unsigned &j, const bool &ignore_replacement_block=false) const
 
void set_master_matrix_pt (CRDoubleMatrix *in_matrix_pt)
 Set the matrix_pt in the upper-most master preconditioner. More...
 
void get_block_other_matrix (const unsigned &i, const unsigned &j, CRDoubleMatrix *in_matrix_pt, CRDoubleMatrix &output_matrix)
 
void get_blocks (DenseMatrix< bool > &required_blocks, DenseMatrix< CRDoubleMatrix * > &block_matrix_pt) const
 
void get_dof_level_block (const unsigned &i, const unsigned &j, CRDoubleMatrix &output_block, const bool &ignore_replacement_block=false) const
 
void get_dof_level_block (const unsigned &block_i, const unsigned &block_j, CRDoubleMatrix &output_block, const bool &ignore_replacement_block) const
 
CRDoubleMatrix get_concatenated_block (const VectorMatrix< BlockSelector > &selected_block)
 
void get_concatenated_block_vector (const Vector< unsigned > &block_vec_number, const DoubleVector &v, DoubleVector &b)
 
void return_concatenated_block_vector (const Vector< unsigned > &block_vec_number, const DoubleVector &b, DoubleVector &v) const
 Takes concatenated block ordered vector, b, and copies its. More...
 
void get_block_vectors (const Vector< unsigned > &block_vec_number, const DoubleVector &v, Vector< DoubleVector > &s) const
 
void get_block_vectors (const DoubleVector &v, Vector< DoubleVector > &s) const
 
void return_block_vectors (const Vector< unsigned > &block_vec_number, const Vector< DoubleVector > &s, DoubleVector &v) const
 
void return_block_vectors (const Vector< DoubleVector > &s, DoubleVector &v) const
 
void get_block_vector (const unsigned &n, const DoubleVector &v, DoubleVector &b) const
 
void return_block_vector (const unsigned &n, const DoubleVector &b, DoubleVector &v) const
 
void get_block_ordered_preconditioner_vector (const DoubleVector &v, DoubleVector &w)
 
void return_block_ordered_preconditioner_vector (const DoubleVector &w, DoubleVector &v) const
 
unsigned nblock_types () const
 Return the number of block types. More...
 
unsigned ndof_types () const
 Return the total number of DOF types. More...
 
const Meshmesh_pt (const unsigned &i) const
 
unsigned nmesh () const
 
int block_number (const unsigned &i_dof) const
 Return the block number corresponding to a global index i_dof. More...
 
int index_in_block (const unsigned &i_dof) const
 
const LinearAlgebraDistributionblock_distribution_pt (const unsigned &b) const
 Access function to the block distributions (const version). More...
 
LinearAlgebraDistributionblock_distribution_pt (const unsigned b)
 Access function to the block distributions (non-const version). More...
 
LinearAlgebraDistributiondof_block_distribution_pt (const unsigned &b)
 Access function to the dof-level block distributions. More...
 
const LinearAlgebraDistributionmaster_distribution_pt () const
 
unsigned ndof_types_in_mesh (const unsigned &i) const
 
bool is_subsidiary_block_preconditioner () const
 
bool is_master_block_preconditioner () const
 
void set_block_output_to_files (const std::string &basefilename)
 
void disable_block_output_to_files ()
 Turn off output of blocks (by clearing the basefilename string). More...
 
bool block_output_on () const
 Test if output of blocks is on or not. More...
 
void output_blocks_to_files (const std::string &basefilename, const unsigned &precision=8) const
 
void post_block_matrix_assembly_partial_clear ()
 
BlockPreconditioner< CRDoubleMatrix > * master_block_preconditioner_pt () const
 Access function to the master block preconditioner pt. More...
 
void clear_block_preconditioner_base ()
 
void document ()
 
Vector< Vector< unsigned > > doftype_coarsen_map_fine () const
 
Vector< unsignedget_fine_grain_dof_types_in (const unsigned &i) const
 
unsigned nfine_grain_dof_types_in (const unsigned &i) const
 
MapMatrix< unsigned, CRDoubleMatrix * > replacement_dof_block_pt () const
 Access function to the replaced dof-level blocks. More...
 
void setup_matrix_vector_product (MatrixVectorProduct *matvec_prod_pt, CRDoubleMatrix *block_pt, const Vector< unsigned > &block_col_indices)
 
void setup_matrix_vector_product (MatrixVectorProduct *matvec_prod_pt, CRDoubleMatrix *block_pt, const unsigned &block_col_index)
 
void internal_get_block_ordered_preconditioner_vector (const DoubleVector &v, DoubleVector &w) const
 
void internal_return_block_ordered_preconditioner_vector (const DoubleVector &w, DoubleVector &v) const
 
unsigned internal_nblock_types () const
 
unsigned internal_ndof_types () const
 
void internal_return_block_vector (const unsigned &n, const DoubleVector &b, DoubleVector &v) const
 
void internal_get_block_vector (const unsigned &n, const DoubleVector &v, DoubleVector &b) const
 
void internal_get_block_vectors (const Vector< unsigned > &block_vec_number, const DoubleVector &v, Vector< DoubleVector > &s) const
 
void internal_get_block_vectors (const DoubleVector &v, Vector< DoubleVector > &s) const
 
void internal_return_block_vectors (const Vector< unsigned > &block_vec_number, const Vector< DoubleVector > &s, DoubleVector &v) const
 
void internal_return_block_vectors (const Vector< DoubleVector > &s, DoubleVector &v) const
 
void internal_get_block (const unsigned &i, const unsigned &j, CRDoubleMatrix &output_block) const
 
void internal_get_block (const unsigned &block_i, const unsigned &block_j, CRDoubleMatrix &output_block) const
 
int internal_block_number (const unsigned &i_dof) const
 
int internal_index_in_block (const unsigned &i_dof) const
 
const LinearAlgebraDistributioninternal_block_distribution_pt (const unsigned &b) const
 Access function to the internal block distributions. More...
 
void insert_auxiliary_block_distribution (const Vector< unsigned > &block_vec_number, LinearAlgebraDistribution *dist_pt)
 
void block_matrix_test (const unsigned &i, const unsigned &j, const CRDoubleMatrix *block_matrix_pt) const
 
int get_index_of_value (const Vector< myType > &vec, const myType val, const bool sorted=false) const
 
- Public Member Functions inherited from oomph::Preconditioner
 Preconditioner ()
 Constructor. More...
 
 Preconditioner (const Preconditioner &)=delete
 Broken copy constructor. More...
 
void operator= (const Preconditioner &)=delete
 Broken assignment operator. More...
 
virtual ~Preconditioner ()
 Destructor (empty) More...
 
virtual void preconditioner_solve_transpose (const DoubleVector &r, DoubleVector &z)
 
void setup (DoubleMatrixBase *matrix_pt)
 
void setup (const Problem *problem_pt, DoubleMatrixBase *matrix_pt)
 
void enable_silent_preconditioner_setup ()
 Set up the block preconditioner quietly! More...
 
void disable_silent_preconditioner_setup ()
 Be verbose in the block preconditioner setup. More...
 
virtual void set_matrix_pt (DoubleMatrixBase *matrix_pt)
 Set the matrix pointer. More...
 
virtual const OomphCommunicatorcomm_pt () const
 Get function for comm pointer. More...
 
virtual void set_comm_pt (const OomphCommunicator *const comm_pt)
 Set the communicator pointer. More...
 
double setup_time () const
 Returns the time to setup the preconditioner. More...
 
virtual void turn_into_subsidiary_block_preconditioner (BlockPreconditioner< CRDoubleMatrix > *master_block_prec_pt, const Vector< unsigned > &doftype_in_master_preconditioner_coarse)
 
virtual void turn_into_subsidiary_block_preconditioner (BlockPreconditioner< CRDoubleMatrix > *master_block_prec_pt, const Vector< unsigned > &doftype_in_master_preconditioner_coarse, const Vector< Vector< unsigned >> &doftype_coarsen_map_coarse)
 
- Public Member Functions inherited from oomph::DistributableLinearAlgebraObject
 DistributableLinearAlgebraObject ()
 Default constructor - create a distribution. More...
 
 DistributableLinearAlgebraObject (const DistributableLinearAlgebraObject &matrix)=delete
 Broken copy constructor. More...
 
void operator= (const DistributableLinearAlgebraObject &)=delete
 Broken assignment operator. More...
 
virtual ~DistributableLinearAlgebraObject ()
 Destructor. More...
 
LinearAlgebraDistributiondistribution_pt () const
 access to the LinearAlgebraDistribution More...
 
unsigned nrow () const
 access function to the number of global rows. More...
 
unsigned nrow_local () const
 access function for the num of local rows on this processor. More...
 
unsigned nrow_local (const unsigned &p) const
 access function for the num of local rows on this processor. More...
 
unsigned first_row () const
 access function for the first row on this processor More...
 
unsigned first_row (const unsigned &p) const
 access function for the first row on this processor More...
 
bool distributed () const
 distribution is serial or distributed More...
 
bool distribution_built () const
 
void build_distribution (const LinearAlgebraDistribution *const dist_pt)
 
void build_distribution (const LinearAlgebraDistribution &dist)
 

Private Member Functions

void clean_up_memory ()
 clears the memory More...
 

Private Attributes

double Scaling
 
PreconditionerPreconditioner_pt
 the preconditioner pt More...
 
SubsidiaryPreconditionerFctPt Subsidiary_preconditioner_function_pt
 the SubisidaryPreconditionerFctPt More...
 

Additional Inherited Members

- Protected Member Functions inherited from oomph::BlockPreconditioner< CRDoubleMatrix >
void set_nmesh (const unsigned &n)
 
void set_mesh (const unsigned &i, const Mesh *const mesh_pt, const bool &allow_multiple_element_type_in_mesh=false)
 
void set_replacement_dof_block (const unsigned &block_i, const unsigned &block_j, CRDoubleMatrix *replacement_dof_block_pt)
 
bool any_mesh_distributed () const
 
int internal_dof_number (const unsigned &i_dof) const
 
unsigned internal_index_in_dof (const unsigned &i_dof) const
 
unsigned internal_block_dimension (const unsigned &b) const
 
unsigned internal_dof_block_dimension (const unsigned &i) const
 
unsigned master_nrow () const
 
unsigned internal_master_dof_number (const unsigned &b) const
 
const LinearAlgebraDistributioninternal_preconditioner_matrix_distribution_pt () const
 
const LinearAlgebraDistributionpreconditioner_matrix_distribution_pt () const
 
- Protected Member Functions inherited from oomph::DistributableLinearAlgebraObject
void clear_distribution ()
 
- Protected Attributes inherited from oomph::BlockPreconditioner< CRDoubleMatrix >
MapMatrix< unsigned, CRDoubleMatrix * > Replacement_dof_block_pt
 The replacement dof-level blocks. More...
 
Vector< LinearAlgebraDistribution * > Block_distribution_pt
 The distribution for the blocks. More...
 
Vector< Vector< unsigned > > Block_to_dof_map_coarse
 
Vector< Vector< unsigned > > Block_to_dof_map_fine
 Mapping for the block types to the most fine grain dof types. More...
 
Vector< Vector< unsigned > > Doftype_coarsen_map_coarse
 
Vector< Vector< unsigned > > Doftype_coarsen_map_fine
 
Vector< LinearAlgebraDistribution * > Internal_block_distribution_pt
 Storage for the default distribution for each internal block. More...
 
Vector< LinearAlgebraDistribution * > Dof_block_distribution_pt
 
Vector< unsignedAllow_multiple_element_type_in_mesh
 
Vector< const Mesh * > Mesh_pt
 
Vector< unsignedNdof_types_in_mesh
 
unsigned Internal_nblock_types
 
unsigned Internal_ndof_types
 
- Protected Attributes inherited from oomph::Preconditioner
bool Silent_preconditioner_setup
 Boolean to indicate whether or not the build should be done silently. More...
 
std::ostream * Stream_pt
 Pointer to the output stream – defaults to std::cout. More...
 

Detailed Description

///////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////// Subsidiary helper preconditioner for the PseudoElasticPreconditioner. Required to construct the augmented elastic system prior to preconditioning. 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.

Member Typedef Documentation

◆ SubsidiaryPreconditionerFctPt

typedef Preconditioner*(* oomph::PseudoElasticPreconditionerSubsidiaryPreconditionerOld::SubsidiaryPreconditionerFctPt) ()

typedef for a function that allows other preconditioners to be emplyed to solve the subsidiary linear systems. The function should return a pointer to the requred subsidiary preconditioner generated using new. This preconditioner is responsible for the destruction of the subsidiary preconditioners.

Constructor & Destructor Documentation

◆ PseudoElasticPreconditionerSubsidiaryPreconditionerOld() [1/2]

oomph::PseudoElasticPreconditionerSubsidiaryPreconditionerOld::PseudoElasticPreconditionerSubsidiaryPreconditionerOld ( )
inline

Constructor.

508  {
509  Scaling = 1.0;
510  Preconditioner_pt = 0;
512  }
SubsidiaryPreconditionerFctPt Subsidiary_preconditioner_function_pt
the SubisidaryPreconditionerFctPt
Definition: pseudo_elastic_preconditioner.h:563
Preconditioner * Preconditioner_pt
the preconditioner pt
Definition: pseudo_elastic_preconditioner.h:560
double Scaling
Definition: pseudo_elastic_preconditioner.h:557

References Preconditioner_pt, Scaling, and Subsidiary_preconditioner_function_pt.

◆ ~PseudoElasticPreconditionerSubsidiaryPreconditionerOld()

oomph::PseudoElasticPreconditionerSubsidiaryPreconditionerOld::~PseudoElasticPreconditionerSubsidiaryPreconditionerOld ( )
inline

Destructor.

516  {
517  this->clean_up_memory();
518  }
void clean_up_memory()
clears the memory
Definition: pseudo_elastic_preconditioner.h:550

References clean_up_memory().

◆ PseudoElasticPreconditionerSubsidiaryPreconditionerOld() [2/2]

oomph::PseudoElasticPreconditionerSubsidiaryPreconditionerOld::PseudoElasticPreconditionerSubsidiaryPreconditionerOld ( const PseudoElasticPreconditionerSubsidiaryPreconditionerOld )
delete

Broken copy constructor.

Member Function Documentation

◆ clean_up_memory()

void oomph::PseudoElasticPreconditionerSubsidiaryPreconditionerOld::clean_up_memory ( )
inlineprivatevirtual

clears the memory

Reimplemented from oomph::Preconditioner.

551  {
552  delete Preconditioner_pt;
553  Preconditioner_pt = 0;
554  }

References Preconditioner_pt.

Referenced by setup(), and ~PseudoElasticPreconditionerSubsidiaryPreconditionerOld().

◆ preconditioner_solve()

void oomph::PseudoElasticPreconditionerSubsidiaryPreconditionerOld::preconditioner_solve ( const DoubleVector r,
DoubleVector z 
)
virtual

Apply the preconditioner.

Implements oomph::Preconditioner.

898  {
899  DoubleVector x;
901  DoubleVector y;
904  }
std::vector< double > DoubleVector
loads clump configuration
Definition: ClumpInput.h:26
void return_block_ordered_preconditioner_vector(const DoubleVector &w, DoubleVector &v) const
Definition: block_preconditioner.cc:5046
void get_block_ordered_preconditioner_vector(const DoubleVector &v, DoubleVector &w)
Definition: block_preconditioner.cc:4793
virtual void preconditioner_solve(const DoubleVector &r, DoubleVector &z)=0
Scalar * y
Definition: level1_cplx_impl.h:128
r
Definition: UniformPSDSelfTest.py:20
list x
Definition: plotDoE.py:28

References oomph::BlockPreconditioner< CRDoubleMatrix >::get_block_ordered_preconditioner_vector(), Preconditioner_pt, oomph::Preconditioner::preconditioner_solve(), oomph::BlockPreconditioner< CRDoubleMatrix >::return_block_ordered_preconditioner_vector(), plotDoE::x, and y.

◆ scaling()

double& oomph::PseudoElasticPreconditionerSubsidiaryPreconditionerOld::scaling ( )
inline

Specify the scaling. Default is 1.0 Must be called before setup(...).

537  {
538  return Scaling;
539  }

References Scaling.

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

◆ set_subsidiary_preconditioner_function()

void oomph::PseudoElasticPreconditionerSubsidiaryPreconditionerOld::set_subsidiary_preconditioner_function ( SubsidiaryPreconditionerFctPt  sub_prec_fn)
inline

access function to set the subsidiary preconditioner function.

544  {
546  }

References Subsidiary_preconditioner_function_pt.

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

◆ setup()

void oomph::PseudoElasticPreconditionerSubsidiaryPreconditionerOld::setup ( )
virtual

Broken assignment operator.

Setup the preconditioner.

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

Implements oomph::Preconditioner.

814  {
815  // clean memory
816  this->clean_up_memory();
817 
818 #ifdef PARANOID
819  // paranoid check that this preconditioner has an even number of DOF types
820  if (this->ndof_types() % 2 != 0)
821  {
822  std::ostringstream error_message;
823  error_message
824  << "This SUBSIDIARY preconditioner requires an even number of "
825  << "types of DOF";
826  throw OomphLibError(
827  error_message.str(), OOMPH_CURRENT_FUNCTION, OOMPH_EXCEPTION_LOCATION);
828  }
829 #endif
830 
831  // assemble dof_to_block_map
832  unsigned ndof_types = this->ndof_types();
833  Vector<unsigned> dof_to_block_map(ndof_types, 0);
834  for (unsigned i = ndof_types / 2; i < ndof_types; i++)
835  {
836  dof_to_block_map[i] = 1;
837  }
838 
839  this->block_setup(dof_to_block_map);
840 
841  // get block 11
842  CRDoubleMatrix* s11_pt = new CRDoubleMatrix;
843  this->get_block(1, 1, *s11_pt);
844 
845  // add the scaled identity matrix to block 11
846  double* s11_values = s11_pt->value();
847  int* s11_column_index = s11_pt->column_index();
848  int* s11_row_start = s11_pt->row_start();
849  int s11_nrow_local = s11_pt->nrow_local();
850  int s11_first_row = s11_pt->first_row();
851  for (int i = 0; i < s11_nrow_local; i++)
852  {
853  bool found = false;
854  for (int j = s11_row_start[i]; j < s11_row_start[i + 1] && !found; j++)
855  {
856  if (s11_column_index[j] == i + s11_first_row)
857  {
858  s11_values[j] += Scaling;
859  found = true;
860  }
861  }
862  }
863 
864  VectorMatrix<BlockSelector> required_blocks(2, 2);
865  const bool want_block = true;
866  for (unsigned b_i = 0; b_i < 2; b_i++)
867  {
868  for (unsigned b_j = 0; b_j < 2; b_j++)
869  {
870  required_blocks[b_i][b_j].select_block(b_i, b_j, want_block);
871  }
872  }
873 
874  required_blocks[1][1].set_replacement_block_pt(s11_pt);
875 
876  CRDoubleMatrix s_prec_pt = this->get_concatenated_block(required_blocks);
877 
878  delete s11_pt;
879  s11_pt = 0;
880 
881  // setup the preconditioner
883  {
884  Preconditioner_pt = (*Subsidiary_preconditioner_function_pt)();
885  }
886  else
887  {
888  Preconditioner_pt = new SuperLUPreconditioner;
889  }
890  Preconditioner_pt->setup(&s_prec_pt);
891  }
int i
Definition: BiCGSTAB_step_by_step.cpp:9
CRDoubleMatrix get_concatenated_block(const VectorMatrix< BlockSelector > &selected_block)
Definition: block_preconditioner.h:1134
void get_block(const unsigned &i, const unsigned &j, CRDoubleMatrix &output_matrix, const bool &ignore_replacement_block=false) const
Definition: block_preconditioner.h:673
unsigned ndof_types() const
Return the total number of DOF types.
Definition: block_preconditioner.h:1694
virtual void block_setup()
Definition: block_preconditioner.cc:2483
void setup(DoubleMatrixBase *matrix_pt)
Definition: preconditioner.h:94
bool found
Definition: MergeRestartFiles.py:24
#define OOMPH_EXCEPTION_LOCATION
Definition: oomph_definitions.h:61
#define OOMPH_CURRENT_FUNCTION
Definition: oomph_definitions.h:86
std::ptrdiff_t j
Definition: tut_arithmetic_redux_minmax.cpp:2

References oomph::BlockPreconditioner< CRDoubleMatrix >::block_setup(), clean_up_memory(), oomph::CRDoubleMatrix::column_index(), oomph::DistributableLinearAlgebraObject::first_row(), MergeRestartFiles::found, oomph::BlockPreconditioner< CRDoubleMatrix >::get_block(), oomph::BlockPreconditioner< CRDoubleMatrix >::get_concatenated_block(), i, j, oomph::BlockPreconditioner< CRDoubleMatrix >::ndof_types(), oomph::DistributableLinearAlgebraObject::nrow_local(), OOMPH_CURRENT_FUNCTION, OOMPH_EXCEPTION_LOCATION, Preconditioner_pt, oomph::CRDoubleMatrix::row_start(), Scaling, oomph::Preconditioner::setup(), Subsidiary_preconditioner_function_pt, and oomph::CRDoubleMatrix::value().

Member Data Documentation

◆ Preconditioner_pt

Preconditioner* oomph::PseudoElasticPreconditionerSubsidiaryPreconditionerOld::Preconditioner_pt
private

◆ Scaling

double oomph::PseudoElasticPreconditionerSubsidiaryPreconditionerOld::Scaling
private

◆ Subsidiary_preconditioner_function_pt

SubsidiaryPreconditionerFctPt oomph::PseudoElasticPreconditionerSubsidiaryPreconditionerOld::Subsidiary_preconditioner_function_pt
private

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