[petsc-users] [Bitbucket] Pull request #161: GAMG: shift coarse grids to avoid zero diags from low rank coarse grid space (petsc/petsc)

Mark Adams mfadams at lbl.gov
Tue Apr 1 17:21:50 CDT 2014


Jed: get a thesaurus!  I am getting sick of 'elide' :)

The fix would be to eliminate the rotation mode(s) (or any of the modes for
that matter) for that vertex of P.  It just happens on the first coarse
grid where the number of equation per vertex goes up (2-->3 in 2D
elasticity).  This would be problematic for a few reasons but the most
obvious is that the coarse grid would have variable block size.

Note, because we have Galerkin coarse grids we can really just add anything
to the diagonal.   I've had good luck with doing this but it is tedious to
get you implementations to deal with these fake equations.  But I've found
that getting fancy does not help convergence and is not perfect anyway.



On Tue, Apr 1, 2014 at 5:59 PM, Jed Brown
<pullrequests-reply at bitbucket.org>wrote:

>        Jed Brown commented on pull request #161: GAMG: shift coarse grids
> to avoid zero diags from low rank coarse grid space
>  [jedbrown]  *Jed Brown* commented on pull request #161:  GAMG: shift
> coarse grids to avoid zero diags from low rank coarse grid space<https://bitbucket.org/petsc/petsc/pull-request/161/gamg-shift-coarse-grids-to-avoid-zero#comment-1559358>
>
> Hmm, why can't singletons be elided completely? Then you would have a zero
> row of P.
>   View this pull request<https://bitbucket.org/petsc/petsc/pull-request/161/gamg-shift-coarse-grids-to-avoid-zero#comment-1559358>or add a comment by replying to this email.
>   In reply to *Mark Adams*
>
> "avoid[ing] zero columns " columns is impossible. And the fix is the same
> thing that people do for BCs: make an equation not in the math; it is just
> going along for the ride.
>
> I had custom code to do this in Prometheus, it would try to add singletons
> to other aggregates, in fact it would break up all small aggregates and try
> to distribute them, but it is not guaranteed to succeed.
>
> I could add post processing step where I scan for singletons and then add
> them to other aggregates but this will not always work: for instance, given
> a high threshold a (good) input problem might have a singleton in the
> graph. What do you do? lower the threshold, redo the graph and try again.
> Really?
>
> This is crufty MPI code: any singletons?; send messages to you neighbors:
> "can you take me?"; receive replies; pick one; send it.
>
> What happens if there are two singletons next to each other? Now I say if
> I can take you and I am a singleton, and I have a higher processor ID I
> will take you and you must give me your singleton so I will no longer be a
> singleton. Fine. What if there are three singletons next each other ....
> Just to avoid a BC like equation? This there a polynomial time algorithm to
> do this?
>        Unwatch this pull request<https://bitbucket.org/petsc/petsc/pull-request/161/unwatch/madams/f80fc7b4784df2819a4a5e329f4f4fc1813e22a9/>to stop receiving email updates.   [image:
> Bitbucket] <https://bitbucket.org>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mcs.anl.gov/pipermail/petsc-users/attachments/20140401/2171ab38/attachment.html>


More information about the petsc-users mailing list