16 #ifndef amg_petsc_preconditioner_h
17 #define amg_petsc_preconditioner_h
21 #ifdef DEAL_II_WITH_PETSC
36 :
public dealii::ParameterAcceptor,
37 public dealii::PETScWrappers::PreconditionBoomerAMG
41 AdditionalData::RelaxationType;
46 const std::string &name =
"",
55 RelaxationType::GaussianElimination,
57 const double tol = 0.0,
65 initialize(
const dealii::PETScWrappers::MatrixBase &matrix);
A parsed AMG preconditioner which uses parameter files to choose between different options.
double strong_threshold
Threshold of when nodes are considered strongly connected.
unsigned int aggressive_coarsening_num_levels
Number of levels of aggressive coarsening.
bool symmetric_operator
Set this flag to true if you have a symmetric system matrix and you want to use a solver which assume...
RelaxationType relaxation_type_coarse
Choose relaxation type coarse.
PETScWrappers::PreconditionBoomerAMG::AdditionalData::RelaxationType RelaxationType
unsigned int n_sweeps_coarse
Choose number of sweeps on coarse grid.
RelaxationType relaxation_type_up
Choose relaxation type up.
PETScAMGPreconditioner(const std::string &name="", 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, const RelaxationType relaxation_type_up=RelaxationType::SORJacobi, const RelaxationType relaxation_type_down=RelaxationType::SORJacobi, const RelaxationType relaxation_type_coarse=RelaxationType::GaussianElimination, const unsigned int n_sweeps_coarse=1, const double tol=0.0, const unsigned int max_iter=1, const bool w_cycle=false)
Constructor.
double tol
Choose BommerAMG tolerance.
void add_parameters()
Declare preconditioner options.
double max_row_sum
If set to a value smaller than 1.0 then diagonally dominant parts of the matrix are treated as having...
bool w_cycle
Defines whether a w-cycle should be used instead of the standard setting of a v-cycle.
unsigned int max_iter
Choose BommerAMG maximum number of cycles.
RelaxationType relaxation_type_down
Choose relaxation type down.
bool output_details
Setting this flag to true produces debug output from HYPRE, when the preconditioner is constructed.