<div dir="ltr"><div class="gmail_extra"><div class="gmail_quote">On Sun, May 11, 2014 at 8:07 PM, LikunTan <span dir="ltr"><<a href="mailto:tlk0812@hotmail.com" target="_blank">tlk0812@hotmail.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">


<div><div dir="ltr">Dear Petsc developers,<div><br></div><div>I have a vector M which consists of a series of 3d vectors, and I want to reset M by normalizing each 3d vector. Here is my code:<br><div><br></div><div>/**********************************************************************</div>
<div><div>VecGetArray(M, &aM);     </div></div></div></div></div></blockquote><div><br></div><div>Its easier not to make a mistake if you use</div><div><br></div><div>  DMDAVecGetArrayDof()</div><div><br></div><div>     Matt</div>
<div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div><div dir="ltr"><div><div><div>DMDAGetCorners(da, &xs, 0, 0, &xm, 0, 0); </div><div><span style="white-space:pre-wrap">       </span></div>
<div>for(node=xs; node<xs+xm; node++)</div><div><span style="font-size:12pt">{</span></div><div><span style="white-space:pre-wrap">      </span>mag=0.0;</div><div><span style="white-space:pre-wrap"> </span>for(l=0; l<3; l++)</div>
<div><span style="white-space:pre-wrap">  </span>{</div><div><span style="white-space:pre-wrap">                </span>val[l]=aM[node*3+l];</div><div><span style="white-space:pre-wrap">             </span>mag=mag+val[l]*val[l];<span style="font-size:12pt;white-space:pre-wrap">   </span></div>
<div><span style="white-space:pre-wrap">  </span>}</div><div><span style="white-space:pre-wrap">        </span>mag=sqrt(mag);</div><div><span style="white-space:pre-wrap">   </span><span style="font-size:12pt">for(l=0; l<user->NDOF; l++)</span></div>
<div><span style="white-space:pre-wrap">  </span>{</div><div><span style="white-space:pre-wrap">        </span>    aM[node*3+l]=val[l]/mag;</div><div><span style="white-space:pre-wrap">  </span>}</div><div>}</div><div>VecRestoreArray(M, &aM);       </div>
<div>VecAssemblyBegin(M);</div><div>VecAssemblyEnd(M); </div><div>VecView(M, PETSC_VIEWER_STDOUT_WORLD);</div></div></div><div>**********************************************************************/</div><div><br></div><div>
but I got the error at the last step:</div><div><div>--------------------------------------------------------------------------</div><div>mpiexec noticed that process rank 3 with PID 17156 on node compute-21-8.local exited on signal 6 (Aborted).</div>
<div>--------------------------------------------------------------------------</div></div><div>and if I commented out VecView, and used vector M for other operations, e.g.</div><div>KSPSolve(ksp, M, b), I got "memory corruption" message. Your comment on this issue is well appreciated.</div>
<div><br></div><div><br></div><div><br></div>                                       </div></div>
</blockquote></div><br><br clear="all"><div><br></div>-- <br>What most experimenters take for granted before they begin their experiments is infinitely more interesting than any results to which their experiments lead.<br>
-- Norbert Wiener
</div></div>