Re: [petsc-dev] Lagging the numerical factorization for one of the fields of fieldsplit preconditioner
One fix may be to make PCSetUp() smarter and know the matrix has not changed and hence it doesn't have to be refactored (instead of only relying on the flag passed to KSPSetOperators()).
I feel that for the fieldsplit preconditioner the control of 'which' submatrix gets refactorized and 'when' should be with the user and not petsc.
Barry
Since,A is constant it needs to be factorized only once while (df_dx - df_dy*inv(A)*dg_dx) is not constant and needs to be refactorized.
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.
Currently,the factorization is done for 'both or none'.I wanted the factorization to be done for 'either,both,or none'. I was thinking about having an option say -fieldsplit_xxx_lag_preconditioner <niterations> which will delay the refactorization for field xxx by niterations and if niterations is set to -1 then it will not update the factorization.
Thanks, Shri
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
participants (1)
-
Shri