[petsc-users] ISCreateStride and MatGetSubmatrices

shu guo greatgs2008 at gmail.com
Tue Aug 28 10:42:16 CDT 2012


Hi Jed,

I was thinking about this issue either. But when I create the matrix,
I hardcoded as

          call MatCreateMPIBAIJ  (PETSC_COMM_WORLD,4,32,32,
     &                          PETSC_DETERMINE, PETSC_DETERMINE,
     &                          PETSC_NULL_INTEGER, mr(np(246)),
     &                          PETSC_NULL_INTEGER, mr(np(247)),
     &                          Kmatem, ierr)

And it works good. Does that mean this should not be a concern as you mentioned?

Thanks.

Shu



On Tue, Aug 28, 2012 at 11:37 AM, Jed Brown <jedbrown at mcs.anl.gov> wrote:
> On Tue, Aug 28, 2012 at 10:33 AM, shu guo <greatgs2008 at gmail.com> wrote:
>>
>> Dear All,
>>
>> I want to extract a sequential matrix from a MPIBAIJ matrix A with a
>> dimension of 4n*4n. After assembly A, I use ISCreateStride to define
>> the index by
>>
>>           call ISCreateStride(PETSC_COMM_WORLD,n,0,1,isrow,ierr)
>
>
> Fortran does not do type conversion without interfaces (which are about as
> much hassle as benefit). If you configured PETSc with non-default integer
> sizes, be sure to declare PetscInt zero,one instead of using numeric
> literals.
>
> Otherwise, run in valgrind to check that there isn't earlier corruption and
> run in a debugger to get a stack trace.
>
>>
>>
>> And extract the matrix as
>>           call MatGetSubMatrices(Kmatem,1,isrow,isrow,
>>      &                           MAT_INITIAL_MATRIX,Kmatemseq)
>>
>> But it gives me a segmentation fault when I call ISCreateStride. Is
>> there anything I did wrong? Thanks for any advice.
>>
>> Shu
>
>


More information about the petsc-users mailing list