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
MatStructureglobalup - 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#
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