<div dir="ltr"><div class="gmail_extra"><div class="gmail_quote">On Mon, Aug 10, 2015 at 11:05 AM, Justin Chang <span dir="ltr"><<a href="mailto:jychang48@gmail.com" target="_blank">jychang48@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">Matt,<br><br>So inside these TAO routines, if I wanted to include the boundary values, would I follow the approaches in functions like DMPlexComputeResidual/Jacobian_Internal? I assume I need something like:<br><br>DMGetLocalVector(dm,xlocal);<div>DMPlexInsertBoundaryValues(xlocal,...);</div><div>** use xlocal to compute equality constraints/jacobian **</div><div>DMRestoreLocalVector(dm,xlocal);</div></div></blockquote><div><br></div><div>Yes.</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div>The Jacobian and equality constraints that I want to assemble are not the same as the DM matrix use for the entire problem. I am guessing I will need to use a different DS for the DM because, for example the stokes problem with TH elements, I want to assemble an equality jacobian of size (no. of cells) by (no. of velocity dofs), and an equality constraints vector of size (no. of cells). How would I go about doing a problem like this?<br></div></div></blockquote><div><br></div><div>Okay, now we get into some choices I made in Plex. The original version I wrote could assemble rectangular matrices. This</div><div>was a huge complication that no one took advantage of, so I got rid of it. Now I just assemble the entire problem, and if you</div><div>want pieces of it, I pull them out using MatGetSubmatrix(). I still believe this is the cleanest thing to do.</div><div><br></div><div>Maybe you could schematically tell me what you want to do.</div><div><br></div><div>  Thanks,</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 dir="ltr"><div>Thanks,<br>Justin<br><br></div></div><div class="gmail_extra"><br><div class="gmail_quote">On Mon, Aug 10, 2015 at 10:01 AM, Matthew Knepley <span dir="ltr"><<a href="mailto:knepley@gmail.com" target="_blank">knepley@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div class="gmail_extra"><div class="gmail_quote"><span>On Mon, Aug 10, 2015 at 9:56 AM, Justin Chang <span dir="ltr"><<a href="mailto:jychang48@gmail.com" target="_blank">jychang48@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">Hi all,<br><br>1) I ran across this paper:<br><br><a href="http://web.stanford.edu/~egawlik/pdf/GaMuSaWi2012.pdf" target="_blank">http://web.stanford.edu/~egawlik/pdf/GaMuSaWi2012.pdf</a><br><div><br></div><div>and was wondering if there are any current TAO examples that do this.</div><div><br></div><div>also</div><div><br></div><div>2) If I integrate this into an FEM (from DMPlex) I will need to assemble an equality jacobian matrix and constraint vector. But the element-wise constraints that I need to compute (e.g., the divergence) needs all degrees of freedom within the element closure including the essential BCs DMPlex removes from the global matrix/vector. So how can I work around this and/or access said removed terms inside a TAO routine?<br></div></div></blockquote><div><br></div></span><div>Those are not really dofs, they are boundary values, so they are not in the global system. The local vectors have</div><div>the boundary values, so you can calculate the correct constraint eqns to put in the global system.</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 dir="ltr"><div>Thanks,</div><div>Justin</div></div><span><font color="#888888">
</font></span></blockquote></div><span><font color="#888888"><br><br clear="all"><span class="HOEnZb"><font color="#888888"><div><br></div>-- <br><div>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>
</font></span></font></span></div></div>
</blockquote></div><br></div>
</blockquote></div><br><br clear="all"><div><br></div>-- <br><div class="gmail_signature">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></div>