PCFieldSplit and Schur
francois pacull
fpacull at fluorem.com
Tue Nov 24 12:24:48 CST 2009
Thank you for your email Jed, this is very helpfull.
Just in case you would know some specific references:
the physics we are working with are very common: turbulent low-Mach gas
dynamics; since part of the systems stiffness is created by the
turbulent variables, i am trying to couple a first system with 5 fields
(density, momentum, energy) and a second one with 2 fields (turbulence),
within the preconditioner. The motivation is the diminution of the
factorization memory requirement, compare to when the fields are not split.
Regards,
francois pacull.
Jed Brown a écrit :
> On Tue, 24 Nov 2009 17:46:01 +0100, francois pacull <fpacull at fluorem.com> wrote:
>
>
>> PCFieldSplitGetSubKSP(SubPC,number_of_split,&FieldSplitKSP);
>>
>
> Note that Schur currently only works when number_of_split=2.
>
> I think this is the culprit:
>
>
>> PCSetType(FieldSplitPC1,PCILU);
>>
> ^^^^^^
> Here you are trying to precondition the Schur complement, but ...
>
>
>> So far I did not turn on the Schur complement preconditioner option:
>> PCFieldSplitSchurPrecondition(subpc,PETSC_FALSE);
>>
>
> There should be a check for this so that you get a better error. When
> not PCFieldSplitSchurPrecondition, we set PCNONE for the Schur
> complement.
>
>
>> Is there a book or article describing the methods implemented in this
>> FieldSplit option?
>>
>
> Not really, it implements "physics-based" relaxation
> (additive/multiplicative) and factorization (Schur), the former is a
> fairly traditional idea, for the latter you generally have to look at
> references for your application area. We might be able to refer you to
> specific references if you explain the physics you are working with.
>
> There are two classes of problems for which the factorization option is
> to be preferred (because usually nothing else works):
>
> * indefinite systems such as incompressible flow or LNK optimization
>
> * stiff wave problems like shallow water, low-Mach gas dynamics, MHD
>
> A while ago, I started extending PCFieldSplit to do hybrid factorization
> and relaxation with no restriction on the number of splits, and with the
> appropriate hooks to get preconditioners in all the places you might
> want them. Sadly, I have not yet gotten it cleaned up enough to push to
> PETSc-dev, but it is still on my to do list.
>
> Jed
>
>
More information about the petsc-users
mailing list