[petsc-dev] Lagging the numerical factorization for one of the fields of fieldsplit preconditioner

Barry Smith bsmith at mcs.anl.gov
Mon Mar 14 16:55:23 CDT 2011


  Shri,

    In theory the flag for KSPSetOperators() (for example SAME_PRECONDITIONER) is propagated down through the PCFIELDSPLIT into the PC that is used on the A block. So in at least simple circumstances if you use -snes_lag_preconditioner it should "just work".  I traced through the PCFIELDSPLIT  and it does attempt to pass it down. 

    Is it not working as expected?

    Of course this means that any other part of the preconditioner are also not rebuilt. So I guess if you used additive or multiplicative fieldsplit with 2 splits it won't update a factorization of D etc. Do you want other things rebuilt, just not this one thing. This will be tricky because we don't have a mechanism to pass this information down into PCFIELDSPLIT. Tell me exactly what you want to do that it cannot currently do and I'll what we can do about it.

   Barry



On Mar 14, 2011, at 4:41 PM, Shri wrote:

> 
>            | A  B |  |dx|   |fx|
> Jacobian =                =
>            | C  D |  |dy|   |fy|
> 
> While solving this linear system with a fieldsplit precondioner,is there a way to lag the numerical factorization of the A matrix. The A matrix in my application is constant and is about 3-4 times bigger than the D matrix. The log summary shows that about 90% of the time is spent in the numerical factorization phase. So i would like to do the numerical factorization for A matrix just once and not have it factorized for all the snes iterations. 
> Speaking on the same note, should snes lag_preconditioner functionality be moved to ksp or maybe a -fieldsplit_xxx_lag_preconditioner option?
> 
> Thanks,
> Shri




More information about the petsc-dev mailing list