deal.II version GIT relicensing-2167-g9622207b8f 2024-11-21 12:40:00+00:00
|
#include <deal.II/lac/trilinos_precondition.h>
Public Member Functions | |
AdditionalData (const unsigned int block_size=1, const std::string &block_creation_type="linear", const double omega=1, const double min_diagonal=0, const unsigned int n_sweeps=1) | |
Public Attributes | |
unsigned int | block_size |
std::string | block_creation_type |
double | omega |
double | min_diagonal |
unsigned int | n_sweeps |
Standardized data struct to pipe additional flags to the preconditioner. The parameter block_size
sets the size of small blocks. It is recommended to choose this parameter not too large (a few hundreds at most) since this implementation uses a dense matrix for the block. The parameter block_creation_type
allows to pass the strategy for finding the blocks to Ifpack. The parameter omega
specifies the relaxation parameter in the SOR preconditioner. The parameter min_diagonal
can be used to make the application of the preconditioner also possible when some diagonal elements are zero. In a default application this would mean that we divide by zero, so by setting the parameter min_diagonal
to a small nonzero value the SOR will work on a matrix that is not too far away from the one we want to treat.
Definition at line 525 of file trilinos_precondition.h.
TrilinosWrappers::PreconditionBlockJacobi::AdditionalData::AdditionalData | ( | const unsigned int | block_size = 1 , |
const std::string & | block_creation_type = "linear" , |
||
const double | omega = 1 , |
||
const double | min_diagonal = 0 , |
||
const unsigned int | n_sweeps = 1 |
||
) |
Constructor. By default, use a block size of 1, use linear subdivision of the rows, set the damping parameter to one, and do not modify the diagonal.
Definition at line 235 of file trilinos_precondition.cc.
unsigned int TrilinosWrappers::PreconditionBlockJacobi::AdditionalData::block_size |
This specifies the size of blocks.
Definition at line 541 of file trilinos_precondition.h.
std::string TrilinosWrappers::PreconditionBlockJacobi::AdditionalData::block_creation_type |
Strategy for creation of blocks passed on to Ifpack block relaxation (variable 'partitioner: type') with this string as the given value. Available types in Ifpack include "linear" (i.e., divide the local range of the matrix in slices of the block size), "greedy" "metis". For a full list, see the documentation of Ifpack.
Definition at line 550 of file trilinos_precondition.h.
double TrilinosWrappers::PreconditionBlockJacobi::AdditionalData::omega |
This specifies the (over-) relaxation parameter in the Jacobi preconditioner.
Definition at line 556 of file trilinos_precondition.h.
double TrilinosWrappers::PreconditionBlockJacobi::AdditionalData::min_diagonal |
This specifies the minimum value the diagonal elements should have. This might be necessary when the block Jacobi preconditioner is used on matrices with zero diagonal elements. In that case, a straight-forward application would not be possible since we divide by the diagonal element.
Definition at line 565 of file trilinos_precondition.h.
unsigned int TrilinosWrappers::PreconditionBlockJacobi::AdditionalData::n_sweeps |
Sets how many times the given operation should be applied during the vmult() operation.
Definition at line 571 of file trilinos_precondition.h.