[petsc-dev] FieldSplit error

Barry Smith bsmith at mcs.anl.gov
Fri May 29 16:18:03 CDT 2015


  fixed in master and next with the commit a9de710

Barry

> On May 29, 2015, at 1:08 PM, Barry Smith <bsmith at mcs.anl.gov> wrote:
> 
> 
>   I will fix this.
> 
>  Barry
> 
>> On May 29, 2015, at 10:40 AM, Mark Adams <mfadams at lbl.gov> wrote:
>> 
>> I have a 2 x 2 MatComposite and PCSetup is hanging because this branch below does "NEED" to be checked. This is in matrix.c around line 7500.  Barry added this a year ago (and the code has been working so I am puzzled).  I commented this code out and it works.
>> 
>> The 2nd block here is very small and is all on one processor, so all but one proc have (n == rend-rstart).
>> 
>> This code seems to work in maint, so I am puzzled.  Perhaps this code was merged recently?
>> Mark
>> 
>>  if (!iscol || isrow == iscol) {
>> 
>>    PetscBool stride;
>> 
>>    ierr = PetscObjectTypeCompare((PetscObject)isrow,ISSTRIDE,&stride);CHKERRQ(ierr);
>> 
>>    if (stride) {
>> 
>>      PetscInt first,step,n,rstart,rend;
>> 
>>      ierr = ISStrideGetInfo(isrow,&first,&step);CHKERRQ(ierr);
>> 
>>      if (step == 1) {
>> 
>>        ierr = MatGetOwnershipRange(mat,&rstart,&rend);CHKERRQ(ierr);
>> 
>>        if (rstart == first) {
>> 
>>          ierr = ISGetLocalSize(isrow,&n);CHKERRQ(ierr);
>> 
>>          if (n == rend-rstart) {
>> 
>>            /* special case grabbing all rows; NEED to do a global reduction to make sure all processes are doing this */
>> 
>>            if (cll == MAT_INITIAL_MATRIX) {
>> 
>>              *newmat = mat;
>> 
>>              ierr    = PetscObjectReference((PetscObject)mat);CHKERRQ(ierr);
>> 
>>            }
>> 
>>            PetscFunctionReturn(0);
>> 
>>          }
>> 
>>        }
>> 
>>      }
>> 
>>    }
>> 
>>  }
>> 
> 




More information about the petsc-dev mailing list