PCApplyBAorABTranspose#

Applies the transpose of the preconditioner and operator to a vector. That is, applies BTATB^T * A^T with left preconditioning, NOT (BA)T=ATBT(B*A)^T = A^T*B^T.

Synopsis#

#include "petscksp.h" 
PetscErrorCode PCApplyBAorABTranspose(PC pc, PCSide side, Vec x, Vec y, Vec work)

Collective

Input Parameters#

  • pc - the PC preconditioner context

  • side - indicates the preconditioner side, one of PC_LEFT, PC_RIGHT, or PC_SYMMETRIC

  • x - input vector

  • work - work vector

Output Parameter#

  • y - output vector

Note#

This routine is used internally so that the same Krylov code can be used to solve Ax=bA x = b and ATx=bA^T x = b, with a preconditioner defined by BTB^T. This is why this has the funny form that it computes BTATB^T * A^T

See Also#

KSP: Linear System Solvers, PC, PCApply(), PCApplyTranspose(), PCApplyBAorAB()

Level#

developer

Location#

src/ksp/pc/interface/precon.c


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