> 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
