Skip to main content
`Ctrl`+`K`

# NEPSetSplitOperator

Sets the operator of the nonlinear eigenvalue problem in split form.

## Synopsis

    #include "slepcnep.h"
    PetscErrorCode NEPSetSplitOperator(NEP nep,PetscInt nt,Mat A[],FN f[],MatStructure str)

Collective

## Input Parameters

- nep - the nonlinear eigensolver context

- nt - number of terms in the split form

- A - array of matrices

- f - array of functions

- str - structure flag for matrices

## Notes

The nonlinear operator is written as \(T(\lambda) = \sum_i A_i f_i(\lambda)\), for \(i=1,\dots,n\). The derivative \(T'(\lambda)\) can be obtained using the derivatives of \(f_i\).

The structure flag provides information about \(A_i\)’s nonzero pattern (see `MatStructure`). If all matrices have the same pattern, then use `SAME_NONZERO_PATTERN`. If the patterns are different but contained in the pattern of the first one, then use `SUBSET_NONZERO_PATTERN`. If patterns are known to be different, use `DIFFERENT_NONZERO_PATTERN`. If set to `UNKNOWN_NONZERO_PATTERN`, the patterns will be compared to determine if they are equal.

This function must be called before `NEPSetUp()`. If it is called again after `NEPSetUp()` then the `NEP` object is reset.

## See Also

NEP: Nonlinear Eigenvalue Problems, `NEPGetSplitOperatorTerm()`, `NEPGetSplitOperatorInfo()`, `NEPSetSplitPreconditioner()`

## Level

beginner

## Location

src/nep/interface/nepbasic.c

## Examples

src/nep/tutorials/ex22.c
src/nep/tutorials/ex27.c
src/nep/tutorials/ex42.c
src/nep/tutorials/ex22f.F90
src/nep/tutorials/ex27f.F90

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