Dear Hong, Yes, I am using this SAME_NONZERO_PATTERN to optimize the code,hehe!
Thanks very much! Best, Rebecca On Sep 1, 2011, at 7:35 AM, Hong Zhang wrote: > Rebecca: > >> Thanks for your kind reply. So if I set up the following: >> >> ierr = DAGetMatrix(DMMGGetDA(dmmg), MATAIJ, &jacobian);CHKERRQ(ierr); >> KSP ksp; >> ierr = SNESGetKSP(DMMGGetSNES(dmmg),&ksp);CHKERRQ(ierr); >> ierr = >> KSPSetOperators(ksp,jacobian,jacobian,SAME_NONZERO_PATTERN);CHKERRQ(ierr); >> >> ierr = DMMGSolve(dmmg);CHKERRQ(ierr); >> >> This will specify the nonzero pattern as the same? > Yes. > >> How could I check if I have set this up right? > > This is a user input. If you know the non-zero pattern will not change, then > this flag tells petsc library to skip symbolic factorization and reuse > previous > matrix factor structure. I would suggest use DIFFERENT_NONZERO_PATTERN > first. After the solver works well and you know the matrix structure > should not change, > then use SAME_NONZERO_PATTERN for optimization. > > Hong > > >> On Aug 31, 2011, at 2:42 PM, Barry Smith wrote: >> >>> >>> On Aug 31, 2011, at 4:40 PM, Xuefei (Rebecca) Yuan wrote: >>> >>>> Hello all, >>>> >>>> Is the default nonzero pattern for SuperLU_dist is SAME_NONZERO_PATTERN? >>> >>> There is no default nonzero pattern. You always must set it when you call >>> KSPSetOperators() or in your SNES FormFunction. The PETSc SUPERLU_dist >>> interface allows either pattern and should work correctly. >>> >>> >>> Barry >>> >>>> >>>> Thanks! >>>> >>>> Best, >>>> >>>> Rebecca >>>> >>> >> >>
