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

Peter Brune brune at mcs.anl.gov
Tue Apr 1 17:25:06 CDT 2014


On Tue, Apr 1, 2014 at 5:21 PM, Mark Adams <mfadams at lbl.gov> wrote:

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

The thesaurus is the problem, man! The thesaurus is the problem!

- Peter


>
>
> 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/eeb3918f/attachment-0001.html>


More information about the petsc-users mailing list