|
70 | 70 | M = 100
|
71 | 71 | procedure = [[M, 0.4], [M, 0.2], [M, 0.1], [M, 0], [M, 0], [M,0], [M,0]]
|
72 | 72 | mps = Mps.random(model, nelec, M, percent=1.0)
|
73 |
| -logger.info(f"initial mps: {mps}") |
| 73 | +mps.canonicalise().normalize("mps_and_coeff").canonicalise() |
| 74 | +logger.info(f"initial mps: {mps}, {mps.mp_norm}") |
74 | 75 |
|
75 |
| -# algorithm 1: DMRG sweep |
76 |
| -mps.optimize_config.procedure = procedure |
77 |
| -mps.optimize_config.method = "2site" |
78 |
| -energies, mps = optimize_mps(mps.copy(), mpo) |
79 |
| -gs_e = min(energies) |
80 |
| -logger.info(f"lowest energy: {gs_e}") |
| 76 | +## algorithm 1: DMRG sweep |
| 77 | +#mps.optimize_config.procedure = procedure |
| 78 | +#mps.optimize_config.method = "2site" |
| 79 | +#energies, mps = optimize_mps(mps.copy(), mpo) |
| 80 | +#gs_e = min(energies) |
| 81 | +#logger.info(f"lowest energy: {gs_e}") |
81 | 82 |
|
82 | 83 | # algorithm 2: imaginary time propagation
|
83 | 84 | evolve_config = EvolveConfig(EvolveMethod.tdvp_ps,
|
84 |
| - adaptive=True, |
85 |
| - guess_dt=1e-3/1j, |
86 |
| - adaptive_rtol=5e-4, |
87 |
| - ivp_solver="RK45" |
| 85 | + #adaptive=True, |
| 86 | + #guess_dt=1e-3/1j, |
| 87 | + #adaptive_rtol=5e-4, |
| 88 | + #ivp_solver="RK45" |
88 | 89 | )
|
89 | 90 | mps.evolve_config = evolve_config
|
90 |
| -evolve_dt = 0.5/1j |
| 91 | +evolve_dt = 0.01/1j |
91 | 92 | energy_old = 0
|
92 | 93 | istep = 0
|
| 94 | +norm = 1 |
93 | 95 | while True:
|
94 |
| - mps = mps.evolve(mpo, evolve_dt) |
95 |
| - energy = mps.expectation(mpo) |
| 96 | + #energy = mps.expectation(mpo) / mps.mp_norm**2 |
| 97 | + #norm *= np.exp(-energy*0.01/2) |
| 98 | + mps = mps.evolve(mpo, evolve_dt, normalize=False) |
| 99 | + logger.info(f"norm: {mps.mp_norm}") |
| 100 | + energy = mps.expectation(mpo) / mps.mp_norm**2 |
| 101 | + norm *= np.exp(-energy*0.01) |
| 102 | + logger.info(f"norm: {norm}") |
96 | 103 | logger.info(f"current mps: {mps}")
|
97 | 104 | logger.info(f"istep={istep}, energy={energy}")
|
98 | 105 | if np.abs(energy-energy_old) < 1e-5:
|
|
0 commit comments