slepc-3.22.1 2024-10-28
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
| U | - the resulting BV containing the upper rows
|
| L | - the resulting BV containing the lower rows
|
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 BV's 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 BV's must not be destroyed. BVRestoreSplitRows() must be called
when they are no longer needed.
Pass NULL for any of the output BV's that is not needed.
See Also
BVRestoreSplitRows(), BVGetSplit()
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