[petsc-users] Strategies for coupled nonlinear problems

Miguel Angel Salazar de Troya miguel.salazar at corintis.com
Mon Jul 8 05:14:25 CDT 2024


Thanks Adam and Matt,

Matt, can I get away with just using PCFIELDSPLIT? Or do I need the
SNESFIELDSPLIT? Though it looks like the block Gauss-Seidel is only
implemented in serial (
https://urldefense.us/v3/__https://petsc.org/main/manual/ksp/*block-jacobi-and-overlapping-additive-schwarz-preconditioners__;Iw!!G_uCfscf7eWS!fCLvWkRLjtRlx5jckypIplIxnk7AjY_owXIPyfK59pJPLsB9d6F_GYPmQ5koBgIZp7GpV37w_YXjt2j63gEg01pqR7FKTe-u$ 
)

On a more theoretical note, I have the impression that the convergence
failures of the Newton-Raphson method for this kind of problem is
ultimately due to a lack of a diagonally dominant Jacobian. I have not
found any reference so I might be wrong.

Best,
Miguel

On Sat, Jul 6, 2024 at 3:33 PM Matthew Knepley <knepley at gmail.com> wrote:

> On Fri, Jul 5, 2024 at 3:29 AM Miguel Angel Salazar de Troya <
> miguel.salazar at corintis.com> wrote:
>
>> Hello, I have the Navier-Stokes equation coupled with a
>> convection-diffusion equation for the temperature. It is a two-way coupling
>> because the viscosity depends on the temperature. One way to solve this is
>> with some kind of fixed point iteration
>> ZjQcmQRYFpfptBannerStart
>> This Message Is From an External Sender
>> This message came from outside your organization.
>>
>> ZjQcmQRYFpfptBannerEnd
>> Hello,
>>
>> I have the Navier-Stokes equation coupled with a convection-diffusion
>> equation for the temperature. It is a two-way coupling because the
>> viscosity depends on the temperature. One way to solve this is with some
>> kind of fixed point iteration scheme, where I solve each equation
>> separately in a loop until I see convergence. I am aware this is not
>> possible directly at the SNES level. Is there something that one can do
>> using PCFIELDSPLIT? I would like to assemble my fully coupled system and
>> play with the solver options to get some kind of fixed-point iteration
>> scheme. I would like to avoid having to build two separate SNES solvers,
>> one per equation. Any reference on techniques to solve this type of coupled
>> system is welcome.
>>
>
> Hi Miguel,
>
> I have a branch
>
>
> https://urldefense.us/v3/__https://gitlab.com/petsc/petsc/-/tree/knepley/feature-snes-fieldsplit?ref_type=heads__;!!G_uCfscf7eWS!fCLvWkRLjtRlx5jckypIplIxnk7AjY_owXIPyfK59pJPLsB9d6F_GYPmQ5koBgIZp7GpV37w_YXjt2j63gEg01pqR6cHYMfY$ 
>
> that will allow you to do exactly what you want to do. However, there are
> caveats. In order to have SNES do this, it needs a way to selectively
> reassemble subproblems. I assume you are using Firedrake, so this will not
> work. I would definitely be willing to work with those guys to get
> this going, introducing callbacks, just as we did on the FieldSplit case.
>
>   Thanks,
>
>      Matt
>
>
>> Best,
>> Miguel
>>
>
>
> --
> 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://urldefense.us/v3/__https://www.cse.buffalo.edu/*knepley/__;fg!!G_uCfscf7eWS!fCLvWkRLjtRlx5jckypIplIxnk7AjY_owXIPyfK59pJPLsB9d6F_GYPmQ5koBgIZp7GpV37w_YXjt2j63gEg01pqRzG84SwL$ 
> <https://urldefense.us/v3/__http://www.cse.buffalo.edu/*knepley/__;fg!!G_uCfscf7eWS!fCLvWkRLjtRlx5jckypIplIxnk7AjY_owXIPyfK59pJPLsB9d6F_GYPmQ5koBgIZp7GpV37w_YXjt2j63gEg01pqR_B7W9Os$ >
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mcs.anl.gov/pipermail/petsc-users/attachments/20240708/1b245201/attachment.html>


More information about the petsc-users mailing list