Hi Yi,
As Matt indicated, this is a feature we have been planning but was not quite yet finished. But now I have finished adding support for all ITensor types and objects with the exception of complex-valued ITensors. As long as your data is real, you should be able to write it to HDF5 (including MPS and MPO objects) and read it again in the Julia version of ITensor.
To obtain this functionality, please do a "git pull" on the "v3" branch of C++ ITensor to get the latest code there.
As an example of how to write objects to HDF5 files, please see the code in unittest/hdf5_test.cc and in general the pattern is like this:
//Make an MPS
auto N = 4;
auto s = SpinHalf(N,{"ConserveQNs=",false});
auto M = randomMPS(s,4);
//Write the MPS to an HDF5 file named "test.h5" to a group (folder) named "mps_M"
auto fo = h5_open("test.h5",'w');
h5_write(fo,"mps_M",M);
close(fo);
Please let us know if you have any questions or run into any trouble using this feature.
Best,
Miles