16 #ifndef amg_preconditioner_h
17 #define amg_preconditioner_h
21 #ifdef DEAL_II_WITH_TRILINOS
36 public dealii::TrilinosWrappers::PreconditionAMG
57 template <
typename Matrix>
61 using dealii::TrilinosWrappers::PreconditionAMG::initialize;
A parsed AMG preconditioner which uses parameter files to choose between different options.
bool elliptic
Determines whether the AMG preconditioner should be optimized for elliptic problems (ML option smooth...
double aggregation_threshold
This threshold tells the AMG setup how the coarsening should be performed.
void add_parameters()
Declare preconditioner options.
unsigned int n_cycles
Defines how many multigrid cycles should be performed by the preconditioner.
std::string smoother_type
Determines which smoother to use for the AMG cycle.
std::string coarse_type
Determines which solver to use on the coarsest level.
bool w_cycle
Defines whether a w-cycle should be used instead of the standard setting of a v-cycle.
std::vector< std::vector< bool > > constant_modes
Constant modes of the matrix.
bool output_details
If this flag is set to true, then internal information from the ML preconditioner is printed to scree...
AMGPreconditioner(const std::string &name="", const bool &elliptic=true, const bool &higher_order_elements=false, const unsigned int &n_cycles=1, const bool &w_cycle=false, const double &aggregation_threshold=1e-4, const unsigned int &smoother_sweeps=2, const unsigned int &smoother_overlap=0, const bool &output_details=false, const std::string &smoother_type="Chebyshev", const std::string &coarse_type="Amesos-KLU")
Constructor.
unsigned int smoother_overlap
Determines the overlap in the SSOR/Chebyshev error smoother when run in parallel.
void set_constant_modes(const std::vector< std::vector< bool >> &constant_modes)
Set the constant modes of the AMG preconditioner.
void initialize(const Matrix &matrix)
Initialize the preconditioner using matrix.
std::string var_const_modes
Specifies the variable associated to the constant modes (near null space) of the matrix.
bool higher_order_elements
Determines whether the matrix that the preconditioner is built upon is generated from linear or highe...
unsigned int smoother_sweeps
Determines how many sweeps of the smoother should be performed.
SymmetricTensor< 2, dim, Number > e(const Tensor< 2, dim, Number > &F)