[petsc-dev] MatIS export
Stefano Zampini
stefano.zampini at gmail.com
Wed Dec 13 11:29:13 CST 2017
MatSetType + MatSetLocalToGlobalMapping
is equivalent to MatCreateIS. Look at the code for MatCreateIS.
Il 13 Dic 2017 7:32 PM, "Franck Houssen" <franck.houssen at inria.fr> ha
scritto:
> Thanks. Working now. I missed that. I believed "MatSetType +
> MatSetLocalToGlobalMapping" <=> "MatCreateIS(..., rmap, cmap, ...)" : I got
> that wrong.
>
> Franck
>
> ------------------------------
>
> *De: *"Pierre Jolivet" <pierre.jolivet at enseeiht.fr>
> *À: *"Franck Houssen" <franck.houssen at inria.fr>
> *Cc: *petsc-dev at mcs.anl.gov
> *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 <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/20171213/8ab9dfa0/attachment.html>
More information about the petsc-dev
mailing list