<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1256">
</head>
<body>
<div>
<div style="font-family:Calibri,sans-serif; font-size:11pt">Also suggest using latest version 3.7.<br>
<br>
Satish</div>
</div>
<div dir="ltr">
<hr>
<span style="font-family:Calibri,sans-serif; font-size:11pt; font-weight:bold">From:
</span><span style="font-family:Calibri,sans-serif; font-size:11pt"><a href="mailto:ilyascfd@gmail.com">Ilyas YILMAZ</a></span><br>
<span style="font-family:Calibri,sans-serif; font-size:11pt; font-weight:bold">Sent:
</span><span style="font-family:Calibri,sans-serif; font-size:11pt">ý4/ý30/ý2016 10:04 AM</span><br>
<span style="font-family:Calibri,sans-serif; font-size:11pt; font-weight:bold">To:
</span><span style="font-family:Calibri,sans-serif; font-size:11pt"><a href="mailto:petsc-users@mcs.anl.gov">PETSc users list</a></span><br>
<span style="font-family:Calibri,sans-serif; font-size:11pt; font-weight:bold">Subject:
</span><span style="font-family:Calibri,sans-serif; font-size:11pt">[petsc-users] a crash due to memory issue</span><br>
<br>
</div>
<div>
<div dir="ltr">
<div>
<div>
<div>Hello,<br>
<br>
</div>
The code segment I wrote based on "src/dm/da/examples/tutorials/ex2.c" crashes when destroying things / freeing memory as given below.
<br>
I can't figure out what I'm missing? Any comments are welcome. (Petsc 3.1.p8, intel fortran compiler). The code and error are below.<br>
</div>
<br>
        !...Create scatter from global DA parallel vector to local vector that contains all entries<br>
        call DAGlobalToNaturalAllCreate(da,tolocalall,ierr)<br>
        call DAGlobalToNaturalAllCreate(da,tolocalall2,ierr)<br>
        call DAGlobalToNaturalAllCreate(da,tolocalall3,ierr)<br>
<br>
        call VecCreateSeq(PETSC_COMM_SELF,im*jm*km,CSRENOMlocalall,ierr)<br>
        call VecScatterBegin(tolocalall,CSRENOM,CSRENOMlocalall,INSERT_VALUES,SCATTER_FORWARD,ierr)
<br>
        call VecScatterEnd(  tolocalall,CSRENOM,CSRENOMlocalall,INSERT_VALUES,SCATTER_FORWARD,ierr)<br>
<br>
        call VecCreateSeq(PETSC_COMM_SELF,im*jm*km,CSDENOMlocalall,ierr)<br>
        call VecScatterBegin(tolocalall2,CSDENOM,CSDENOMlocalall,INSERT_VALUES,SCATTER_FORWARD,ierr)
<br>
        call VecScatterEnd(  tolocalall2,CSDENOM,CSDENOMlocalall,INSERT_VALUES,SCATTER_FORWARD,ierr)<br>
<br>
        call VecCreateSeq(PETSC_COMM_SELF,im*jm*km,CSlocalall,ierr)<br>
        call VecScatterBegin(tolocalall3,CS,CSlocalall,INSERT_VALUES,SCATTER_FORWARD,ierr)
<br>
        call VecScatterEnd(  tolocalall3,CS,CSlocalall,INSERT_VALUES,SCATTER_FORWARD,ierr)<br>
<br>
<br>
        call VecGetArray(CSRENOMlocalall,scaCSRENOMlocalall,idCSRENOMlocalall,ierr)<br>
        call VecGetArray(CSDENOMlocalall,scaCSDENOMlocalall,idCSDENOMlocalall,ierr)<br>
        call VecGetArray(     CSlocalall,scaCSlocalall     ,idCSlocalall     ,ierr)<br>
<br>
 <br>
</div>
                          SOME WORK HERE<br>
<br>
<br>
<div>        call VecRestoreArray(CSlocalall     ,scaCSlocalall     ,idCSlocalall,ierr)<br>
        call VecRestoreArray(CSRENOMlocalall,scaCSRENOMlocalall,idCSRENOMlocalall,ierr)<br>
        call VecRestoreArray(CSDENOMlocalall,scaCSDENOMlocalall,idCSDENOMlocalall,ierr)<br>
<br>
<br>
        !...scatter back to global vector<br>
        call DANaturalAllToGlobalCreate(da,fromlocalall,ierr)<br>
        call DANaturalAllToGlobalCreate(da,fromlocalall2,ierr)<br>
        call DANaturalAllToGlobalCreate(da,fromlocalall3,ierr)<br>
<br>
        call VecScatterBegin(fromlocalall,CSRENOMlocalall,CSRENOM,INSERT_VALUES,SCATTER_FORWARD,ierr)
<br>
        call VecScatterEnd(  fromlocalall,CSRENOMlocalall,CSRENOM,INSERT_VALUES,SCATTER_FORWARD,ierr)<br>
<br>
        call VecScatterBegin(fromlocalall2,CSDENOMlocalall,CSDENOM,INSERT_VALUES,SCATTER_FORWARD,ierr)
<br>
        call VecScatterEnd(  fromlocalall2,CSDENOMlocalall,CSDENOM,INSERT_VALUES,SCATTER_FORWARD,ierr)<br>
<br>
        call VecScatterBegin(fromlocalall3,CSlocalall,CS,INSERT_VALUES,SCATTER_FORWARD,ierr)
<br>
        call VecScatterEnd(  fromlocalall3,CSlocalall,CS,INSERT_VALUES,SCATTER_FORWARD,ierr)<br>
<br>
</div>
<div>        !..free memory<br>
       call VecScatterDestroy(fromlocalall,ierr)<br>
       call VecScatterDestroy(fromlocalall2,ierr)<br>
       call VecScatterDestroy(fromlocalall3,ierr)<br>
<br>
      call VecScatterDestroy(tolocalall,ierr)<br>
      call VecScatterDestroy(tolocalall2,ierr)<br>
      call VecScatterDestroy(tolocalall3,ierr)<br>
<br>
      call VecDestroy(CSDENOMlocalall,ierr)<br>
      call VecDestroy(CSRENOMlocalall,ierr)<br>
      call VecDestroy(CSlocalall,ierr)<br>
<br>
<br>
.<br>
.<br>
.<br>
.<br>
.<br>
.<br>
 ...................... SGS model is called<br>
 MUT computed<br>
 MUT computed<br>
 MUT computed<br>
 MUT computed<br>
[1]PETSC ERROR: ------------------------------------------------------------------------<br>
[1]PETSC ERROR: [0]PETSC ERROR: ------------------------------------------------------------------------<br>
[0]PETSC ERROR: Caught signal number 11 SEGV: Segmentation Violation, probably memory access out of range<br>
[0]PETSC ERROR: Try option -start_in_debugger or -on_error_attach_debugger<br>
[0]PETSC ERROR: or see <a href="http://www.mcs.anl.gov/petsc/petsc-as/documentation/troubleshooting.html#Signal[0]PETSC">
http://www.mcs.anl.gov/petsc/petsc-as/documentation/troubleshooting.html#Signal[0]PETSC</a> ERROR: or try
<a href="http://valgrind.org">http://valgrind.org</a> on GNU/linux and Apple Mac OS X to find memory corruption errors<br>
[0]PETSC ERROR: configure using --with-debugging=yes, recompile, link, and run <br>
[0]PETSC ERROR: to get more information on the crash.<br>
.<br>
.<br>
.<br>
.<br>
.<br>
<br>
</div>
<div>Thank you<br>
<br>
</div>
<div>Ilyas.<br>
</div>
</div>
</div>
</body>
</html>