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