Putting a peculiar multilevel scheme into DMMG?
Matthew Knepley
knepley at gmail.com
Sun Dec 13 18:56:46 CST 2009
On Sun, Dec 13, 2009 at 6:41 PM, Jed Brown <jed at 59a2.org> wrote:
> On Sun, 13 Dec 2009 18:06:04 -0600, Matthew Knepley <knepley at gmail.com>
> wrote:
> > I will explain the history since I am to blame for this one. I needed
> > coarsenHierarchy because repeated coarsening can cause degradation of
> > the meshes. Thus all coarse meshes must be made at once. I added the
> > hierarchy option, but only the coarsen branch was used.
>
> I suspected something like that. So one real difference with hierarchy
> is that (in principle) DMRefine can move to a different communicator.
> Is this flexibility used (it seems like this could be quite powerful for
> additive multigrid, but I'm not aware of such a thing working now)? If
> so, DMRefineHierarchy and DMCoarsenHierarchy should also take an array
> of communicators (passing NULL would mean to use the same communicator).
>
> > > DMCoarsenHierarchy is implemented for Mesh, but the array is currently
> > > leaking (DMMGSetDM forgets a PetscFree). Is it indeed preferred that
> > > the caller does not allocate the array (despite knowing how much is
> > > needed) but is responsible for freeing it (I ask because this is clumsy
> > > for a single level of refinement). Either way, I'll document the
> choice
> > > and fix the leak.
> > >
> >
> > Cool. I guess we could have caller allocation, but that is harder to
> > check for correctness.
>
> The alternative (unless we want two ways to do the same thing) seems
> much worse:
>
> DM *tmp;
> DMRefineHierarchy(dmc,1,&tmp);
> dmf = *tmp;
> PetscFree(tmp);
>
I am not sure why this is much worse. There are many things users are
required to destroy.
Matt
> Jed
>
--
What most experimenters take for granted before they begin their experiments
is infinitely more interesting than any results to which their experiments
lead.
-- Norbert Wiener
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mcs.anl.gov/pipermail/petsc-dev/attachments/20091213/41b8673f/attachment.html>
More information about the petsc-dev
mailing list