<div dir="ltr"><br><div class="gmail_extra"><br><div class="gmail_quote">On Fri, Jul 29, 2016 at 10:41 AM, Barry Smith <span dir="ltr"><<a href="mailto:bsmith@mcs.anl.gov" target="_blank">bsmith@mcs.anl.gov</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-style:solid;border-left-color:rgb(204,204,204);padding-left:1ex"><span class="gmail-"><br>
> On Jul 27, 2016, at 4:42 PM, Xiangdong <<a href="mailto:epscodes@gmail.com">epscodes@gmail.com</a>> wrote:<br>
><br>
> Hello everyone,<br>
><br>
> I have a global dmda vector vg. On each processor, if I want to know the norm of local portion of vg, which function should I call?<br>
><br>
> So far I am thinking of using DMDAVecGetArray and then write a loop to compute the norm of this local array.<br>
><br>
> Is there a simple function available to call? like *vg->ops->norm_local(vg,NORM_2, &normlocal)?<br>
<br>
</span>There isn't a public interface to this call because it really isn't a mathematically well defined object; the subdomains in the decomposition of the array are arbitrary based on the number of processes used.<br>
<br>
   Anyways if you want it and it is the NON-overlapping portion then yes, you can write a little routine (basically just cut and paste VecNorm()) call it say VecNormLocal() and have it call the function pointer you indicated above. Note for the 2 norm the norm_local() returns the square of the norm so you need to take the square root.<br></blockquote><div><br></div><div>I am interested in this non-overlapping case. I found that this norm_local() function returns the correct l2 norm, not the square of norm. I am using old version 3.5. Are there changes in recent version such that norm_local() returns the square of the norm?</div><div><br></div><div>Xiangdong</div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-style:solid;border-left-color:rgb(204,204,204);padding-left:1ex">
<br>
   If you want the overlapping portion of the vector then you should just do the DMDAVecGetArray() as you already do.<br>
<br>
   Barry<br>
<br>
<br>
<br>
><br>
> Thanks.<br>
><br>
> Best,<br>
> Xiangdong<br>
><br>
<br>
</blockquote></div><br></div></div>