slepc-3.21.1 2024-04-26
Report Typos and Errors


Creates a tensor BV that is represented in compact form as V = (I otimes U) S, where U has orthonormal columns.


#include "slepcbv.h" 
PetscErrorCode BVCreateTensor(BV U,PetscInt d,BV *V)

Input Parameters

U  - a basis vectors object
d  - the number of blocks (degree) of the tensor BV

Output Parameter

V  - the new basis vectors context


The new basis vectors object is V = (I otimes U) S, where otimes denotes the Kronecker product, I is the identity matrix of order d, and S is a sequential matrix allocated internally. This compact representation is used e.g. to represent the Krylov basis generated with the linearization of a matrix polynomial of degree d.

The size of V (number of rows) is equal to d times n, where n is the size of U. The dimensions of S are d times m rows and m-d+1 columns, where m is the number of columns of U, so m should be at least d.

The communicator of V will be the same as U.

On input, the content of U is irrelevant. Alternatively, it may contain some nonzero columns that will be used by BVTensorBuildFirstColumn().

See Also

BVTensorGetDegree(), BVTensorGetFactors(), BVTensorBuildFirstColumn()





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