[petsc-users] The default nonzero pattern for SuperLU_dist.

Hong Zhang hzhang at mcs.anl.gov
Thu Sep 1 09:35:49 CDT 2011


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
>>>
>>
>
>


More information about the petsc-users mailing list