slepc-3.20.2 2024-03-15
Report Typos and Errors

BVMult

Computes Y = beta*Y + alpha*X*Q.

Synopsis

#include "slepcbv.h" 
PetscErrorCode BVMult(BV Y,PetscScalar alpha,PetscScalar beta,BV X,Mat Q)
Logically Collective

Input Parameters

Y  - first basis vectors context (modified on output)
alpha  - first scalar
beta  - second scalar
X  - second basis vectors context
Q  - (optional) sequential dense matrix

Notes

X and Y must be different objects. The case X=Y can be addressed with BVMultInPlace().

If matrix Q is NULL, then an AXPY operation Y = beta*Y + alpha*X is done (i.e. results as if Q = identity). If provided, the matrix Q must be a sequential dense Mat, with all entries equal on all processes (otherwise each process will compute a different update). The dimensions of Q must be at least m,n where m is the number of active columns of X and n is the number of active columns of Y.

The leading columns of Y are not modified. Also, if X has leading columns specified, then these columns do not participate in the computation. Hence, only rows (resp. columns) of Q starting from lx (resp. ly) are used, where lx (resp. ly) is the number of leading columns of X (resp. Y).

See Also

BVMultVec(), BVMultColumn(), BVMultInPlace(), BVSetActiveColumns()

Level

intermediate

Location

src/sys/classes/bv/interface/bvops.c

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