petsc-3.14.6 2021-03-30
Report Typos and Errors

PCApplyBAorABTranspose

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

Synopsis

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

Input Parameters

pc - the 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

Notes

this routine is used internally so that the same Krylov code can be used to solve A x = b and A' x = b, with a preconditioner defined by B'. This is why this has the funny form that it computes tr(B) * tr(A)

See Also

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