BVCreateTensor#

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

Synopsis#

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

Collective

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

Notes#

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. Matrix \(S\) has \(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#

BV: Basis Vectors, BVTensorGetDegree(), BVTensorGetFactors(), BVTensorBuildFirstColumn()

Level#

advanced

Location#

src/sys/classes/bv/impls/tensor/bvtensor.c


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