[petsc-dev] MatIS export

Pierre Jolivet pierre.jolivet at enseeiht.fr
Tue Dec 12 13:43:50 CST 2017


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 <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 <franck.houssen at inria.fr> 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();
> }
> 
> 
> 
> De: "Franck Houssen" <franck.houssen at inria.fr>
> À: petsc-dev at mcs.anl.gov
> 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
> ::::::::::::::
> 
> 
> 
> 
> 
> 

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mcs.anl.gov/pipermail/petsc-dev/attachments/20171212/bf1e5ae8/attachment.html>


More information about the petsc-dev mailing list