<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
</head>
<body text="#000000" bgcolor="#FFFFFF">
<p>Ok, I think I understand the strategy. It does sound easy enough,
let me just clean up a couple of things off my plate first and
then I can give this a swing.</p>
<p>Thanks again for the info,<br>
</p>
<p>- Boris</p>
<p><br>
</p>
<div class="moz-cite-prefix">On 4/1/19 9:19 PM, Matthew Knepley
wrote:<br>
</div>
<blockquote type="cite"
cite="mid:CAMYG4GnQEHZx3uyRSABGZpryUuh6anHZhrNpPgv72ZPevbSGsg@mail.gmail.com">
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
<div dir="ltr">
<div dir="ltr">On Mon, Apr 1, 2019 at 9:12 PM Boris Boutkov via
petsc-dev <<a href="mailto:petsc-dev@mcs.anl.gov"
moz-do-not-send="true">petsc-dev@mcs.anl.gov</a>> wrote:<br>
</div>
<div class="gmail_quote">
<blockquote class="gmail_quote" style="margin:0px 0px 0px
0.8ex;border-left:1px solid
rgb(204,204,204);padding-left:1ex">
<div bgcolor="#FFFFFF">
<p>Hello all,</p>
<p>I've been working on the libMesh - PETSc interface for
utilizing gmg/fieldsplit on the command line by creating
DMShells; things are seemingly in pretty good shape at
this point, so thanks much for the support along the
way!</p>
<p>The last lingering issue of the implementation is that
I still have a little bit of dependency on <span
class="gmail-m_-4051634772101327645pl-s">PETSc
private/dmimpl.h. In short, during our implementation
of DMCreateSubDM I try and get some of the parent DMs
function pointers, specifically dm->ops->{</span><span
class="gmail-m_-4051634772101327645pl-s"><span
class="gmail-m_-4051634772101327645pl-smi">coarsen,
</span></span><span
class="gmail-m_-4051634772101327645pl-smi">refine, </span><span
class="gmail-m_-4051634772101327645pl-smi">createinterpolation,
</span><span class="gmail-m_-4051634772101327645pl-smi">createrestriction,</span><span
class="gmail-m_-4051634772101327645pl-smi"> and
createsubdm</span>}, which then I set for the subDM
using DMShellSet* by passing in the parent DM pointer
directly.<br>
</p>
<p>I'd like to remove this private dmimpl.h dependency but
removing the header gives me compilation errors -
"invalid use of incomplete type" pointing to PETsc DM
struct for the above calls. As far as I understand it,
this means that I would need public API similar to the
DMShellSet* methods but now instead DMShellGet*.</p>
<p> If the above's the case, any reason this doesn't exist
yet outside of lack of prior need? And how much work
would introducing this require? Or of course please let
me know if there's some simple way around this that I
may be missing.</p>
</div>
</blockquote>
<div>No, we just needed someone to ask. We will do this
exactly like we do MATSHELL. We have to create an Enum that
indexes</div>
<div>the DM methods. Then you can pass the Enum value when you
Set/Get the methods. Its not hard, just some coding. Want to
try :)</div>
<div><br>
</div>
<div> Thanks,</div>
<div><br>
</div>
<div> Matt</div>
<blockquote class="gmail_quote" style="margin:0px 0px 0px
0.8ex;border-left:1px solid
rgb(204,204,204);padding-left:1ex">
<div bgcolor="#FFFFFF">
<p>Thanks as always for your time,</p>
<p>- Boris<br>
</p>
<p><br>
</p>
</div>
</blockquote>
</div>
<br clear="all">
<div><br>
</div>
-- <br>
<div dir="ltr" class="gmail_signature">
<div dir="ltr">
<div>
<div dir="ltr">
<div>
<div dir="ltr">
<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>
<div><br>
</div>
<div><a href="http://www.cse.buffalo.edu/~knepley/"
target="_blank" moz-do-not-send="true">https://www.cse.buffalo.edu/~knepley/</a><br>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</blockquote>
</body>
</html>