[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