[petsc-dev] Solving systems with (K,M)AIJ
Jed Brown
jed at jedbrown.org
Tue Jun 23 09:13:23 CDT 2020
In the simple case of J⊗I, we just need to apply whatever preconditioner to multiple right-hand sides, though that'll be new implementation code in many cases.
For implicit Runge-Kutta, we have I⊗S + J⊗I, and it's much less clear what is the best way to reuse a single preconditioner. On slide 16/17, I used a simple multigrid constructed from pbjacobi and reusing restriction/interpolation/Galerkin coarsening for all components.
https://jedbrown.org/files/20190606-StrongTime.pdf
Barry Smith <bsmith at petsc.dev> writes:
> Pierre,
>
> This is not what you want but has the same flavor PCHMG. Here all the fields are in one giant matrix, it builds a preconditioner for a single field and then reuses it for all the fields.
>
> I think people have to start writing custom preconditioners for the structure of (K,M)AIJ matrices but I don't think anyone has started that yet.
>
> Barry
>
>
>
>
>> On Jun 23, 2020, at 1:16 AM, Pierre Jolivet <pierre.jolivet at enseeiht.fr> wrote:
>>
>> Hello,
>> When solving systems with a KSP that has a (K,M)AIJ Pmat attached to it, it may be nice to define a preconditioner on the inner AIJ Pmat, so that we are not stuck with PCPBJACOBI.
>> For example, with FS, there is PCFieldSplitGetSubKSP and then you do what you want with the inner blocks.
>> Is there something similar for (K,M)AIJ, maybe with a fancy PCCOMPOSITE?
>> Of course, I could simply write a shell, but a new PC/option could be added to deal with such Pmat types?
>>
>> Thanks,
>> Pierre
More information about the petsc-dev
mailing list