On Fri, Apr 20, 2018 at 4:10 PM, Junchao Zhang <[email protected]> wrote:

> To pad a vector, i.e., copy a vector to a new one, I have to call
> VecSetValue(newb,1,&idx,...) for each element. But to be efficient, what I
> really needs is to set a block of values in one call. It looks PETSc does
> not have a routine for that(?). I looked at VecSetValuesBlocked, but it
> looks it is not for that purpose.
> Should we have something like VecSetValuesBlock(Vec
> <http://www.mcs.anl.gov/petsc/petsc-current/docs/manualpages/Vec/Vec.html#Vec>
> v,PetscInt
> <http://www.mcs.anl.gov/petsc/petsc-current/docs/manualpages/Sys/PetscInt.html#PetscInt>
> i,PetscInt cnt,PetscScalar
> <http://www.mcs.anl.gov/petsc/petsc-current/docs/manualpages/Sys/PetscScalar.html#PetscScalar>
>  *value,
> InsertMode
> <http://www.mcs.anl.gov/petsc/petsc-current/docs/manualpages/Sys/InsertMode.html#InsertMode>
> mode) to set cnt values starting at index i?
>

Use VecGetArray().

  Matt


> --Junchao Zhang
>



-- 
What most experimenters take for granted before they begin their
experiments is infinitely more interesting than any results to which their
experiments lead.
-- Norbert Wiener

https://www.cse.buffalo.edu/~knepley/ <http://www.caam.rice.edu/~mk51/>

Reply via email to