<html><head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
</head>
<body>
<div>Thanks Matt and Dave for the explanation, that is very helpful. </div>
<div><br>
</div>
<div>Best</div>
<div>Sean<br>
<br>
<div class="acompli_signature"><br>
</div>
<br>
</div>
<br>
<br>
<br>
<div class="gmail_quote">On Thu, May 12, 2016 at 8:58 AM -0700, "Dave May" <span dir="ltr">
<<a href="mailto:dave.mayhem23@gmail.com" target="_blank">dave.mayhem23@gmail.com</a>></span> wrote:<br>
<br>
</div>
<div>
<div dir="ltr">
<div><br>
</div>
Matt beat me to the punch... :D<br>
Anyway, here is my more detailed answer.<br>
<div><br>
<div class="gmail_extra">
<div class="gmail_quote">
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div style="word-wrap:break-word;color:rgb(0,0,0);font-size:14px;font-family:Calibri,sans-serif">
<div></div>
<div><br>
</div>
<div>
<div>Thanks!  Somehow I missed DM{Get,Create}LocalVector().  BTW what is the difference between the Get and Create versions?  It is not obvious from the documentation.</div>
</div>
</div>
</blockquote>
<div><br>
</div>
<div>The DMDA contains a pool of vectors (both local and global) which can be re-used by the user. This avoids the need to continually allocate and deallocate memory. Thus, the Get methods are simply an optimization.<br>
<br>
The Get methods retrieve from the pool, a vector which isn't currently in use. In this case, You can think of Restore as returning the vector back to the pool to be used somewhere else.<br>
If all vectors in the pool are in use, a new one will be allocated for you. In this case, Restore will actually deallocate memory.<br>
<br>
</div>
<div>Since Get methods may return vectors which have been used else where in the code, you should always call VecZeroEntries() on them.<br>
</div>
<div><br>
</div>
<div>The Create methods ALWAYS allocate new memory and thus you ALWAYS need to call Destroy on them. Vectors obtained via VecCreate() will always be initialized with 0's.<br>
</div>
<div><br>
<br>
</div>
<div>Thanks,<br>
</div>
<div>  Dave<br>
</div>
<div> </div>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div style="word-wrap:break-word;color:rgb(0,0,0);font-size:14px;font-family:Calibri,sans-serif">
<div>
<div><br>
</div>
<div>Also, can you explain the difference between DMDAVecGetArrayDOF and DMDAVecGetArrayDOFRead?</div>
<div><br>
</div>
<div>Thanks again,</div>
<div>Sean</div>
</div>
<span>
<div><br>
</div>
<div><br>
</div>
<span>
<blockquote style="BORDER-LEFT:#b5c4df 5 solid;PADDING:0 0 0 5;MARGIN:0 0 0 5">
<div dir="ltr">
<div class="gmail_extra">
<div class="gmail_quote">
<div><br>
</div>
<div>Thanks,</div>
<div>  Dave</div>
<div><br>
</div>
<div> </div>
<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">
<div style="word-wrap:break-word">
<div><br>
</div>
<div>Thanks very much!</div>
<span><font color="#888888">
<div><br>
</div>
<div>Sean Dettrick</div>
<div title="Page 52" style="color:rgb(0,0,0);font-family:Calibri,sans-serif;font-size:14px">
<div>
<div>
<div>
<div>
<div><br>
</div>
</div>
</div>
</div>
</div>
</div>
</font></span></div>
</blockquote>
</div>
<br>
</div>
</div>
</blockquote>
</span></span></div>
</blockquote>
</div>
<br>
</div>
</div>
</div>
</div>
</body>
</html>