Skip to main content
`Ctrl`+`K`

# NEPSetSplitPreconditioner

Sets an operator in split form from which to build the preconditioner to be used when solving the nonlinear eigenvalue problem in split form.

## Synopsis

    #include "slepcnep.h"
    PetscErrorCode NEPSetSplitPreconditioner(NEP nep,PetscInt ntp,Mat P[],MatStructure strp)

Collective

## Input Parameters

- nep - the nonlinear eigensolver context

- ntp - number of terms in the split preconditioner

- P - array of matrices

- strp - structure flag for matrices

## Notes

The matrix for the preconditioner is expressed as \(P(\lambda) = \sum_i P_i f_i(\lambda)\), for \(i=1,\dots,n\), where the \(f_i\) functions are the same as in `NEPSetSplitOperator()`. It is not necessary to call this function. If it is not invoked, then the preconditioner is built from \(T(\lambda)\), i.e., both matrices and functions passed in `NEPSetSplitOperator()`.

The structure flag provides information about \(P_i\)’s nonzero pattern in the same way as in `NEPSetSplitOperator()`.

If the functions defining the preconditioner operator were different from the ones given in `NEPSetSplitOperator()`, then the split form cannot be used. Use the callback interface instead.

Use `ntp=0` to reset a previously set split preconditioner.

## See Also

NEP: Nonlinear Eigenvalue Problems, `NEPGetSplitPreconditionerTerm()`, `NEPGetSplitPreconditionerInfo()`, `NEPSetSplitOperator()`

## Level

advanced

## Location

src/nep/interface/nepbasic.c

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