Skip to main content
`Ctrl`+`K`

# EPSKrylovSchurUpdateSubcommMats

Update the eigenproblem matrices stored internally in the subcommunicator to which the calling process belongs.

## Synopsis

    #include "slepceps.h"
    PetscErrorCode EPSKrylovSchurUpdateSubcommMats(EPS eps,PetscScalar s,PetscScalar a,Mat Au,PetscScalar t,PetscScalar b,Mat Bu,MatStructure str,PetscBool globalup)

Collective

## Input Parameters

- eps - the linear eigensolver context

- s - scalar that multiplies the existing \(A\) matrix

- a - scalar used in the axpy operation on \(A\)

- Au - matrix used in the axpy operation on \(A\)

- t - scalar that multiplies the existing \(B\) matrix

- b - scalar used in the axpy operation on \(B\)

- Bu - matrix used in the axpy operation on \(B\)

- str - structure flag, see `MatStructure`

- globalup - flag indicating if global matrices must be updated

## Notes

This function is only available for spectrum slicing runs, that is, when an interval has been given with `EPSSetInterval()` and `STSINVERT` is set. And is relevant only when the number of partitions (`EPSKrylovSchurSetPartitions()`) is larger than one. See more details in section Spectrum Slicing.

This function modifies the eigenproblem matrices at the subcommunicator level, and optionally updates the global matrices in the parent communicator. The updates are expressed as \(A \leftarrow s A + a A_u\) and \(B \leftarrow t B + b B_u\).

It is possible to update one of the matrices, or both.

The matrices `Au` and `Bu` must be equal in all subcommunicators.

The `str` flag is passed to the `MatAXPY()` operations to perform the updates.

If `globalup` is `PETSC_TRUE`, communication is carried out to reconstruct the updated matrices in the parent communicator. The user must be warned that if global matrices are not in sync with subcommunicator matrices, the errors computed by `EPSComputeError()` will be wrong even if the computed solution is correct (the synchronization may be done only once at the end).

## See Also

EPS: Eigenvalue Problem Solver, Spectrum Slicing, `EPSKRYLOVSCHUR`, `EPSSetInterval()`, `EPSKrylovSchurSetPartitions()`, `EPSKrylovSchurGetSubcommMats()`

## Level

advanced

## Location

src/eps/impls/krylov/krylovschur/krylovschur.c

## Implementations

EPSKrylovSchurUpdateSubcommMats_KrylovSchur() in src/eps/impls/krylov/krylovschur/krylovschur.c

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