Skip to main content
`Ctrl`+`K`

# VecSetValuesBlockedLocal

Inserts or adds values into certain locations of a vector, using a local ordering of the nodes.

## Synopsis

    #include "petscvec.h"
    PetscErrorCode VecSetValuesBlockedLocal(Vec x, PetscInt ni, const PetscInt ix[], const PetscScalar y[], InsertMode iora)

Not Collective

## Input Parameters

- x - vector to insert in

- ni - number of blocks to add

- ix - indices where to add in block count, not element count

- y - array of values. Pass `NULL` to set all zeroes.

- iora - either `INSERT_VALUES` replaces existing entries with new values, `ADD_VALUES` adds values to any existing entries

## Notes

`VecSetValuesBlockedLocal()` sets x[bsix[i]+j] = y[bsi+j], for j=0,..bs-1, for i=0,…,ni-1, where bs has been set with `VecSetBlockSize()`.

Calls to `VecSetValuesBlockedLocal()` with the `INSERT_VALUES` and `ADD_VALUES` options cannot be mixed without intervening calls to the assembly routines.

These values may be cached, so `VecAssemblyBegin()` and `VecAssemblyEnd()` MUST be called after all calls to `VecSetValuesBlockedLocal()` have been completed.

`VecSetValuesBlockedLocal()` uses 0-based indices in Fortran as well as in C.

## Fortran Note

If any of `ix` and `y` are scalars pass them using, for example,

      call VecSetValuesBlockedLocal(mat, one, [ix], [y], INSERT_VALUES, ierr)

## See Also

Vectors and Parallel Data, `Vec`, `VecAssemblyBegin()`, `VecAssemblyEnd()`, `VecSetValues()`, `VecSetValuesBlocked()`, `VecSetLocalToGlobalMapping()`

## Level

intermediate

## Location

src/vec/vec/interface/rvector.c

## Examples

src/ksp/ksp/tutorials/ex71.c

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