Reference documentation for deal.II version Git 5546c7f774 2020-10-25 14:46:39 +0100
\(\newcommand{\dealvcentcolon}{\mathrel{\mathop{:}}}\) \(\newcommand{\dealcoloneq}{\dealvcentcolon\mathrel{\mkern-1.2mu}=}\) \(\newcommand{\jump}[1]{\left[\!\left[ #1 \right]\!\right]}\) \(\newcommand{\average}[1]{\left\{\!\left\{ #1 \right\}\!\right\}}\)
Public Member Functions | Public Attributes | List of all members
PETScWrappers::PreconditionBoomerAMG::AdditionalData Struct Reference

#include <deal.II/lac/petsc_precondition.h>

Public Member Functions

 AdditionalData (const bool symmetric_operator=false, const double strong_threshold=0.25, const double max_row_sum=0.9, const unsigned int aggressive_coarsening_num_levels=0, const bool output_details=false)

Public Attributes

bool symmetric_operator
double strong_threshold
double max_row_sum
unsigned int aggressive_coarsening_num_levels
bool output_details

Detailed Description

Standardized data struct to pipe additional flags to the preconditioner.

Definition at line 683 of file petsc_precondition.h.

Constructor & Destructor Documentation

◆ AdditionalData()

PETScWrappers::PreconditionBoomerAMG::AdditionalData::AdditionalData ( const bool  symmetric_operator = false,
const double  strong_threshold = 0.25,
const double  max_row_sum = 0.9,
const unsigned int  aggressive_coarsening_num_levels = 0,
const bool  output_details = false 

Constructor. Note that BoomerAMG offers a lot more options to set than what is exposed here.

Definition at line 437 of file

Member Data Documentation

◆ symmetric_operator

bool PETScWrappers::PreconditionBoomerAMG::AdditionalData::symmetric_operator

Set this flag to true if you have a symmetric system matrix and you want to use a solver which assumes a symmetric preconditioner like CG. The relaxation is done with SSOR/Jacobi when set to true and with SOR/Jacobi otherwise.

Definition at line 701 of file petsc_precondition.h.

◆ strong_threshold

double PETScWrappers::PreconditionBoomerAMG::AdditionalData::strong_threshold

Threshold of when nodes are considered strongly connected. See HYPRE_BoomerAMGSetStrongThreshold(). Recommended values are 0.25 for 2d and 0.5 for 3d problems, but it is problem dependent.

Definition at line 708 of file petsc_precondition.h.

◆ max_row_sum

double PETScWrappers::PreconditionBoomerAMG::AdditionalData::max_row_sum

If set to a value smaller than 1.0 then diagonally dominant parts of the matrix are treated as having no strongly connected nodes. If the row sum weighted by the diagonal entry is bigger than the given value, it is considered diagonally dominant. This feature is turned of by setting the value to 1.0. This is the default as some matrices can result in having only diagonally dominant entries and thus no multigrid levels are constructed. The default in BoomerAMG for this is 0.9. When you try this, check for a reasonable number of levels created.

Definition at line 721 of file petsc_precondition.h.

◆ aggressive_coarsening_num_levels

unsigned int PETScWrappers::PreconditionBoomerAMG::AdditionalData::aggressive_coarsening_num_levels

Number of levels of aggressive coarsening. Increasing this value reduces the construction time and memory requirements but may decrease effectiveness.

Definition at line 728 of file petsc_precondition.h.

◆ output_details

bool PETScWrappers::PreconditionBoomerAMG::AdditionalData::output_details

Setting this flag to true produces debug output from HYPRE, when the preconditioner is constructed.

Definition at line 734 of file petsc_precondition.h.

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