#include "slepcnep.h" PetscErrorCode NEPSetRefine(NEP nep,NEPRefine refine,PetscInt npart,PetscReal tol,PetscInt its,NEPRefineScheme scheme)Logically Collective on nep
nep | - the nonlinear eigensolver context | |
refine | - refinement type | |
npart | - number of partitions of the communicator | |
tol | - the convergence tolerance | |
its | - maximum number of refinement iterations | |
scheme | - which scheme to be used for solving the involved linear systems |
-nep_refine <type> | - refinement type, one of <none,simple,multiple> | |
-nep_refine_partitions <n> | - the number of partitions | |
-nep_refine_tol <tol> | - the tolerance | |
-nep_refine_its <its> | - number of iterations | |
-nep_refine_scheme | - to set the scheme for the linear solves |
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 NEP tol, 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.