<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>