[petsc-users] Trouble understanding -vec_view output.

Gaurish Telang gaurish108 at gmail.com
Mon Feb 14 11:01:07 CST 2011


Hi,

I am having trouble understanding the -vec_view output of the simple code I
have pasted underneath. In it, I am just reading two PetscBinary files
created with a stand alone code. one containing a matrix and another
containing a vector.

However on doing -vec_view during run-time, I get a sequence of zeros before
the actual vector of the binary file is printed. But when I read the
PetscBinary file in MATLAB I get the correct vector.

Why does this happen? Is it because I am using vector type VECMPI to load
the binary file (* ierr = VecLoad(fd_b,VECMPI,&b);CHKERRQ(ierr); *)??

e.g.

The ASCII text file (BEFORE converting to binary) with standalone code looks
like

4
6

The output I get on -vec_view is

0
0
4
6

But with VecGetSize I get the vector length to be 2. !!!

Thank you,

Gaurish


%---------------------------------------------
Code:
int main(int argc,char **args)
{
  Mat                   A                ;
  Vec                   b                               ;
  PetscTruth            flg_A,flg_b                     ;
  PetscErrorCode        ierr                ;
  PetscInt              m,n,length                             ;
  char
file_A[PETSC_MAX_PATH_LEN],file_b[PETSC_MAX_PATH_LEN]      ;
  PetscViewer           fd_A, fd_b                      ;

  PetscInitialize(&argc,&args,(char *)0,help);

  /* Get the option typed from the terminal */
  ierr =
PetscOptionsGetString(PETSC_NULL,"-matrix",file_A,PETSC_MAX_PATH_LEN-1,&flg_A);CHKERRQ(ierr);
  if (!flg_A) SETERRQ(1,"Must indicate binary matrix matrix file with the
-matrix option");

  ierr =
PetscOptionsGetString(PETSC_NULL,"-vector",file_b,PETSC_MAX_PATH_LEN-1,&flg_b);CHKERRQ(ierr);
  if (!flg_b) SETERRQ(1,"Must indicate binary matrix matrix file with the
-vector option");

  /* Load the matrix and vector */
  ierr =
PetscViewerBinaryOpen(PETSC_COMM_WORLD,file_A,FILE_MODE_READ,&fd_A);CHKERRQ(ierr);
  ierr = MatLoad(fd_A,MATMPIAIJ,&A);CHKERRQ(ierr);
  ierr = PetscViewerDestroy(fd_A);CHKERRQ(ierr);

  //ierr=MatView(A,PETSC_VIEWER_DRAW_WORLD);CHKERRQ(ierr);


  ierr =
PetscViewerBinaryOpen(PETSC_COMM_WORLD,file_b,FILE_MODE_READ,&fd_b);CHKERRQ(ierr);
  ierr = VecLoad(fd_b,VECMPI,&b);CHKERRQ(ierr);
  ierr = PetscViewerDestroy(fd_b);CHKERRQ(ierr);

  /* Simple Cursory checks */
  ierr = MatGetSize(A,&m,&n);CHKERRQ(ierr);
  ierr=PetscPrintf(PETSC_COMM_WORLD,"\n %i %i \n",m,n);CHKERRQ(ierr);

  ierr=VecGetSize(b,&length);CHKERRQ(ierr);
  ierr=PetscPrintf(PETSC_COMM_WORLD,"%i \n",length);CHKERRQ(ierr);
  //ierr=VecView(b,PETSC_VIEWER_STDOUT_WORLD);CHKERRQ(ierr);



  /* Destroy Objects.  */
  MatDestroy(A);
  VecDestroy(b);

  ierr = PetscFinalize();CHKERRQ(ierr);

  sleep(4);

 return 0;
}
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mcs.anl.gov/pipermail/petsc-users/attachments/20110214/9cfe5586/attachment.htm>


More information about the petsc-users mailing list