Hi everyone,

I have written a matrix in an HDF5 binary file without problem using PetscViewerHDF5Open function like this:

! Write
if (ishdf5) then
    PetscCall(PetscViewerHDF5Open(PETSC_COMM_WORLD,trim(filename),FILE_MODE_WRITE,view,ierr))
else
    PetscCall(PetscViewerBinaryOpen(PETSC_COMM_WORLD,trim(filename),FILE_MODE_WRITE,view,ierr))
endif
PetscCall(MatView(A,view,ierr))
PetscCall(PetscViewerDestroy(view,ierr))

But when I want to read that HDF5 file like this:

! Read
if (ishdf5) then
    PetscCall(PetscViewerHDF5Open(PETSC_COMM_WORLD,trim(filename),FILE_MODE_READ,view,ierr))
else
    PetscCall(PetscViewerBinaryOpen(PETSC_COMM_WORLD,trim(filename),FILE_MODE_READ,view,ierr))
endif
PetscCall(MatCreate(PETSC_COMM_WORLD,A,ierr))
PetscCall(MatSetType(A,MATMPIAIJ,ierr))
PetscCall(MatLoad(A,view,ierr))
PetscCall(PetscViewerDestroy(view,ierr))

I get this kind of error message below.
I don't have any problem writing / reading using PetscViewerBinaryOpen, and no problem writing / reading a vector using PetscViewerHDF5Open either.

What am I missing ?

Fuji

[0]PETSC ERROR: --------------------- Error Message --------------------------------------------------------------
[0]PETSC ERROR: Unexpected data in file
[0]PETSC ERROR: Attribute /Mat_0xc4000016_0/MATLAB_sparse does not exist and default value not provided
[0]PETSC ERROR: See https://petsc.org/release/faq/ for trouble shooting.
[0]PETSC ERROR: Petsc Release Version 3.18.0, unknown 
[0]PETSC ERROR: ./bin/solve on a x86_64 named master by beauduin Tue Oct  4 08:55:55 2022
[0]PETSC ERROR: Configure options --with-petsc-arch=x86_64 --COPTFLAGS="-g -O3" --FOPTFLAGS="-g -O3" --CXXOPTFLAGS="-g -O3" --with-debugging=0 --with-cc=mpiicc --with-cxx=mpiicpc --with-fc=mpiifort --with-single-library=1 --with-mpiexec=mpiexec --with-precision=double --with-fortran-interfaces=1 --with-make=1 --with-mpi=1 --with-mpi-compilers=1 --download-fblaslapack=0 --download-hypre=1 --download-cmake=0 --with-cmake=1 --download-metis=1 --download-parmetis=1 --download-ptscotch=0 --download-suitesparse=1 --download-triangle=1 --download-superlu=1 --download-superlu_dist=1 --download-scalapack=1 --download-mumps=1 --download-elemental=1 --download-spai=0 --download-parms=1 --download-moab=1 --download-chaco=0 --download-fftw=1 --with-petsc4py=1 --download-mpi4py=1 --download-saws --download-concurrencykit=1 --download-revolve=1 --download-cams=1 --download-p4est=0 --with-zlib=1 --with-hdf5=1 --download-hdf5=1 --download-mfem=1 --download-glvis=0 --with-opengl=0 --download-libpng=1 --download-libjpeg=1 --download-slepc=1 --download-hpddm=1 --download-bamg=1 --download-mmg=0 --download-parmmg=0 --download-htool=1 --download-egads=0 --download-opencascade=0 PETSC_ARCH=x86_64
[0]PETSC ERROR: #1 PetscViewerHDF5ReadAttribute() at /data/softs/petsc/src/sys/classes/viewer/impls/hdf5/hdf5v.c:1245
[0]PETSC ERROR: #2 MatLoad_AIJ_HDF5() at /data/softs/petsc/src/mat/impls/aij/seq/aijhdf5.c:63
[0]PETSC ERROR: #3 MatLoad_MPIAIJ() at /data/softs/petsc/src/mat/impls/aij/mpi/mpiaij.c:3034
[0]PETSC ERROR: #4 MatLoad() at /data/softs/petsc/src/mat/interface/matrix.c:1304
[0]PETSC ERROR: #5 bigmat.F90:62
[0]PETSC ERROR: #6 MatCreateVecs() at /data/softs/petsc/src/mat/interface/matrix.c:9336
[0]PETSC ERROR: #7 solve.F90:143
Abort(73) on node 0 (rank 0 in comm 16): application called MPI_Abort(MPI_COMM_SELF, 73) - process 0
forrtl: severe (174): SIGSEGV, segmentation fault occurred
Image              PC                Routine            Line        Source             
solve              000000000043258A  Unknown               Unknown  Unknown
libpthread-2.28.s  00007FCAF0B78C20  Unknown               Unknown  Unknown
libmpi.so.12.0.0   00007FCAF17A09D3  Unknown               Unknown  Unknown
....