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 eigenproblem solver 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

  • globalup - flag indicating if global matrices must be updated

Notes#

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 <– sA + aAu, B <– tB + bBu.

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

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