[petsc-users] Trouble understanding -vec_view output.

Matthew Knepley knepley at gmail.com
Mon Feb 14 11:11:23 CST 2011


On Mon, Feb 14, 2011 at 11:01 AM, Gaurish Telang <gaurish108 at gmail.com>wrote:

> 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. !!!
>

Send the entire output and input files to petsc-maint at mcs.anl.gov. I
guarantee you that
this is just misunderstanding, but its impossible to see exactly what you
are doing from
this sample. For instance, in parallel -vec_view will print Process [k].

   Matt


> 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;
> }
>
>
>
>
>
>
>
>
>
>
>
>



-- 
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
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mcs.anl.gov/pipermail/petsc-users/attachments/20110214/c1451f39/attachment.htm>


More information about the petsc-users mailing list