Sir, I rewrite the code. The code do not include any domain concept. The code is simple allocate space, insert value, compress, set attribute, then convert the matrix type. It can help to reproduce the problem. Please take a look. As you suggested, I found that the problem comes from the line ``` MatSetBlockSize(....); ``` If this line is not used, every thing will be ok. Thanks for your time sir.
??????Xu Hui ?????????????????????????????? PhD Candidate, School of Aerospace Engineering Tsinghua University Tel?? 188-1152-7137 [email protected] ------------------ ???????? ------------------ ??????: "Junchao Zhang" <[email protected]>; ????????: 2022??4??15??(??????) ????11:25 ??????: "459543524"<[email protected]>; ????: "petsc-users"<[email protected]>; ????: Re: [petsc-users] Can not understand why convert matrix type from MPIAIJ to MATIS failed. Hi, Xu Hui, I ran a test with your matrix but met $ mpirun -n 4 ./ex0 -f test.mat [0]PETSC ERROR: --------------------- Error Message -------------------------------------------------------------- [0]PETSC ERROR: Unexpected data in file [0]PETSC ERROR: Not a matrix object in file ... [0]PETSC ERROR: #4 main() at ex0.c:18 [0]PETSC ERROR: PETSc Option Table entries: [0]PETSC ERROR: -f test.mat [0]PETSC ERROR: -matload_block_size 2 I attach my test ex0.c. You can run at your side to make sure the matrix is OK. Then, could just put the test and matrix files in a tarball and send it back? I feel the problem might be related to -matload_block_size 2. But let's see. Thanks. --Junchao Zhang On Fri, Apr 15, 2022 at 2:43 AM 459543524 <[email protected]> wrote: Sir, I already dump the matrix into binary file and attached in the mail, and please have a look. Thanks for your time. The follow code can be used to reproduce problem. --------------------------------------------------------------- std::string path = "......"; PetscViewer viewer; PetscViewerBinaryOpen(comm, path.c_str(), FILE_MODE_READ, &viewer); Mat A; MatCreate(comm,&A); MatSetType(A,MATMPIAIJ); MatLoad(A,viewer); PetscViewerDestroy(&viewer); MatView(A, PETSC_VIEWER_STDOUT_(MPI_COMM_WORLD)); Mat J; MatConvert(A, MATIS, MAT_INITIAL_MATRIX, &J); --------------------------------------------------------------- The result shown as follows: --------------------------------------------------------------- Mat Object: 4 MPI processes type: mpiaij row 0: (0, 168.75) (1, 0.) (2, 0.) (3, 0.) (4, 0.) (5, 0.) (6, 0.) (7, 0.) row 1: (0, 0.) (1, 168.75) (2, 0.) (3, 0.) (4, 0.) (5, 0.) (6, 0.) (7, 0.) row 2: (0, 0.) (1, 0.) (2, 168.75) (3, 0.) (6, 0.) (7, 0.) (8, 0.) (9, 0.) (12, 0.) (13, 0.) row 3: (0, 0.) (1, 0.) (2, 0.) (3, 168.75) (6, 0.) (7, 0.) (8, 0.) (9, 0.) (12, 0.) (13, 0.) row 4: (0, 0.) (1, 0.) (4, 150.) (5, -25.) (6, -100.) (7, 25.) (16, -25.) (17, 25.) (18, 0.) (19, -25.) row 5: (0, 0.) (1, 0.) (4, -25.) (5, 150.) (6, 25.) (7, -50.) (16, 0.) (17, -50.) (18, -25.) (19, 0.) row 6: (0, 0.) (1, 0.) (2, 0.) (3, 0.) (4, -100.) (5, 25.) (6, 300.) (7, -50.) (12, -100.) (13, 25.) (18, -50.) (19, 25.) (24, 0.) (25, -25.) row 7: (0, 0.) (1, 0.) (2, 0.) (3, 0.) (4, 25.) (5, -50.) (6, -50.) (7, 300.) (12, 25.) (13, -50.) (18, 25.) (19, -100.) (24, -25.) (25, 0.) row 8: (2, 0.) (3, 0.) (8, 150.) (9, 0.) (10, 0.) (11, 0.) (12, 0.) (13, 0.) (14, 0.) (15, 0.) row 9: (2, 0.) (3, 0.) (8, 0.) (9, 150.) (10, 0.) (11, 0.) (12, 0.) (13, 0.) (14, 0.) (15, 0.) row 10: (8, 0.) (9, 0.) (10, 150.) (11, 0.) (14, 0.) (15, 0.) row 11: (8, 0.) (9, 0.) (10, 0.) (11, 150.) (14, 0.) (15, 0.) row 12: (2, 0.) (3, 0.) (6, -100.) (7, 25.) (8, 0.) (9, 0.) (12, 300.) (13, -50.) (14, -100.) (15, 25.) (24, -50.) (25, 25.) (26, 0.) (27, -25.) row 13: (2, 0.) (3, 0.) (6, 25.) (7, -50.) (8, 0.) (9, 0.) (12, -50.) (13, 300.) (14, 25.) (15, -50.) (24, 25.) (25, -100.) (26, -25.) (27, 0.) row 14: (8, 0.) (9, 0.) (10, 0.) (11, 0.) (12, -100.) (13, 25.) (14, 150.) (15, -25.) (26, -25.) (27, 0.) row 15: (8, 0.) (9, 0.) (10, 0.) (11, 0.) (12, 25.) (13, -50.) (14, -25.) (15, 150.) (26, 25.) (27, -50.) row 16: (4, -25.) (5, 0.) (16, 150.) (17, -25.) (18, -100.) (19, 25.) (20, -25.) (21, 25.) (22, 0.) (23, -25.) row 17: (4, 25.) (5, -50.) (16, -25.) (17, 150.) (18, 25.) (19, -50.) (20, 0.) (21, -50.) (22, -25.) (23, 0.) row 18: (4, 0.) (5, -25.) (6, -50.) (7, 25.) (16, -100.) (17, 25.) (18, 300.) (19, -50.) (22, -50.) (23, 25.) (24, -100.) (25, 25.) (28, 0.) (29, -25.) row 19: (4, -25.) (5, 0.) (6, 25.) (7, -100.) (16, 25.) (17, -50.) (18, -50.) (19, 300.) (22, 25.) (23, -100.) (24, 25.) (25, -50.) (28, -25.) (29, 0.) row 20: (16, -25.) (17, 0.) (20, 75.) (21, -25.) (22, -50.) (23, 25.) row 21: (16, 25.) (17, -50.) (20, -25.) (21, 75.) (22, 0.) (23, -25.) row 22: (16, 0.) (17, -25.) (18, -50.) (19, 25.) (20, -50.) (21, 0.) (22, 150.) (23, -25.) (28, -50.) (29, 25.) row 23: (16, -25.) (17, 0.) (18, 25.) (19, -100.) (20, 25.) (21, -25.) (22, -25.) (23, 150.) (28, 0.) (29, -25.) row 24: (6, 0.) (7, -25.) (12, -50.) (13, 25.) (18, -100.) (19, 25.) (24, 300.) (25, -50.) (26, -100.) (27, 25.) (28, -50.) (29, 25.) (30, 0.) (31, -25.) row 25: (6, -25.) (7, 0.) (12, 25.) (13, -100.) (18, 25.) (19, -50.) (24, -50.) (25, 300.) (26, 25.) (27, -50.) (28, 25.) (29, -100.) (30, -25.) (31, 0.) row 26: (12, 0.) (13, -25.) (14, -25.) (15, 25.) (24, -100.) (25, 25.) (26, 150.) (27, -25.) (30, -25.) (31, 0.) row 27: (12, -25.) (13, 0.) (14, 0.) (15, -50.) (24, 25.) (25, -50.) (26, -25.) (27, 150.) (30, 25.) (31, -50.) row 28: (18, 0.) (19, -25.) (22, -50.) (23, 0.) (24, -50.) (25, 25.) (28, 150.) (29, -25.) (30, -50.) (31, 25.) row 29: (18, -25.) (19, 0.) (22, 25.) (23, -25.) (24, 25.) (25, -100.) (28, -25.) (29, 150.) (30, 0.) (31, -25.) row 30: (24, 0.) (25, -25.) (26, -25.) (27, 25.) (28, -50.) (29, 0.) (30, 75.) (31, 0.) row 31: (24, -25.) (25, 0.) (26, 0.) (27, -50.) (28, 25.) (29, -25.) (30, 0.) (31, 75.) [0]PETSC ERROR: --------------------- Error Message -------------------------------------------------------------- [0]PETSC ERROR: Argument out of range [0]PETSC ERROR: Scatter indices in ix are out of range [0]PETSC ERROR: See https://petsc.org/release/faq/ for trouble shooting. [0]PETSC ERROR: Petsc Release Version 3.15.4, Sep 01, 2021 [0]PETSC ERROR: Unknown Name on a named xuhui-Office by xuhui Fri Apr 15 15:40:00 2022 [0]PETSC ERROR: Configure options --prefix=/opt/petsc/debug_int64 --download-mumps --download-scalapack --download-superlu_dist --download-parmetis --download-metis --with-64-bit-indices=1 [0]PETSC ERROR: #1 VecScatterCreate() at /home/xuhui/Temp/petsc-3.15.4/src/vec/is/sf/interface/vscat.c:767 [0]PETSC ERROR: #2 MatISSetUpScatters_Private() at /home/xuhui/Temp/petsc-3.15.4/src/mat/impls/is/matis.c:2403 [0]PETSC ERROR: #3 MatSetLocalToGlobalMapping_IS() at /home/xuhui/Temp/petsc-3.15.4/src/mat/impls/is/matis.c:2501 [0]PETSC ERROR: #4 MatSetLocalToGlobalMapping() at /home/xuhui/Temp/petsc-3.15.4/src/mat/interface/matrix.c:2093 [0]PETSC ERROR: #5 MatConvert_XAIJ_IS() at /home/xuhui/Temp/petsc-3.15.4/src/mat/impls/is/matis.c:651 [0]PETSC ERROR: #6 MatConvert() at /home/xuhui/Temp/petsc-3.15.4/src/mat/interface/matrix.c:4439 ^C[mpiexec@xuhui-Office] Sending Ctrl-C to processes as requested --------------------------------------------------------------- ??????Xu Hui ?????????????????????????????? PhD Candidate, School of Aerospace Engineering Tsinghua University Tel?? 188-1152-7137 [email protected] ------------------ ???????? ------------------ ??????: "Junchao Zhang" <[email protected]>; ????????: 2022??4??15??(??????) ????6:31 ??????: "459543524"<[email protected]>; ????: "petsc-users"<[email protected]>; ????: Re: [petsc-users] Can not understand why convert matrix type from MPIAIJ to MATIS failed. Since you already have the test matrix, could you add "-mat_view binary" to dump the matrix and send us the binaryoutput.* files for reproduce? --Junchao Zhang On Thu, Apr 14, 2022 at 10:09 AM 459543524 via petsc-users <[email protected]> wrote: Sir, I can not understand why my convert from MPIAIJ to MATIS failed. I already have a matrix A, create by follow commands --------------------------------------------------------------------- Mat A; MatCreateAIJ(...) MatSetValues(...) MatAssemblyBegin(A, MAT_FINAL_ASSEMBLY); MatAssemblyEnd(A, MAT_FINAL_ASSEMBLY); --------------------------------------------------------------------- I want convert the matrix A to MATIS type for future BDDC operation, as advised by ex 72. --------------------------------------------------------------------- Mat J; MatConvert(A, MATIS, MAT_INITIAL_MATRIX, &J); --------------------------------------------------------------------- The command failed with the stacktrace [0]PETSC ERROR: --------------------- Error Message -------------------------------------------------------------- [0]PETSC ERROR: Argument out of range [0]PETSC ERROR: Scatter indices in ix are out of range [0]PETSC ERROR: See https://petsc.org/release/faq/ for trouble shooting. [0]PETSC ERROR: Petsc Release Version 3.15.4, Sep 01, 2021 [0]PETSC ERROR: Unknown Name on a named xuhui-Office by xuhui Thu Apr 14 23:06:08 2022 [0]PETSC ERROR: Configure options --prefix=/opt/petsc/debug_int64 --download-mumps --download-scalapack --download-superlu_dist --download-parmetis --download-metis --with-64-bit-indices=1 [0]PETSC ERROR: #1 VecScatterCreate() at /home/xuhui/Temp/petsc-3.15.4/src/vec/is/sf/interface/vscat.c:767 [0]PETSC ERROR: #2 MatISSetUpScatters_Private() at /home/xuhui/Temp/petsc-3.15.4/src/mat/impls/is/matis.c:2403 [0]PETSC ERROR: #3 MatSetLocalToGlobalMapping_IS() at /home/xuhui/Temp/petsc-3.15.4/src/mat/impls/is/matis.c:2501 [0]PETSC ERROR: #4 MatSetLocalToGlobalMapping() at /home/xuhui/Temp/petsc-3.15.4/src/mat/interface/matrix.c:2093 [0]PETSC ERROR: #5 MatConvert_XAIJ_IS() at /home/xuhui/Temp/petsc-3.15.4/src/mat/impls/is/matis.c:651 [0]PETSC ERROR: #6 MatConvert() at /home/xuhui/Temp/petsc-3.15.4/src/mat/interface/matrix.c:4439 ^C[mpiexec@xuhui-Office] Sending Ctrl-C to processes as requested I have no idea why this happen. Thanks for your time. Further information: The matrix A is distributed on 4 processes. We can view the matrix as follows: Mat Object: 4 MPI processes type: mpiaij row 0: (0, 168.75) (1, 0.) (2, 0.) (3, 0.) (4, 0.) (5, 0.) (6, 0.) (7, 0.) row 1: (0, 0.) (1, 168.75) (2, 0.) (3, 0.) (4, 0.) (5, 0.) (6, 0.) (7, 0.) row 2: (0, 0.) (1, 0.) (2, 168.75) (3, 0.) (6, 0.) (7, 0.) (8, 0.) (9, 0.) (12, 0.) (13, 0.) row 3: (0, 0.) (1, 0.) (2, 0.) (3, 168.75) (6, 0.) (7, 0.) (8, 0.) (9, 0.) (12, 0.) (13, 0.) row 4: (0, 0.) (1, 0.) (4, 150.) (5, -25.) (6, -100.) (7, 25.) (16, -25.) (17, 25.) (18, 0.) (19, -25.) row 5: (0, 0.) (1, 0.) (4, -25.) (5, 150.) (6, 25.) (7, -50.) (16, 0.) (17, -50.) (18, -25.) (19, 0.) row 6: (0, 0.) (1, 0.) (2, 0.) (3, 0.) (4, -100.) (5, 25.) (6, 300.) (7, -50.) (12, -100.) (13, 25.) (18, -50.) (19, 25.) (24, 0.) (25, -25.) row 7: (0, 0.) (1, 0.) (2, 0.) (3, 0.) (4, 25.) (5, -50.) (6, -50.) (7, 300.) (12, 25.) (13, -50.) (18, 25.) (19, -100.) (24, -25.) (25, 0.) row 8: (2, 0.) (3, 0.) (8, 150.) (9, 0.) (10, 0.) (11, 0.) (12, 0.) (13, 0.) (14, 0.) (15, 0.) row 9: (2, 0.) (3, 0.) (8, 0.) (9, 150.) (10, 0.) (11, 0.) (12, 0.) (13, 0.) (14, 0.) (15, 0.) row 10: (8, 0.) (9, 0.) (10, 150.) (11, 0.) (14, 0.) (15, 0.) row 11: (8, 0.) (9, 0.) (10, 0.) (11, 150.) (14, 0.) (15, 0.) row 12: (2, 0.) (3, 0.) (6, -100.) (7, 25.) (8, 0.) (9, 0.) (12, 300.) (13, -50.) (14, -100.) (15, 25.) (24, -50.) (25, 25.) (26, 0.) (27, -25.) row 13: (2, 0.) (3, 0.) (6, 25.) (7, -50.) (8, 0.) (9, 0.) (12, -50.) (13, 300.) (14, 25.) (15, -50.) (24, 25.) (25, -100.) (26, -25.) (27, 0.) row 14: (8, 0.) (9, 0.) (10, 0.) (11, 0.) (12, -100.) (13, 25.) (14, 150.) (15, -25.) (26, -25.) (27, 0.) row 15: (8, 0.) (9, 0.) (10, 0.) (11, 0.) (12, 25.) (13, -50.) (14, -25.) (15, 150.) (26, 25.) (27, -50.) row 16: (4, -25.) (5, 0.) (16, 150.) (17, -25.) (18, -100.) (19, 25.) (20, -25.) (21, 25.) (22, 0.) (23, -25.) row 17: (4, 25.) (5, -50.) (16, -25.) (17, 150.) (18, 25.) (19, -50.) (20, 0.) (21, -50.) (22, -25.) (23, 0.) row 18: (4, 0.) (5, -25.) (6, -50.) (7, 25.) (16, -100.) (17, 25.) (18, 300.) (19, -50.) (22, -50.) (23, 25.) (24, -100.) (25, 25.) (28, 0.) (29, -25.) row 19: (4, -25.) (5, 0.) (6, 25.) (7, -100.) (16, 25.) (17, -50.) (18, -50.) (19, 300.) (22, 25.) (23, -100.) (24, 25.) (25, -50.) (28, -25.) (29, 0.) row 20: (16, -25.) (17, 0.) (20, 75.) (21, -25.) (22, -50.) (23, 25.) row 21: (16, 25.) (17, -50.) (20, -25.) (21, 75.) (22, 0.) (23, -25.) row 22: (16, 0.) (17, -25.) (18, -50.) (19, 25.) (20, -50.) (21, 0.) (22, 150.) (23, -25.) (28, -50.) (29, 25.) row 23: (16, -25.) (17, 0.) (18, 25.) (19, -100.) (20, 25.) (21, -25.) (22, -25.) (23, 150.) (28, 0.) (29, -25.) row 24: (6, 0.) (7, -25.) (12, -50.) (13, 25.) (18, -100.) (19, 25.) (24, 300.) (25, -50.) (26, -100.) (27, 25.) (28, -50.) (29, 25.) (30, 0.) (31, -25.) row 25: (6, -25.) (7, 0.) (12, 25.) (13, -100.) (18, 25.) (19, -50.) (24, -50.) (25, 300.) (26, 25.) (27, -50.) (28, 25.) (29, -100.) (30, -25.) (31, 0.) row 26: (12, 0.) (13, -25.) (14, -25.) (15, 25.) (24, -100.) (25, 25.) (26, 150.) (27, -25.) (30, -25.) (31, 0.) row 27: (12, -25.) (13, 0.) (14, 0.) (15, -50.) (24, 25.) (25, -50.) (26, -25.) (27, 150.) (30, 25.) (31, -50.) row 28: (18, 0.) (19, -25.) (22, -50.) (23, 0.) (24, -50.) (25, 25.) (28, 150.) (29, -25.) (30, -50.) (31, 25.) row 29: (18, -25.) (19, 0.) (22, 25.) (23, -25.) (24, 25.) (25, -100.) (28, -25.) (29, 150.) (30, 0.) (31, -25.) row 30: (24, 0.) (25, -25.) (26, -25.) (27, 25.) (28, -50.) (29, 0.) (30, 75.) (31, 0.) row 31: (24, -25.) (25, 0.) (26, 0.) (27, -50.) (28, 25.) (29, -25.) (30, 0.) (31, 75.) ??????Xu Hui ?????????????????????????????? PhD Candidate, School of Aerospace Engineering Tsinghua University Tel?? 188-1152-7137 [email protected]
reproduce.tar.gz
Description: Binary data
