Hi Pierre,

Here is how I create the matrix, and how I’ve done it for many years:

      ! Create global matrix to hold system of equations resulting from finite 
discretization
      ! of the Maxwell equations. 
      ngrow3=ginfo%nx*ginfo%ny*ginfo%nz*3
      call MatCreate(comm,A,ierr)
      call MatSetSizes(A,mloc3,mloc3,ngrow3,ngrow3,ierr)
      call MatSetBlockSize(A,i3,ierr)
      call MatSetType(A,MATAIJ,ierr)
      call MatSeqAIJSetPreallocation(A,i15,PETSC_NULL_INTEGER,ierr)
      call 
MatMPIAIJSetPreallocation(A,i15,PETSC_NULL_INTEGER,i7,PETSC_NULL_INTEGER,ierr)
      call MatSetOption(A,MAT_NEW_NONZERO_ALLOCATION_ERR,PETSC_FALSE,ierr)

This is a staggered grid formulation (but derived many years before PETSc had a 
DMStag class) and so I use regular DMDA….for those locations that are not 
involved, I put a 1 on the diagonal.

Randy

> On May 3, 2022, at 9:37 AM, Pierre Jolivet <[email protected]> wrote:
> 
> Thanks for the reproducer.
> My guess is that your AIJ matrix has not a block size of 3.
> A simple call such as: call MatConvert(A,MATBAIJ,MAT_INITIAL_MATRIX,C,ierr) 
> is also failing, while it shouldn’t if your AIJ Mat is truly made of 3x3 
> dense blocks.
> How did you determine the block size of your Mat?
> Are you allocating 3x3 dense blocks everywhere or are you skipping zero 
> coefficients in your AIJ Mat?
> In the meantime, you can bypass the issue by not setting a block size of 3 on 
> your Mat, or by setting different block size for the column and row 
> distributions, see MatSetBlockSizes().
> 
> Thanks,
> Pierre
> 
>> On 3 May 2022, at 5:39 PM, Randall Mackie <[email protected] 
>> <mailto:[email protected]>> wrote:
>> 
>> Dear PETSc team:
>> 
>> A part of our code that has worked for years and previous versions is now 
>> failing with the latest version 3.17.1, on the KSP solve with the following 
>> error:
>> 
>> [0]PETSC ERROR: --------------------- Error Message 
>> --------------------------------------------------------------
>> [0]PETSC ERROR: Invalid argument
>> [0]PETSC ERROR: Block size 3 is incompatible with the indices: non 
>> consecutive indices 153055 153124
>> [0]PETSC ERROR: See https://petsc.org/release/faq/ 
>> <https://fra01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fpetsc.org%2Frelease%2Ffaq%2F&data=05%7C01%7CRandall.Mackie%40CGG.com%7C323fb230ca4f45d45c7408da2d18c44e%7C307ea68275e14701a1146c42f9ff0d24%7C0%7C0%7C637871881639501468%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&sdata=3iAxFsi8wDXPcxKRBVFotn7DpoVNc9%2Fq60r%2F57nn7Lw%3D&reserved=0>
>>  for trouble shooting.
>> [0]PETSC ERROR: Petsc Release Version 3.17.1, Apr 28, 2022 
>> [0]PETSC ERROR: ./test on a linux-gfortran-complex-debug named 
>> rmackie-VirtualBox by rmackie Tue May  3 08:12:15 2022
>> [0]PETSC ERROR: Configure options --with-clean=1 --with-scalar-type=complex 
>> --with-debugging=1 --with-fortran=1 
>> --download-mpich=../external/mpich-4.0.1.tar.gz
>> [0]PETSC ERROR: #1 ISSetBlockSize() at 
>> /home/rmackie/PETSc/petsc-3.17.1/src/vec/is/is/interface/index.c:1898
>> [0]PETSC ERROR: #2 MatIncreaseOverlap() at 
>> /home/rmackie/PETSc/petsc-3.17.1/src/mat/interface/matrix.c:7086
>> [0]PETSC ERROR: #3 PCSetUp_ASM() at 
>> /home/rmackie/PETSc/petsc-3.17.1/src/ksp/pc/impls/asm/asm.c:238
>> [0]PETSC ERROR: #4 PCSetUp() at 
>> /home/rmackie/PETSc/petsc-3.17.1/src/ksp/pc/interface/precon.c:990
>> [0]PETSC ERROR: #5 KSPSetUp() at 
>> /home/rmackie/PETSc/petsc-3.17.1/src/ksp/ksp/interface/itfunc.c:407
>> [0]PETSC ERROR: #6 KSPSolve_Private() at 
>> /home/rmackie/PETSc/petsc-3.17.1/src/ksp/ksp/interface/itfunc.c:843
>> [0]PETSC ERROR: #7 KSPSolve() at 
>> /home/rmackie/PETSc/petsc-3.17.1/src/ksp/ksp/interface/itfunc.c:1078
>> 
>> 
>> I have a small test program with binary matrix and right hand side that will 
>> show the problem and I can send it as a zip file, please advise what email 
>> address to use or where to send it.
>> 
>> Thanks, 
>> 
>> Randy M.
> 

Reply via email to