[petsc-dev] Using SetValues versus VecGetArray
Hesameddin Ilatikhameneh
hilatikh at purdue.edu
Fri Jan 11 12:25:47 CST 2013
Hello,
I was wondering whether I can use vector SetValues inside the Function routine or not. i.e. in the following example, can I use SetValues(f, ...) to fill vector f? If so, what are the drawbacks? The benefit would be, I can use global IDs to fill the vector f but when I use VeecGetArray(f,&ff) I should use local IDs (ff[Local ID] = ...).
PetscErrorCode FormFunction(SNES snes,Vec x,Vec f,void *ctx)
{
ierr = VecGetArray(x,&xx);CHKERRQ(ierr);
ierr = VeecGetArray(f,&ff);CHKERRQ(ierr);
for (i=xs; i<xs+xm; i++) {
ff[i] = d*(xx[i-1] - 2.0*xx[i] + xx[i+1]) + xx[i]*xx[i] - FF[i];
}
/* Restore vectors */
ierr = VecRestoreArray(x,&xx);CHKERRQ(ierr);
ierr = VecRestoreArray(f,&ff);CHKERRQ(ierr); ;
}
Thanks,
Hesam
More information about the petsc-dev
mailing list