[petsc-dev] Lies in PCFieldSplit

Barry Smith bsmith at mcs.anl.gov
Sun Dec 2 23:09:57 CST 2012


On Dec 2, 2012, at 11:00 PM, Matthew Knepley <knepley at gmail.com> wrote:

> On Sun, Dec 2, 2012 at 10:57 PM, Barry Smith <bsmith at mcs.anl.gov> wrote:
>> 
>>  Jed, Matt, or I are responsible for what are likely lies in the field split naming terminology
>> 
>>   We have
>> 
>> const char *const PCFieldSplitSchurPreTypes[] = {"SELF","DIAG","USER","PCFieldSplitSchurPreType","PC_FIELDSPLIT_SCHUR_PRE_",0};
>> 
>> Diag here actually means the A11 matrix, correct?
>> 
>>    case PC_FIELDSPLIT_SCHUR_PRE_DIAG:
>>      ierr = PetscViewerASCIIPrintf(viewer,"  Preconditioner for the Schur complement formed from the block diagonal part of A11\n");CHKERRQ(ierr);break;
>>    case PC_FIELDSPLIT_SCHUR_PRE_USER:
>>      if (jac->schur_user) {
>> 
>> block diagonal part of A11 actually means A11, correct?  Otherwise what blocks????
> 
> Processor diagonal. This is not ASM where what we select is
> automatically process diagonal.

   I don't see this at all. It seems to me we actually use A11 to form the preconditioner, of course if we use bjacobi as the preconditioner then it becomes the diagonal blocks of A11, but if we use, for example LU then we are using all of A11 in forming the preconditioner of S.

   Barry




> 
>   Matt
> 
>>   Once I get confirmation that these are phrased wrong I will update the source to be less confusing. Otherwise please example what diagonal means and how it is used here.
>> 
>>    Thanks
>> 
>>   Barry
>> 
> 
> 
> 
> --
> What most experimenters take for granted before they begin their
> experiments is infinitely more interesting than any results to which
> their experiments lead.
> -- Norbert Wiener




More information about the petsc-dev mailing list