Classes | |
struct | AdditionalData |
Public Member Functions | |
PreconditionBlockJacobi (const MatrixBase &matrix, const AdditionalData &additional_data=AdditionalData()) | |
Protected Member Functions | |
virtual void | set_preconditioner_type (PC &pc) const |
Protected Attributes | |
const AdditionalData | additional_data |
A class that implements the interface to use the PETSc Block Jacobi preconditioner. The blocking structure of the matrix is determined by the association of degrees of freedom to the individual processors in an MPI-parallel job. If you use this preconditioner on a sequential job (or an MPI job with only one process) then the entire matrix is the only block.
By default, PETSc uses an ILU(0) decomposition of each diagonal block of the matrix for preconditioning. This can be changed, as is explained in the relevant section of the PETSc manual, but is not implemented here.
See the comment in the base class PreconditionerBase for when this preconditioner may or may not work.
PETScWrappers::PreconditionBlockJacobi::PreconditionBlockJacobi | ( | const MatrixBase & | matrix, | |
const AdditionalData & | additional_data = AdditionalData() | |||
) |
Constructor. Take the matrix which is used to form the preconditioner, and additional flags if there are any.
virtual void PETScWrappers::PreconditionBlockJacobi::set_preconditioner_type | ( | PC & | pc | ) | const [protected, virtual] |
Function that takes a Krylov Subspace Preconditioner context object, and sets the type of preconditioner that is appropriate for the present class.
Implements PETScWrappers::PreconditionerBase.
const AdditionalData PETScWrappers::PreconditionBlockJacobi::additional_data [protected] |
Store a copy of the flags for this particular preconditioner.