Skip to main content
`Ctrl`+`K`

# VecStashSetInitialSize

sets the sizes of the vec-stash, that is used during the assembly process to store values that belong to other processors.

## Synopsis

    #include "petscvec.h"
    PetscErrorCode VecStashSetInitialSize(Vec vec, PetscInt size, PetscInt bsize)

Not Collective, different processes can have different size stashes

## Input Parameters

- vec - the vector

- size - the initial size of the stash.

- bsize - the initial size of the block-stash(if used).

## Options Database Keys

- -vecstash_initial_size size or size0,size1,…,sizep- 1 - set initial size

- -vecstash_block_initial_size bsize or bsize0,bsize1,…,bsizep- 1 - set initial block size

## Notes

The block-stash is used for values set with `VecSetValuesBlocked()` while the stash is used for values set with `VecSetValues()`

Run with the option -info and look for output of the form VecAssemblyBegin_MPIXXX:Stash has MM entries, uses nn mallocs. to determine the appropriate value, MM, to use for size and VecAssemblyBegin_MPIXXX:Block-Stash has BMM entries, uses nn mallocs. to determine the value, BMM to use for bsize

PETSc attempts to smartly manage the stash size so there is little likelihood setting a a specific value here will affect performance

## See Also

Vectors and Parallel Data, `Vec`, `VecSetBlockSize()`, `VecSetValues()`, `VecSetValuesBlocked()`, `VecStashView()`

## Level

intermediate

## Location

src/vec/vec/interface/vector.c

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