[petsc-users] Accessing array indices in 3D

khalid ashraf khalid_eee at yahoo.com
Tue Nov 30 14:58:50 CST 2010


Hi, I am writing the following loop for accessing the vectors in a 3D grid.

 for (k=zs; k<zs+zm; k++) {
  for (j=ys; j<ys+ym; j++) {
  for (i=xs; i<xs+xm; i++) {
    if (i<(mx-1))
    {
    Cx=u_localptr[k][j][i+1]-u_localptr[k][j][i];
    }
else
    {
    Cx=u_localptr[k][j][i]-u_localptr[k][j][i-1];
    }
    if (j<(my-1))
    {
//    Cy=v_localptr[k][j+1][i]-v_localptr[k][j][i];
    Cy=v_localptr[k][j][i]-v_localptr[k][j][i];
    }
else
    {
    Cy=v_localptr[k][j][i]-v_localptr[k][j-1][i];
    }
    if (k<(mz-1))
    {
//    Cz=w_localptr[k+1][j][i]-w_localptr[k][j][i];
    Cz=w_localptr[k][j][i]-w_localptr[k][j][i];
    }
else
    {
    Cz=w_localptr[k][j][i]-w_localptr[k-1][j][i];
    }
      In this code if I uncomment the two commented lines, then the program 
gives memory access out of range error when run on multiple processors. Could 
you please tell me what is the problem with the two commented out lines. 

Thanks.

Khalid


      
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mcs.anl.gov/pipermail/petsc-users/attachments/20101130/f70680b5/attachment.htm>


More information about the petsc-users mailing list