Skip to main content
`Ctrl`+`K`

# PEPSetRefine

Specifies the refinement type (and options) to be used after the solve.

## Synopsis

    #include "slepcpep.h"
    PetscErrorCode PEPSetRefine(PEP pep,PEPRefine refine,PetscInt npart,PetscReal tol,PetscInt its,PEPRefineScheme scheme)

Logically Collective

## Input Parameters

- pep - the polynomial eigensolver context

- refine - refinement type, see `PEPRefine` for possible values

- npart - number of partitions of the communicator

- tol - the convergence tolerance

- its - maximum number of refinement iterations

- scheme - the scheme for solving the involved linear systems, see `PEPRefineScheme` for possible values

## Options Database Keys

- -pep_refine <refine> - set the refinement type, one of `none`,`simple`,`multiple`

- -pep_refine_partitions <npart> - set the number of partitions

- -pep_refine_tol <tol> - set the tolerance

- -pep_refine_its <its> - set the number of iterations

- -pep_refine_scheme <scheme> - set the scheme for the linear solves, `schur`,`mbe`, or `explicit`

## Notes

This function configures the parameters of Newton iterative refinement, see section Iterative Refinement for a discussion of the different strategies.

By default, iterative refinement is disabled, since it may be very costly. There are two possible refinement strategies, simple and multiple. The simple approach performs iterative refinement on each of the converged eigenpairs individually, whereas the multiple strategy works with the invariant pair as a whole, refining all eigenpairs simultaneously. The latter may be required for the case of multiple eigenvalues.

In some cases, especially when using direct solvers within the iterative refinement method, it may be helpful for improved scalability to split the communicator in several partitions. The `npart` parameter indicates how many partitions to use (defaults to 1).

The `tol` and `its` parameters specify the stopping criterion. In the simple method, refinement continues until the residual of each eigenpair is below the tolerance (`tol` defaults to the `PEP` tolerance, but may be set to a different value). In contrast, the multiple method simply performs its refinement iterations (just one by default).

The `scheme` argument is used to change the way in which linear systems are solved. Possible choices are explicit, mixed block elimination (MBE), and Schur complement.

Use `PETSC_CURRENT` to retain the current value of `npart`, `tol` or `its`. Use `PETSC_DETERMINE` to assign a default value.

## See Also

PEP: Polynomial Eigenvalue Problems, Iterative Refinement, `PEPGetRefine()`

## Level

intermediate

## Location

src/pep/interface/pepopts.c

Index of all PEP routines Table of Contents for all manual pages Index of all manual pages