|
| BlockTriangularPreconditioner () |
| Constructor. (By default this preconditioner is upper triangular). More...
|
|
virtual | ~BlockTriangularPreconditioner () |
| Destructor - delete the preconditioner matrices. More...
|
|
virtual void | clean_up_memory () |
| clean up the memory More...
|
|
| BlockTriangularPreconditioner (const BlockTriangularPreconditioner &)=delete |
| Broken copy constructor. More...
|
|
void | operator= (const BlockTriangularPreconditioner &)=delete |
| Broken assignment operator. More...
|
|
void | preconditioner_solve (const DoubleVector &r, DoubleVector &z) |
| Apply preconditioner to r. More...
|
|
void | setup () |
| Setup the preconditioner. More...
|
|
void | upper_triangular () |
| Use as an upper triangular preconditioner. More...
|
|
void | lower_triangular () |
| Use as a lower triangular preconditioner. More...
|
|
| GeneralPurposeBlockPreconditioner () |
| constructor More...
|
|
virtual | ~GeneralPurposeBlockPreconditioner () |
|
| GeneralPurposeBlockPreconditioner (const GeneralPurposeBlockPreconditioner &)=delete |
| Broken copy constructor. More...
|
|
void | operator= (const GeneralPurposeBlockPreconditioner &)=delete |
| Broken assignment operator. More...
|
|
void | set_subsidiary_preconditioner_function (SubsidiaryPreconditionerFctPt sub_prec_fn) |
| access function to set the subsidiary preconditioner function. More...
|
|
void | reset_subsidiary_preconditioner_function_to_default () |
| Reset the subsidiary preconditioner function to its default. More...
|
|
void | set_subsidiary_preconditioner_pt (Preconditioner *prec, const unsigned &i) |
|
Preconditioner * | subsidiary_preconditioner_pt (const unsigned &i) const |
|
void | set_dof_to_block_map (Vector< unsigned > &dof_to_block_map) |
| Specify a DOF to block map. More...
|
|
void | add_mesh (const Mesh *mesh_pt, const bool &allow_multiple_element_type_in_mesh=false) |
|
unsigned | gp_nmesh () |
|
| BlockPreconditioner () |
| Constructor. More...
|
|
virtual | ~BlockPreconditioner () |
| Destructor. More...
|
|
| BlockPreconditioner (const BlockPreconditioner &)=delete |
| Broken copy constructor. More...
|
|
void | operator= (const BlockPreconditioner &)=delete |
| Broken assignment operator. More...
|
|
MATRIX * | matrix_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< MATRIX > *master_block_prec_pt, const Vector< unsigned > &doftype_in_master_preconditioner_coarse) |
|
void | turn_into_subsidiary_block_preconditioner (BlockPreconditioner< MATRIX > *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, MATRIX &output_matrix, const bool &ignore_replacement_block=false) const |
|
MATRIX | get_block (const unsigned &i, const unsigned &j, const bool &ignore_replacement_block=false) const |
|
void | set_master_matrix_pt (MATRIX *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, MATRIX *in_matrix_pt, MATRIX &output_matrix) |
|
void | get_blocks (DenseMatrix< bool > &required_blocks, DenseMatrix< MATRIX * > &block_matrix_pt) const |
|
void | get_dof_level_block (const unsigned &i, const unsigned &j, MATRIX &output_block, const bool &ignore_replacement_block=false) const |
|
MATRIX | 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 Mesh * | mesh_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 LinearAlgebraDistribution * | block_distribution_pt (const unsigned &b) const |
| Access function to the block distributions (const version). More...
|
|
LinearAlgebraDistribution * | block_distribution_pt (const unsigned b) |
| Access function to the block distributions (non-const version). More...
|
|
LinearAlgebraDistribution * | dof_block_distribution_pt (const unsigned &b) |
| Access function to the dof-level block distributions. More...
|
|
const LinearAlgebraDistribution * | master_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< MATRIX > * | 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< unsigned > | get_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, MATRIX &output_block) const |
|
int | internal_block_number (const unsigned &i_dof) const |
|
int | internal_index_in_block (const unsigned &i_dof) const |
|
const LinearAlgebraDistribution * | internal_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 MATRIX *block_matrix_pt) const |
|
template<typename myType > |
int | get_index_of_value (const Vector< myType > &vec, const myType val, const bool sorted=false) const |
|
void | internal_get_block (const unsigned &block_i, const unsigned &block_j, CRDoubleMatrix &output_block) const |
|
void | get_dof_level_block (const unsigned &block_i, const unsigned &block_j, CRDoubleMatrix &output_block, const bool &ignore_replacement_block) const |
|
| 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 OomphCommunicator * | comm_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) |
|
| 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...
|
|
LinearAlgebraDistribution * | distribution_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) |
|
template<typename MATRIX>
class oomph::BlockTriangularPreconditioner< MATRIX >
//////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////// General purpose block triangular preconditioner By default this is Upper triangular. By default SuperLUPreconditioner (or SuperLUDistPreconditioner) is used to solve the subsidiary systems, but other preconditioners can be used by setting them using passing a pointer to a function of type SubsidiaryPreconditionerFctPt to the method subsidiary_preconditioner_function_pt().