[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