The energy of bosons oscillates and fails to converge
Posted: 05 Jul 2023, 09:33
Hi,Johannes,
When I was trying a species model on a cylinder, I tried to consider the case where a lattice point can occupy multiple bosons (Nmax=3), and expected that when U is relatively large, the result can be compared with the hardcore bosons (Nmax=1) remains consistent. I think that when U is large, its interaction will cause a lattice site to occupy more favorably only one boson (although more than one is actually 3 allowed).
dmrg parameters as following:
I have two problems:
The first problem is that the energy is oscillating abnormally. Because the model is computationally intensive, I try to use a smaller Ly. When I try Ly=3, hardcore can get reasonable results. But when Nmax=3, the following energy oscillation will appear (the average energy should be around -0.4 to -0.5, and different parameters have been tried three times). Why through a large number of sweeps, not only did the energy not converge, but there was an unreasonable violent oscillation? This seems to be solved by increasing Ly, but it greatly increases the computational complexity.
The second problem is that the model with large U and Nmax=3 is not consistent with the results of hardcore boson. Although I tried a larger Ly=6, U=10, 20, 50, the energy is convergent, but the energy value of convergence But it is different, hardcore=-0.43 Nmax=-0.48.
When I was trying a species model on a cylinder, I tried to consider the case where a lattice point can occupy multiple bosons (Nmax=3), and expected that when U is relatively large, the result can be compared with the hardcore bosons (Nmax=1) remains consistent. I think that when U is large, its interaction will cause a lattice site to occupy more favorably only one boson (although more than one is actually 3 allowed).
dmrg parameters as following:
Code: Select all
data = dict(phi_ext=phi_ext, QL=[])
print(phi_ext)
dmrg_params = {
'mixer': True, # setting this to True helps to escape local minima
'mixer_params': {
'amplitude': 1.e-5,
'decay': 1.2,
'disable_after': 4
},
'trunc_params': {
'svd_min': 1.e-10
#'chi_max': 7000
},
'chi_list': {
0: 80,
4: 100,
8: 200,
12: 400,
16: 800,
20: 1000,
#24: 2000,
},
'max_E_err': 1.e-9,
'max_S_err': 1.e-6,
'norm_tol': 1.e-6,
'max_sweeps': 150,
#'max_sweeps': 46,
'N_sweeps_check': 2,
'update_env':20,
}
The first problem is that the energy is oscillating abnormally. Because the model is computationally intensive, I try to use a smaller Ly. When I try Ly=3, hardcore can get reasonable results. But when Nmax=3, the following energy oscillation will appear (the average energy should be around -0.4 to -0.5, and different parameters have been tried three times). Why through a large number of sweeps, not only did the energy not converge, but there was an unreasonable violent oscillation? This seems to be solved by increasing Ly, but it greatly increases the computational complexity.
The second problem is that the model with large U and Nmax=3 is not consistent with the results of hardcore boson. Although I tried a larger Ly=6, U=10, 20, 50, the energy is convergent, but the energy value of convergence But it is different, hardcore=-0.43 Nmax=-0.48.