|
| | BoussinesqPreconditioner (Problem *problem_pt) |
| |
| | ~BoussinesqPreconditioner () |
| | Destructor: Clean up. More...
|
| |
| | BoussinesqPreconditioner (const BoussinesqPreconditioner &) |
| | Broken copy constructor. More...
|
| |
| void | use_block_diagonal_version () |
| | Switch to block-diagonal preconditioner. More...
|
| |
| void | use_block_triangular_version_with_fluid_on_temperature () |
| |
| void | use_block_triangular_version_with_temperature_on_fluid () |
| |
| void | setup () |
| | Setup the preconditioner. More...
|
| |
| void | preconditioner_solve (const DoubleVector &r, DoubleVector &z) |
| | Apply preconditioner to r. More...
|
| |
| NavierStokesSchurComplementPreconditioner * | navier_stokes_preconditioner_pt () const |
| | Access function to the Navier Stokes preconditioner (inexact solver) More...
|
| |
| void | enable_doc_time () |
| | Enable documentation of timings. More...
|
| |
| void | disable_doc_time () |
| | Disable documentation of timings. More...
|
| |
| | BlockPreconditioner () |
| | Constructor. More...
|
| |
| | BlockPreconditioner (const BlockPreconditioner &)=delete |
| | Broken copy constructor. More...
|
| |
| virtual | ~BlockPreconditioner () |
| | Destructor. More...
|
| |
| void | operator= (const BlockPreconditioner &)=delete |
| | Broken assignment operator. More...
|
| |
| CRDoubleMatrix * | 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< 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 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< 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< 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, 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 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 CRDoubleMatrix *block_matrix_pt) const |
| |
| int | get_index_of_value (const Vector< myType > &vec, const myType val, const bool sorted=false) 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) |
| |
Boussinesq preconditioner. This extracts upper/lower triangular blocks in the 3x3 overall block matrix structure arising from the monolithic discretisation of Boussinesq problems. Dofs are decomposed into fluid velocity, pressure and temperature unknowns. NavierStokesSchurComplementPreconditioner is used as the inexact solver for the fluid block; SuperLU (in its incarnation as an "exact" preconditioner) is used for the temperature block. By default we retain the fluid on temperature off diagonal blocks.