Public Member Functions | |
AdditionalData (const bool elliptic=true, const bool higher_order_elements=false, const double aggregation_threshold=1e-4, const std::vector< std::vector< bool > > &constant_modes=std::vector< std::vector< bool > >(1), const unsigned int smoother_sweeps=3, const unsigned int smoother_overlap=0, const bool output_details=false) | |
Public Attributes | |
bool | elliptic |
bool | higher_order_elements |
double | aggregation_threshold |
std::vector< std::vector< bool > > | constant_modes |
unsigned int | smoother_sweeps |
unsigned int | smoother_overlap |
bool | output_details |
TrilinosWrappers::PreconditionAMG::AdditionalData::AdditionalData | ( | const bool | elliptic = true , |
|
const bool | higher_order_elements = false , |
|||
const double | aggregation_threshold = 1e-4 , |
|||
const std::vector< std::vector< bool > > & | constant_modes = std::vector< std::vector< bool > >(1) , |
|||
const unsigned int | smoother_sweeps = 3 , |
|||
const unsigned int | smoother_overlap = 0 , |
|||
const bool | output_details = false | |||
) |
Constructor. By default, we pretend to work on elliptic problems with linear finite elements on a scalar equation.
Determines whether the AMG preconditioner should be optimized for elliptic problems (ML option smoothed aggregation SA, using a Chebyshev smoother) or for non-elliptic problems (ML option non-symmetric smoothed aggregation NSSA, smoother is SSOR with underrelaxation).
Determines whether the matrix that the preconditioner is built upon is generated from linear or higher-order elements.
This threshold tells the AMG setup how the coarsening should be performed. In the AMG used by ML, all points that strongly couple with the tentative coarse-level point form one aggregate. The term strong coupling is controlled by the variable aggregation_threshold
, meaning that all elements that are not smaller than aggregation_threshold
times the diagonal element do couple strongly.
std::vector<std::vector<bool> > TrilinosWrappers::PreconditionAMG::AdditionalData::constant_modes |
Specifies the constant modes (near null space) of the matrix. This parameter tells AMG whether we work on a scalar equation (where the near null space only consists of ones) or on a vector-valued equation.
Determines how many sweeps of the smoother should be performed. When the flag elliptic
is set to true
, i.e., for elliptic or almost elliptic problems, the polynomial degree of the Chebyshev smoother is set to smoother_sweeps
. The term sweeps refers to the number of matrix-vector products performed in the Chebyshev case. In the non-elliptic case, smoother_sweeps
sets the number of SSOR relaxation sweeps for post-smoothing to be performed.
Determines the overlap in the SSOR/Chebyshev error smoother when run in parallel.
If this flag is set to true
, then internal information from the ML preconditioner is printed to screen. This can be useful when debugging the preconditioner.