Thanks. Working now. I missed that. I believed "MatSetType + MatSetLocalToGlobalMapping" <=> "MatCreateIS(..., rmap, cmap, ...)" : I got that wrong.
Franck ----- Mail original ----- > De: "Pierre Jolivet" <[email protected]> > À: "Franck Houssen" <[email protected]> > Cc: [email protected] > Envoyé: Mardi 12 Décembre 2017 20:43:50 > Objet: Re: [petsc-dev] MatIS export > Hello Franck, > From the documentation: "You must call MatSetLocalToGlobalMapping() before > using this matrix type.” ( > http://www.mcs.anl.gov/petsc/petsc-current/docs/manualpages/Mat/MATIS.html ) > You are missing this call when your Mat is of type MATIS, thus the runtime > error. > Thanks, > Pierre > > On 11 Dec 2017, at 5:42 PM, Franck Houssen < [email protected] > > > wrote: > > > Seems there is a problem with the attachment. Here is the file : > > > >> more matExport.cpp > > > #include <petscmat.h> > > > #include <petscsys.h> > > > int main(int argc, char *argv[]) > > > { > > > PetscInitialize(&argc, &argv, "", NULL); > > > Mat matrix; > > > MatCreate(PETSC_COMM_WORLD, &matrix); > > > const char* matType = (argc >= 2) ? argv[1] : MATMPIAIJ; > > > PetscPrintf(PETSC_COMM_WORLD, "mat type is %s \n", matType); > > > MatSetType(matrix, matType); > > > MatSetSizes(matrix, PETSC_DECIDE, PETSC_DECIDE, 10, 10); > > > MatSetUp(matrix); > > > for (int i = 0; i < 10; i++) MatSetValue(matrix, i, i, (double)(i+1.), > > ADD_VALUES); > > > MatAssemblyBegin(matrix, MAT_FINAL_ASSEMBLY); > > > MatAssemblyEnd(matrix, MAT_FINAL_ASSEMBLY); > > > PetscViewer viewer; > > > PetscViewerBinaryOpen(PETSC_COMM_WORLD, "matExport.bin", FILE_MODE_WRITE, > > &viewer); > > > MatView(matrix, viewer); > > > PetscViewerDestroy(&viewer); > > > PetscViewerASCIIOpen(PETSC_COMM_WORLD, "matExport.log", &viewer); > > > MatView(matrix, viewer); > > > PetscViewerDestroy(&viewer); > > > PetscViewerASCIIOpen(PETSC_COMM_WORLD, "matExport.mat", &viewer); > > > PetscViewerPushFormat(viewer, PETSC_VIEWER_ASCII_MATLAB); > > > MatView(matrix, viewer); > > > PetscViewerDestroy(&viewer); > > > MatDestroy(&matrix); > > > PetscFinalize(); > > > } > > > ----- Mail original ----- > > > > De: "Franck Houssen" < [email protected] > > > > > > > À: [email protected] > > > > > > Envoyé: Lundi 11 Décembre 2017 17:39:40 > > > > > > Objet: [petsc-dev] MatIS export > > > > > > Reporting a small bug related to MatIS export (or is this not meant to be > > > supported ?). > > > > > > Franck > > > > > > >> rm -f matExport.log matExport.mat matExport.bin; mpirun -n 2 > > > >> ./matExport.exe is ; more matExport.log matExport.mat matExport.bin > > > > > > mat type is is > > > > > > [0]PETSC ERROR: > > > ------------------------------------------------------------------------ > > > > > > [0]PETSC ERROR: Caught signal number 11 SEGV: Segmentation Violation, > > > probably memory access out of range > > > > > > [0]PETSC ERROR: Try option -start_in_debugger or > > > -on_error_attach_debugger > > > > > > [0]PETSC ERROR: or see > > > http://www.mcs.anl.gov/petsc/documentation/faq.html#valgrind > > > > > > [0]PETSC ERROR: or try http://valgrind.org on GNU/linux and Apple Mac OS > > > X > > > to > > > find memory corruption errors > > > > > > [0]PETSC ERROR: configure using --with-debugging=yes, recompile, link, > > > and > > > run > > > > > > [0]PETSC ERROR: to get more information on the crash. > > > > > > [1]PETSC ERROR: > > > ------------------------------------------------------------------------ > > > > > > [1]PETSC ERROR: Caught signal number 11 SEGV: Segmentation Violation, > > > probably memory access out of range > > > > > > [1]PETSC ERROR: Try option -start_in_debugger or > > > -on_error_attach_debugger > > > > > > [1]PETSC ERROR: or see > > > http://www.mcs.anl.gov/petsc/documentation/faq.html#valgrind > > > > > > [1]PETSC ERROR: or try http://valgrind.org on GNU/linux and Apple Mac OS > > > X > > > to > > > find memory corruption errors > > > > > > [1]PETSC ERROR: configure using --with-debugging=yes, recompile, link, > > > and > > > run > > > > > > [1]PETSC ERROR: to get more information on the crash. > > > > > > [0]PETSC ERROR: --------------------- Error Message > > > -------------------------------------------------------------- > > > > > > >> rm -f matExport.log matExport.mat matExport.bin; mpirun -n 2 > > > >> ./matExport.exe mpiaij ; more matExport.log matExport.mat > > > >> matExport.bin > > > > > > mat type is mpiaij > > > > > > :::::::::::::: > > > > > > matExport.log > > > > > > :::::::::::::: > > > > > > Mat Object: 2 MPI processes > > > > > > type: mpiaij > > > > > > row 0: (0, 2.) > > > > > > row 1: (1, 4.) > > > > > > row 2: (2, 6.) > > > > > > row 3: (3, 8.) > > > > > > row 4: (4, 10.) > > > > > > row 5: (5, 12.) > > > > > > row 6: (6, 14.) > > > > > > row 7: (7, 16.) > > > > > > row 8: (8, 18.) > > > > > > row 9: (9, 20.) > > > > > > :::::::::::::: > > > > > > matExport.mat > > > > > > :::::::::::::: > > > > > > %Mat Object: 2 MPI processes > > > > > > % type: mpiaij > > > > > > % Size = 10 10 > > > > > > % Nonzeros = 10 > > > > > > zzz = zeros(10,3); > > > > > > zzz = [ > > > > > > 1 1 2.0000000000000000e+00 > > > > > > 2 2 4.0000000000000000e+00 > > > > > > 3 3 6.0000000000000000e+00 > > > > > > 4 4 8.0000000000000000e+00 > > > > > > 5 5 1.0000000000000000e+01 > > > > > > 6 6 1.2000000000000000e+01 > > > > > > 7 7 1.4000000000000000e+01 > > > > > > 8 8 1.6000000000000000e+01 > > > > > > 9 9 1.8000000000000000e+01 > > > > > > 10 10 2.0000000000000000e+01 > > > > > > ]; > > > > > > Mat_0x557ffe276ba0_0 = spconvert(zzz); > > > > > > :::::::::::::: > > > > > > matExport.bin > > > > > > :::::::::::::: > > >
