slepc-3.21.1 2024-04-26
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