:orphan:
# VecSetOption
Sets an option for controlling a vector's behavior.
## Synopsis
```
#include "petscvec.h"
PetscErrorCode VecSetOption(Vec x, VecOption op, PetscBool flag)
```
Collective
## Input Parameters
- ***x -*** the vector
- ***op -*** the option
- ***flag -*** turn the option on or off
## Supported Options
- ***`VEC_IGNORE_OFF_PROC_ENTRIES`, which causes `VecSetValues()` to ignore-*** entries destined to be stored on a separate processor. This can be used
to eliminate the global reduction in the `VecAssemblyBegin()` if you know
that you have only used `VecSetValues()` to set local elements
- ***`VEC_IGNORE_NEGATIVE_INDICES`, which means you can pass negative indices-*** in ix in calls to `VecSetValues()` or `VecGetValues()`. These rows are simply
ignored.
- ***`VEC_SUBSET_OFF_PROC_ENTRIES`, which causes `VecAssemblyBegin()` to assume that the off-*** process
entries will always be a subset (possibly equal) of the off-process entries set on the
first assembly which had a true `VEC_SUBSET_OFF_PROC_ENTRIES` and the vector has not
changed this flag afterwards. If this assembly is not such first assembly, then this
assembly can reuse the communication pattern setup in that first assembly, thus avoiding
a global reduction. Subsequent assemblies setting off-process values should use the same
InsertMode as the first assembly.
## Developer Note
The `InsertMode` restriction could be removed by packing the stash messages out of place.
## See Also
[](ch_vectors), `Vec`, `VecSetValues()`
## Level
intermediate
## Location
src/vec/vec/interface/vector.c
## Examples
src/ksp/ksp/tutorials/ex71.c
## Implementations
VecSetOption_MPI in src/vec/vec/impls/mpi/pbvec.c
VecSetOption_Seq in src/vec/vec/impls/seq/bvec2.c
---
[Edit on GitLab](https://gitlab.com/petsc/petsc/-/edit/release/src/vec/vec/interface/vector.c)
[Index of all Vec routines](index.md)
[Table of Contents for all manual pages](/manualpages/index.md)
[Index of all manual pages](/manualpages/singleindex.md)