slepc-3.13.2 2020-05-12
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 on Y

Input Parameters

Y,X  - basis vectors
alpha,beta  - scalars
Q  - (optional) sequential dense matrix

Output Parameter

Y  - the modified basis vectors

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()

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