<html><head>
<meta http-equiv="Content-Type" content="text/html; charset=Windows-1252">
                <title></title>
        </head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;"><div style="color: rgb(0, 0, 0); font-family: Calibri, sans-serif; font-size: 14px;">Hi,</div><div style="color: rgb(0, 0, 0); font-family: Calibri, sans-serif; font-size: 14px;"><br></div><div><font face="Calibri,sans-serif">When discussing DMDAVecGetArrayDOF etc in section 2.4.4,  the PETSc 3.7 manual says "</font><span style="color: rgb(0, 0, 0); font-family: NimbusRomNo9L; font-size: 11pt;">The </span><span style="color: rgb(0, 0, 0); font-family: NimbusMonL; font-size: 11pt;">array </span><span style="color: rgb(0, 0, 0); font-family: NimbusRomNo9L; font-size: 11pt;">is accessed using the usual </span><span style="color: rgb(0, 0, 0); font-family: NimbusRomNo9L; font-size: 11pt;">global </span><span style="color: rgb(0, 0, 0); font-family: NimbusRomNo9L; font-size: 11pt;">indexing on the entire grid,
but the user may </span><span style="color: rgb(0, 0, 0); font-family: NimbusRomNo9L; font-size: 11pt;">only </span><font face="NimbusRomNo9L" size="3">refer to the local and ghost entries of this array as all other entries are undefined</font><font face="NimbusRomNo9L"><span style="font-size: 15px;">”</span></font><font face="NimbusRomNo9L" size="3">.</font></div><div><font face="NimbusRomNo9L" size="3"><br></font></div><div><font face="NimbusRomNo9L" size="3">OK so far.  But how to access the ghost entries?</font></div><div><font face="NimbusRomNo9L" size="3"><br></font></div><div>With a 2D DMDA, I can do this OK:</div><div><p style="margin: 0px; font-size: 11px; font-family: Menlo;"><br></p><p style="margin: 0px; font-size: 11px; font-family: Menlo;">        <span style="font-variant-ligatures: no-common-ligatures; color: #35a327">PetscInt</span>    <span style="font-variant-ligatures: no-common-ligatures; color: #c79c24">xs</span>,<span style="font-variant-ligatures: no-common-ligatures; color: #c79c24">xm</span>,<span style="font-variant-ligatures: no-common-ligatures; color: #c79c24">ys</span>,<span style="font-variant-ligatures: no-common-ligatures; color: #c79c24">ym</span>;</p>
<p style="margin: 0px; font-size: 11px; font-family: Menlo;">        ierr=DMDAGetCorners(da,&xs,&ys,0,&xm,&ym,0);CHKERRQ(ierr);</p>
<p style="margin: 0px; font-size: 11px; font-family: Menlo;">        <span style="font-variant-ligatures: no-common-ligatures; color: #35a327">PetscScalar</span> ***<span style="font-variant-ligatures: no-common-ligatures; color: #c79c24">es</span>;</p>
<p style="margin: 0px; font-size: 11px; font-family: Menlo;">        ierr=DMDAVecGetArrayDOF(da,Es,&es);CHKERRQ(ierr);</p>
<p style="margin: 0px; font-size: 11px; font-family: Menlo; min-height: 13px;"><br></p>
<p style="margin: 0px; font-size: 11px; font-family: Menlo;">        <span style="font-variant-ligatures: no-common-ligatures; color: #d03cff">for</span> (<span style="font-variant-ligatures: no-common-ligatures; color: #35a327">int</span> <span style="font-variant-ligatures: no-common-ligatures; color: #c79c24">j</span>=ys; j < ys+ym; j++) {</p>
<p style="margin: 0px; font-size: 11px; font-family: Menlo;">            <span style="font-variant-ligatures: no-common-ligatures; color: #d03cff">for</span> (<span style="font-variant-ligatures: no-common-ligatures; color: #35a327">int</span> <span style="font-variant-ligatures: no-common-ligatures; color: #c79c24">i</span>=xs; i < xs+xm;i++) {</p>
<p style="margin: 0px; font-size: 11px; font-family: Menlo;"><span class="Apple-tab-span" style="white-space:pre">            </span>es[j][i][0]=1.;</p>
<p style="margin: 0px; font-size: 11px; font-family: Menlo;">                es[j][i][1]=1.;</p>
<p style="margin: 0px; font-size: 11px; font-family: Menlo;">            }</p>
<p style="margin: 0px; font-size: 11px; font-family: Menlo;">        }</p>
<p style="margin: 0px; font-size: 11px; font-family: Menlo;">        ierr=DMDAVecRestoreArrayDOF(da,Es,&es);CHKERRQ(ierr);</p></div><div><br></div><div>But if I replace DMDAGetCorners with DMDAGetGhostCorners, then the code crashes with a seg fault, presumably due to out of bounds memory access.</div><div><br></div><div>Is that supposed to happen?  What’s the remedy?</div><div><br></div><div>Thanks very much!</div><div><br></div><div>Sean Dettrick</div>
                
        
        
                <div class="page" title="Page 52" style="color: rgb(0, 0, 0); font-family: Calibri, sans-serif; font-size: 14px;">
                        <div class="layoutArea">
                                <div class="column">
                                        <div><div><div><br></div></div></div></div></div></div></body></html>