Hello all,<br><br>   I am using Petsc-3.2-p7 complied under cygwin and using Petsc&#39;s uni-mpi implementation. I found I cannot call PetscInitialize and PetscFinalize multiple times.<br>Here is the code (between ==) that can reproduce the error. It seems that the second PetscFinalize() generates an error at line 1221 at pinit.c <br>
which is<br> ierr = MPI_Finalize();CHKERRQ(ierr);<br><br><br>==============================================================<br>#include &quot;petscksp.h&quot;<br>#include &lt;iostream&gt;<br><br>int main(int argc,char *args[])<br>
{<br>  PetscErrorCode ierr;<br>  PetscMPIInt    size;<br><br>  PetscInitialize(&amp;argc,&amp;args,(char *)0, PETSC_NULL);<br>  std::cout &lt;&lt; &quot;Initialize 1&quot; &lt;&lt; std::endl;<br>  <br>  ierr = MPI_Comm_size(PETSC_COMM_WORLD,&amp;size);CHKERRQ(ierr);<br>
  if (size != 1) SETERRQ(PETSC_COMM_WORLD,1,&quot;This is a uniprocessor example only!&quot;);<br><br>  ierr = PetscFinalize();<br>  std::cout &lt;&lt; &quot;Finalize 1&quot; &lt;&lt; std::endl;<br><br>  PetscInitialize(&amp;argc,&amp;args,(char *)0, PETSC_NULL);<br>
  std::cout &lt;&lt; &quot;Initialize 2&quot; &lt;&lt; std::endl;<br>  ierr = PetscFinalize();<br>  std::cout &lt;&lt; &quot;Finalize 2&quot; &lt;&lt; std::endl;<br><br>  PetscInitialize(&amp;argc,&amp;args,(char *)0, PETSC_NULL);<br>
  std::cout &lt;&lt; &quot;Initialize 3&quot; &lt;&lt; std::endl;<br>  ierr = PetscFinalize();<br>  std::cout &lt;&lt; &quot;Finalize 3&quot; &lt;&lt; std::endl;<br><br>  PetscInitialize(&amp;argc,&amp;args,(char *)0, PETSC_NULL);<br>
  std::cout &lt;&lt; &quot;Initialize 4&quot; &lt;&lt; std::endl;<br>  ierr = PetscFinalize();<br>  std::cout &lt;&lt; &quot;Finalize 4&quot; &lt;&lt; std::endl;<br><br>  return 0;<br>}<br>==============================================================<br>
<br>I got the following output:<br>Initialize 1<br>Finalize 1<br>Initialize 2<br>[0]PETSC ERROR: PetscFinalize() line 1221 in src/sys/objects/D:\Library\PETSc\pe<br>tsc-3.2\src\sys\objects\pinit.c<br>Finalize 2<br>Initialize 3<br>
Options have not been enabled.<br>You might have forgotten to call PetscInitialize().<br><br>This application has requested the Runtime to terminate it in an unusual way.<br>Please contact the application&#39;s support team for more information.<br>
<br><br>Thanks,<br>Mengda<br><br>