[petsc-users] Convergence of AMG
Jed Brown
jed at jedbrown.org
Mon Oct 29 14:30:25 CDT 2018
This is about removing edges when creating aggregates. Consider
diffusion with an anisotropic conductivity tensor. If you drop
connections (do not aggregate across) in the small-conductivity
direction, then your aggregates will be aligned with the high
conductivity, yielding what is called semi-coarsening in the MG
literature. If you don't drop any connections in the strength graph,
then you get larger isotropic aggregates and thus your coarse space will
be inadequate.
Manav Bhatia <bhatiamanav at gmail.com> writes:
> I am trying to follow the meaning of this note from the manual:
>
> “ GAMG removes small values from the graph with this threshold, and thus reducing the coupling in the graph and a different (perhaps better) coarser set of points"
>
> So, I understand that increasing the value of threshold will result in larger number of connectivity edges to be dropped in the coarsening step.
>
> However, conceptually I think of the connectivity in the Jacobian matrix as the off-diagonal terms, which are critical to defining the coupled nature of the dofs in the problem. If I understand the manual correctly (which I am likely not) AMG prefers that in the coarsening step more of these couplings be dropped to enhance convergence (?).
>
> I can’t quite reconcile this with the potentially disastrous prospect of dropping couplings in the original matrix (without MG). But, somehow it works favorably for the coarsening step in a MG (?).
>
> I would appreciate some guidance.
>
> Regards,
> Manav
>
>> On Oct 29, 2018, at 1:57 PM, Jed Brown <jed at jedbrown.org> wrote:
>>
>> Manav Bhatia <bhatiamanav at gmail.com> writes:
>>
>>> I am experimenting with the threshold parameter.
>>>
>>> As described in the manual: https://www.mcs.anl.gov/petsc/petsc-current/docs/manualpages/PC/PCGAMGSetThreshold.html <https://www.mcs.anl.gov/petsc/petsc-current/docs/manualpages/PC/PCGAMGSetThreshold.html>
>>>
>>>
>>> “ Conversely reducing the threshold increases the rate of coarsening (aggressive coarsening) and thereby reduces the complexity of the coarse grids, and generally results in slower solver converge rates."
>>>
>>>
>>> I did some experimentation for my problem:
>>>
>>> 1) -pc_mg_levels 3 -mg_levels_ksp_max_it 3 -pc_gamg_square_graph 1 -pc_gamg_threshold 0 : 22 KSP iterations, 39 seconds
>>> 2) -pc_mg_levels 3 -mg_levels_ksp_max_it 3 -pc_gamg_square_graph 1 -pc_gamg_threshold 0.5 : Did not converge in over 1000 KSP iterations
>>
>> 0.5 is enormous and likely results in "weird" aggregates. Try 0.001 to
>> 0.05 for example. You can see the coarsening rate and grid complexity
>> in -ksp_view output.
>>
>>> According to the manual reducing the threshold value would result in slower convergence rates. However, I am observing opposite behavior.
>>>
>>> Is this problem specific? Or maybe I am misunderstanding something here.
>>>
>>> Also, I am assuming that the threshold refers to some parameter in the connectivity graph, which is independent of the entries in the matrix. So, the value of threshold is independent of the magnitudes of the entries in the matrix (?).
>>
>> Yeah, the standard strength measure is
>>
>> |a_{ij}| / sqrt(|a_{ii}| |a_{jj}|)
>>
>>> I would appreciate some guidance here.
>>>
>>> Regards,
>>> Manav
>>>
>>>> On Oct 29, 2018, at 1:03 PM, Jed Brown <jed at jedbrown.org> wrote:
>>>>
>>>> Manav Bhatia <bhatiamanav at gmail.com> writes:
>>>>
>>>>> I also observed that the number of KSP iterations increases with an increase in the levels of AMG. Is this true, in general, for all/most applications?
>>>>
>>>> Adding levels replaces a direct solve with a deeper V-cycle. When MG is
>>>> behaving well, this makes little difference because the coarse
>>>> approximations are no worse than the approximations made in the first
>>>> coarsening (from fine level to first coarsened level). But there are
>>>> many stubborn problems for which it does hurt, as you have seen.
More information about the petsc-users
mailing list