Can the wave function obtained from iDMRG
be loaded into ITensorInfiniteMPS.jl
to do the transfer matrix spectrum calculation?
Because of my poor coding skill, I try to avoid the difficulty of arnoldi algorithm in C++ and the huge memory consumption of vumps procedure in Julia.
I’ve read the HDF5 method of transforming data from C++ to Juia.
So I try to do it.
save hdf5 in C++:
auto fo = h5_open("h5sav", 'w');
// h5_write(fo,"sites",sites);
h5_write(fo, "psi", psi);
h5_write(fo, "H_infi", H_infi);
read in Julia
fi = h5open("h5sav", "r")
ψ.C = read(fi, "psi", InfiniteCanonicalMPS)
close(fi)
and it comes to an error
ERROR: LoadError: HDF5 group or file does not contain InfiniteCanonicalMPS data
Stacktrace:
[1] error(s::String)
@ Base ./error.jl:33
[2] read(parent::HDF5.File, name::String, #unused#::Type{InfiniteCanonicalMPS})
@ ITensorInfiniteMPS ~/.julia/packages/ITensorInfiniteMPS/C1o6c/src/infinitemps.jl:258
[3] top-level scope
@ ~/ITensorInfiniteMPS.jl/imps/zigzagsu3/readtm.jl:33
in expression starting at /data/home/jhzhang/ITensorInfiniteMPS.jl/imps/zigzagsu3/readtm.jl:33
it seems like a type error.
I just wonder if it is easy to solve. If it isn’t, I would try another way.