<div dir="ltr"><div><div><div><div><div><div>Hello,<br><br></div>I am writing a vector on a petsc binary file and subsequently reading the same in another part of the code.<br></div><div>This works well for smaller vector sizes but fails for a large vector (vectorsize=<span class="gmail-cwcot" id="gmail-cwos">2048000000; PetscScalar=PetscComplex). For a large vector, when the read vector is probed for values, I seems to me that it is populated with uninitialized values.<br><br></span></div><div><span class="gmail-cwcot" id="gmail-cwos">This size is close to the int32 limit (2^31 -1) but does not really breach it. Hence i am nt using 64 bit integer. Can you please help me figure out what might be going wrong here.? I'm appending with this mail snippets of the code which read wnd write the petsc file.<br></span></div><div>//*********************************************************************************************************************************************<br>//<br></div>// Snippet which writes v (a vector constructed using global size) to  the file. Note that this snippet is part of a parallel code<br>//<br>      PetscViewer viewer;<br>      error = PetscViewerBinaryOpen(PETSC_COMM_WORLD,fileName.c_str(),FILE_MODE_WRITE,&viewer);<br>      checkPETScError(error, "unbale to open binary file");<br><br>      error = VecView(v,viewer);<br>      checkPETScError(error, "unable to use VecView");<br><br>      error = PetscViewerDestroy(&viewer);<br>      checkPETScError(error,"unable to destry viewer");<br><br>      //<br>      // cleanup<br>      //<br>      error = VecDestroy(&v);<br>      checkPETScError(error,"unable to destroy vector");<br><br>      <br>      error = PetscOptionsSetValue(NULL,"-viewer_binary_mpiio","");<br>      checkPETScError(error, "error in PetscOptionsSetValue");<br><br>//*******************************************************************************************************************************<br>//<br></div>// Snippet which reads v (this is part of a serial code)<br>//<br></div>PetscViewer viewer;<br>  error = PetscViewerBinaryOpen(PETSC_COMM_WORLD,fileName.c_str(),FILE_MODE_READ,&viewer);<br>  checkPETScError(error, "unbale to open binary file");<br><br>  error = VecLoad(v,viewer);<br>  checkPETScError(error, "unable to use VecView");<br><br>  error = PetscViewerDestroy(&viewer);<br>  checkPETScError(error,"unable to destry viewer");<br><br>   //<br>  // write to console<br>  //<br>  //error = VecView(v,PETSC_VIEWER_STDOUT_WORLD);<br>  //checkPETScError(error, "unable to write to console"); <br><br>  //<br>  // copy petsc vec to stl vector<br>  //<br>  std::vector<std::complex<double> > dummy(vecSize);<br>  PetscScalar *pointerX;<br>  VecGetArray(v, &pointerX);<br>  std::copy(&(pointerX[0]),&(pointerX[vecSize]),dummy.begin());<br>  VecRestoreArray(v, &pointerX);<br><br></div>  // subsequently dummy is written to an stl vector.<br>//*********************************************************************************************************************************************<br></div><br><br>Thanks,<br><div><div><div><div><div><div><div><div><div class="gmail_signature"><div dir="ltr"><span><font color="#888888"><div><div><div><div><font color="#666666">-<br>Nelson David Rufus<br></font></div><font color="#666666">PhD Student<br></font></div><font color="#666666">Computational Materials Physics Group<br></font></div><font color="#666666">Mechanical Engineering <br></font></div><font color="#666666">University of Michigan<br></font></font></span></div></div></div>
</div></div></div></div></div></div></div></div>