[petsc-users] Multigrid preconditioning of entire linear systems for discretized coupled multiphysics problems
Barry Smith
bsmith at mcs.anl.gov
Tue Mar 3 13:02:20 CST 2015
> On Mar 2, 2015, at 9:19 PM, Fabian Gabel <gabel.fabian at gmail.com> wrote:
>
> On Mo, 2015-03-02 at 19:43 -0600, Barry Smith wrote:
>> Do you really want tolerances: relative=1e-90, absolute=1.10423, divergence=10000? That is an absolute tolerance of 1.1? Normally that would be huge.
>
> I started using atol as convergence criterion with -ksp_norm_type
> unpreconditioned. The value of atol gets updated every outer iteration.
What is the "outer iteration" and why does it exist?
>
>> You can provide your matrix with a block size that GAMG will use with MatSetBlockSize().
>
> I think something went wrong. Setting the block size to 4 and solving
> for (u,v,w,p) the convergence degraded significantly. I attached the
> results for a smaller test case that shows the increase of the number of
> needed inner iterations when setting the block size via
> MatSetBlockSize().
This is possible.
Barry
>
>>
>> I would use coupledsolve_mg_coarse_sub_pc_type lu it is weird that it is using SOR for 27 points.
>>
>> So you must have provided a null space since it printed "has attached null space"
>
> The system has indeed a one dimensional null space (from the pressure
> equation with Neumann boundary conditions). But now that you mentioned
> it: It seems that the outer GMRES doesn't notice that the matrix has an
> attached nullspace. Replacing
>
> CALL MatSetNullSpace(CMAT,NULLSP,IERR)
>
> with
>
> CALL KSPSetNullSpace(KRYLOV,NULLSP,IERR)
>
> solves this. What is wrong with using MatSetNullSpace?
>
>
> Fabian
>
>
>>
>> Barry
>>
>>
>>
>>> On Mar 2, 2015, at 6:39 PM, Fabian Gabel <gabel.fabian at gmail.com> wrote:
>>>
>>> On Mo, 2015-03-02 at 16:29 -0700, Jed Brown wrote:
>>>> Fabian Gabel <gabel.fabian at gmail.com> writes:
>>>>
>>>>> Dear PETSc Team,
>>>>>
>>>>> I came across the following paragraph in your publication "Composable
>>>>> Linear Solvers for Multiphysics" (2012):
>>>>>
>>>>> "Rather than splitting the matrix into large blocks and
>>>>> forming a preconditioner from solvers (for example, multi-
>>>>> grid) on each block, one can perform multigrid on the entire
>>>>> system, basing the smoother on solves coming from the tiny
>>>>> blocks coupling the degrees of freedom at a single point (or
>>>>> small number of points). This approach is also handled in
>>>>> PETSc, but we will not elaborate on it here."
>>>>>
>>>>> How would I use a multigrid preconditioner (GAMG)
>>>>
>>>> The heuristics in GAMG are not appropriate for indefinite/saddle-point
>>>> systems such as arise from Navier-Stokes. You can use geometric
>>>> multigrid and use the fieldsplit techniques described in the paper as a
>>>> smoother, for example.
>>>
>>> I sadly don't have a solid background on multigrid methods, but as
>>> mentioned in a previous thread
>>>
>>> http://lists.mcs.anl.gov/pipermail/petsc-users/2015-February/024219.html
>>>
>>> AMG has apparently been used (successfully?) for fully-coupled
>>> finite-volume discretizations of Navier-Stokes:
>>>
>>> http://dx.doi.org/10.1080/10407790.2014.894448
>>> http://dx.doi.org/10.1016/j.jcp.2008.08.027
>>>
>>> I was hoping to achieve something similar with the right configuration
>>> of the PETSc preconditioners. So far I have only been using GAMG in a
>>> straightforward manner, without providing any details on the structure
>>> of the linear system. I attached the output of a test run with GAMG.
>>>
>>>>
>>>>> from PETSc on linear systems of the form (after reordering the
>>>>> variables):
>>>>>
>>>>> [A_uu 0 0 A_up A_uT]
>>>>> [0 A_vv 0 A_vp A_vT]
>>>>> [0 0 A_ww A_up A_wT]
>>>>> [A_pu A_pv A_pw A_pp 0 ]
>>>>> [A_Tu A_Tv A_Tw A_Tp A_TT]
>>>>>
>>>>> where each of the block matrices A_ij, with i,j in {u,v,w,p,T}, results
>>>>> directly from a FVM discretization of the incompressible Navier-Stokes
>>>>> equations and the temperature equation. The fifth row and column are
>>>>> optional, depending on the method I choose to couple the temperature.
>>>>> The Matrix is stored as one AIJ Matrix.
>>>>>
>>>>> Regards,
>>>>> Fabian Gabel
>>>
>>> <cpld_0128.out.578677>
>>
>
> <log.blocksize4><log.txt>
More information about the petsc-users
mailing list