![]() |
Reference documentation for deal.II version 8.1.0
|
#include <trilinos_precondition.h>
Public Member Functions | |
AdditionalData (const bool elliptic=true, const bool higher_order_elements=false, const unsigned int n_cycles=1, const bool w_cyle=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=2, const unsigned int smoother_overlap=0, const bool output_details=false) | |
Public Attributes | |
bool | elliptic |
bool | higher_order_elements |
unsigned int | n_cycles |
bool | w_cycle |
double | aggregation_threshold |
std::vector< std::vector< bool > > | constant_modes |
unsigned int | smoother_sweeps |
unsigned int | smoother_overlap |
bool | output_details |
A data structure that is used to control details of how the algebraic multigrid is set up. The flags detailed in here are then passed to the Trilinos ML implementation. A structure of the current type are passed to the constructor of PreconditionAMG.
Definition at line 1293 of file trilinos_precondition.h.
TrilinosWrappers::PreconditionAMG::AdditionalData::AdditionalData | ( | const bool | elliptic = true , |
const bool | higher_order_elements = false , |
||
const unsigned int | n_cycles = 1 , |
||
const bool | w_cyle = 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 = 2 , |
||
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.
bool TrilinosWrappers::PreconditionAMG::AdditionalData::elliptic |
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).
Definition at line 1322 of file trilinos_precondition.h.
bool TrilinosWrappers::PreconditionAMG::AdditionalData::higher_order_elements |
Determines whether the matrix that the preconditioner is built upon is generated from linear or higher-order elements.
Definition at line 1330 of file trilinos_precondition.h.
unsigned int TrilinosWrappers::PreconditionAMG::AdditionalData::n_cycles |
Defines how many multigrid cycles should be performed by the preconditioner.
Definition at line 1337 of file trilinos_precondition.h.
bool TrilinosWrappers::PreconditionAMG::AdditionalData::w_cycle |
Defines whether a w-cycle should be used instead of the standard setting of a v-cycle.
Definition at line 1344 of file trilinos_precondition.h.
double TrilinosWrappers::PreconditionAMG::AdditionalData::aggregation_threshold |
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.
Definition at line 1362 of file trilinos_precondition.h.
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.
Definition at line 1373 of file trilinos_precondition.h.
unsigned int TrilinosWrappers::PreconditionAMG::AdditionalData::smoother_sweeps |
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.
Definition at line 1393 of file trilinos_precondition.h.
unsigned int TrilinosWrappers::PreconditionAMG::AdditionalData::smoother_overlap |
Determines the overlap in the SSOR/Chebyshev error smoother when run in parallel.
Definition at line 1400 of file trilinos_precondition.h.
bool TrilinosWrappers::PreconditionAMG::AdditionalData::output_details |
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.
Definition at line 1410 of file trilinos_precondition.h.