[petsc-users] Preconditioner for stokes flow with mixed boundary conditions.

Matthew Knepley knepley at gmail.com
Mon Apr 19 08:58:49 CDT 2021


On Mon, Apr 19, 2021 at 9:37 AM Abhinav Singh <abhinavrajendra at gmail.com>
wrote:

> What does this mean? Stokes means using an incompressibility constraint,
>> for which we often introduce a pressure.
>
> Yes, what I mean is solving the momentum block, say with known pressure.
> viscosity is constant however, the momentum equation has both Laplacian and
> Gradient terms.
>

That does not make any sense to me. Can you write the equation?

  Thanks,

     Matt


> You should use a good Laplacian preconditioner, like -pc_type gamg or
>> -pc_type ml.
>
> I tried gamg and it seems to diverge as the solution is NaN. The KSP
> residual message is " 0 KSP Residual norm 1.131782747169e+01  ".
> When using -pc_type ml, I get Aggregate Warning and then some faulty
> address which stops the code.
>
>
>
> On Mon, 19 Apr 2021 at 12:31, Matthew Knepley <knepley at gmail.com> wrote:
>
>> On Mon, Apr 19, 2021 at 6:18 AM Abhinav Singh <abhinavrajendra at gmail.com>
>> wrote:
>>
>>> Hello all,
>>>
>>> I am trying to solve for incompressible stokes flow on a particle based
>>> discretization. I use a pressure correction technique along with Particle
>>> strength exchange like operators.
>>>
>>> I call Petsc to solve the Stokes Equation without the pressure term.
>>>
>>
>> What does this mean? Stokes means using an incompressibility constraint,
>> for which we often introduce a pressure.
>>
>> Do you mean you are solving only the momentum block? If so, do you have a
>> constant viscosity? If so, then this is just the Laplace equation.
>> You should use a good Laplacian preconditioner, like -pc_type gamg or
>> -pc_type ml.
>>
>>   Thanks
>>
>>      Matt
>>
>>
>>> GMRES usually works great but with dirichlet boundary conditions. When I
>>> use a mixed boundary condition in Y, (dirichlet on bottom and Neumann on
>>> the top) with periodicity in X,Z. GMRES fails converge when the size of
>>> matrix increases. For smaller size (upto 27*27*5), only GMRES works and
>>> that too only with the option 'pc_type none'. I was unable to find any
>>> preconditioner which worked. Eventually, it also fails for bigger size.
>>> UMFPACK works but LU decomposition fails after a certain size and is very
>>> slow.
>>>
>>> It would be great if you could suggest a way or a preconditioner which
>>> suits this problem.
>>>
>>> Kind regards,
>>> Abhinav
>>>
>>
>>
>> --
>> 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
>>
>> https://www.cse.buffalo.edu/~knepley/
>> <http://www.cse.buffalo.edu/~knepley/>
>>
>

-- 
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

https://www.cse.buffalo.edu/~knepley/ <http://www.cse.buffalo.edu/~knepley/>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mcs.anl.gov/pipermail/petsc-users/attachments/20210419/0402df29/attachment-0001.html>


More information about the petsc-users mailing list