[petsc-users] PETSc binary write format
    Sajid Ali 
    sajidsyed2021 at u.northwestern.edu
       
    Mon Dec  3 13:38:46 CST 2018
    
    
  
Hi,
I ran ex10 from /vec/examples/tutorials and saved the matrix in binary
format.
Looking at the matrix in binary using xxd, I see
[sajid at xrm temp]$ xxd -b vector.dat
0000000: 00000000 00010010 01111011 01001110 00000000 00000000  ..{N..
0000006: 00000000 00010100 00000000 00000000 00000000 00000000  ......
000000c: 00000000 00000000 00000000 00000000 00111111 11110000  ....?.
0000012: 00000000 00000000 00000000 00000000 00000000 00000000  ......
0000018: 01000000 00000000 00000000 00000000 00000000 00000000  @.....
000001e: 00000000 00000000 01000000 00001000 00000000 00000000  .. at ...
0000024: 00000000 00000000 00000000 00000000 01000000 00010000  .... at .
000002a: 00000000 00000000 00000000 00000000 00000000 00000000  ......
0000030: 01000000 00010100 00000000 00000000 00000000 00000000  @.....
0000036: 00000000 00000000 01000000 00011000 00000000 00000000  .. at ...
000003c: 00000000 00000000 00000000 00000000 01000000 00011100  .... at .
0000042: 00000000 00000000 00000000 00000000 00000000 00000000  ......
0000048: 01000000 00100000 00000000 00000000 00000000 00000000  @ ....
000004e: 00000000 00000000 01000000 00100010 00000000 00000000  ..@"..
0000054: 00000000 00000000 00000000 00000000 01000000 00100100  ....@$
000005a: 00000000 00000000 00000000 00000000 00000000 00000000  ......
0000060: 01000000 00100110 00000000 00000000 00000000 00000000  @&....
0000066: 00000000 00000000 01000000 00101000 00000000 00000000  ..@(..
000006c: 00000000 00000000 00000000 00000000 01000000 00101010  ....@*
0000072: 00000000 00000000 00000000 00000000 00000000 00000000  ......
0000078: 01000000 00101100 00000000 00000000 00000000 00000000  @,....
000007e: 00000000 00000000 01000000 00101110 00000000 00000000  .. at ...
0000084: 00000000 00000000 00000000 00000000 01000000 00110000  .... at 0
000008a: 00000000 00000000 00000000 00000000 00000000 00000000  ......
0000090: 01000000 00110001 00000000 00000000 00000000 00000000  @1....
0000096: 00000000 00000000 01000000 00110010 00000000 00000000  .. at 2..
000009c: 00000000 00000000 00000000 00000000 01000000 00110011  .... at 3
00000a2: 00000000 00000000 00000000 00000000 00000000 00000000  ......
The format of the binary file is supposed to be
MAT_FILE_CLASSID, num_rows, num_cols, -1 followed by data.
Converting the first 4 bytes (32 bits) of binary to int, the number
00000000000100100111101101001110 becomes 1211214, but the value of
MAT_FILE_CLASSID according to the header file petscmat.h is 1211216 (
petsc at 3.10.2.1 built without complex support). What causes this discrepancy
?
Also, what are the special characters at the end of every line ? Am i not
reading the binary file correctly ?
Thank You,
Sajid Ali
Applied Physics
Northwestern University
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mcs.anl.gov/pipermail/petsc-users/attachments/20181203/b50d9f7c/attachment.html>
    
    
More information about the petsc-users
mailing list