BVGetSplitRows#
Splits the BV object into two BV objects that share the internal data, using a disjoint horizontal splitting.
Synopsis#
#include "slepcbv.h"
PetscErrorCode BVGetSplitRows(BV bv,IS isup,IS islo,BV *U,BV *L)
Collective
Input Parameters#
bv - the basis vectors context
isup - the index set that defines the upper part of the horizontal splitting
islo - the index set that defines the lower part of the horizontal splitting
Output Parameters#
Notes#
The index sets must be such that every MPI process can extract the selected
rows from its local part of the input BV, and this part must be contiguous.
With one process, isup will list contiguous indices starting from 0, and islo
will contain the remaining indices, hence we refer to upper and lower part.
However, with several processes the indices will be interleaved because
isup will refer to the upper part of the local array.
The intended use of this function is with matrices of MATNEST type, where
MatNestGetISs() will return the appropriate index sets.
The returned BVs must be seen as references (not copies) of the input
BV, that is, modifying them will change the entries of bv as well.
The returned BVs must not be destroyed. BVRestoreSplitRows() must be called
when they are no longer needed.
Pass NULL for any of the output BVs that is not needed.
See Also#
Level#
advanced
Location#
src/sys/classes/bv/interface/bvbasic.c
Index of all BV routines Table of Contents for all manual pages Index of all manual pages