I am a little confused by what the DMRGEngine outputs in the info instance returned from DMRGEngine.run() (like in the dmrg.py example code). I.e. I want to understand what is measured in the
bond_statistics
and sweep_statistics
. I have an example for an iDMRG simulation. On the left I look at the bond_statistics where it appears to be nicely converging, i.e. the energy is monotonically decreasing. On the right, in the sweep statistics, it is neither monotonic nor decreasing. So what is the difference?Code: Select all
fig, axs = plt.subplots(ncols=2,figsize=(12,5))
info = np.load("test_info.npy",allow_pickle=True).item()
ax = axs[0]
ax.plot(info["bond_statistics"]["E_total"]/np.array(info["bond_statistics"]["age"]),"x--")
ax.plot()
ax.set_ylabel("E_total / age")
ax.set_xlabel("steps?")
ax.set_title("bond_statistics")
ax = axs[1]
ax.plot(info["sweep_statistics"]["sweep"],info["sweep_statistics"]["E"] - info["E"],"x--")
ax.set_ylabel("E(s) - E")
ax.set_xlabel("sweeps")
ax.set_title("sweep_statistics")
plt.tight_layout()
plt.savefig("test_info_statistics.png")
I am aware of the description of update_stats and guess this is the same as bond_statistics - but I still dont get what the different energies that are measured are (because clearly they must be different?).
My gut feeling is the sweep statistics is the better way to look at it. If that is true, how can it be that the energy per site is increasing and not decreasing in the optimization? The phase is critical (gapless in the bose hubbard model).
Best regards,
Korbinian