Skip to content

Harmonic Davidson approach #96

Answered by hczhai
wltr-tlrc asked this question in Q&A
Discussion options

You must be logged in to vote

Hi, thanks for your interest in using block2.

With Harmonic Davidson approach, you can target excited state which is close to a given energy (via the davidson_shift argument of driver.dmrg) instead of the $n$ th state. The following lines will allow you to do that:

ket = driver.get_random_mps(tag="KET", bond_dim=250, nroots=1)
bond_dims = [250] * 4 + [500] * 4
noises = [1e-5] * 4 + [1e-6] * 2 + [0]
thrds = [1e-12] * 8

energy = driver.dmrg(
    heis_mpo, ket, n_sweeps=8, bond_dims=bond_dims,
    noises=noises, thrds=thrds, cutoff=1E-24,
    dav_type="Harmonic|CloseTo", davidson_shift=-8.88, iprint=2,
)
print('Energy = [%s]' % " ".join("%20.15f" % x for x in [energy]))

Note that it is reco…

Replies: 2 comments 1 reply

Comment options

You must be logged in to vote
1 reply
@hczhai
Comment options

Answer selected by wltr-tlrc
Comment options

You must be logged in to vote
0 replies
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Category
Q&A
Labels
None yet
2 participants