Actual source code: ex35.c

  1: /* 
  2:    Test VecGetArray4d()
  3: */

 5:  #include petscvec.h

  9: int main(int argc,char **argv)
 10: {
 12:   PetscInt       cnt,i,j,k,l,m = 2,n = 3,p = 4,q = 5;
 13:   Vec            x;
 14:   PetscScalar    ****xx;

 16:   PetscInitialize(&argc,&argv,(char *)0,0);
 17:   VecCreateSeq(PETSC_COMM_WORLD,m*n*p*q,&x);
 18:   VecGetArray4d(x,m,n,p,q,0,0,0,0,&xx);
 19:   cnt  = 0;
 20:   for (i=0; i<m; i++) {
 21:     for (j=0; j<n; j++) {
 22:       for (k=0; k<p; k++) {
 23:         for (l=0; l<q; l++) {
 24:           xx[i][j][k][l] = cnt++;
 25:         }
 26:       }
 27:     }
 28:   }
 29:   VecRestoreArray4d(x,m,n,p,q,0,0,0,0,&xx);
 30:   VecView(x,PETSC_VIEWER_STDOUT_WORLD);
 31:   VecDestroy(x);
 32:   PetscFinalize();
 33:   return 0;
 34: }
 35: