Varying Lattice Spacing

How do I use this algorithm? What does that parameter do?
Post Reply
quarkonia
Posts: 10
Joined: 27 Jul 2022, 15:51

Varying Lattice Spacing

Post by quarkonia »

Basically what I am trying to do is that I want to have a dimerized lattice (having a 1D lattice with alternating lattice spacing, (say a,2a,a,2a ...). I can achieve this by modifying the coupling between sites by using a unit cell with two sites. However, I would like to also have a long-range interaction. I do not know how I can achieve this by using the add_exponentially_decaying_coupling() method. I naively thought that the to_TermList() method feeds the necessary information to form the MPO and sort of modified some part of it to have the appropriate distances between operators. Then I realized this is not the case, the MPO is formed by grids I suppose, and the distances are taken care of internally during the formation of the MPO itself. I can actually manually achieve what I want using add_coupling_term() for each term with appropriate couplings but I think this is not the most optimal way to deal with this.
User avatar
Johannes
Site Admin
Posts: 413
Joined: 21 Jul 2018, 12:52
Location: TU Munich

Re: Varying Lattice Spacing

Post by Johannes »

If the "long range" coupling has a finite range, i.e. you put a cutoff of say 5 sites or so, and don't include any coupling afterwards, you can indeed just call add_exponentially_decaying_coupling a bunch of times with corresponding distances.

If you want a "true" long range coupling approximated by a few exponentially decaying couplings, you can call add_exponentially_decaying_coupling.
There's a small example for how to do this in the doc string.
However, at this point it's not quite powerfull enough to fit decays with varying strength depending on where you start, i.e. having a non-trivial unit cell.
We need a slight generalization, I've created a github Issue #176 for it.
quarkonia
Posts: 10
Joined: 27 Jul 2022, 15:51

Re: Varying Lattice Spacing

Post by quarkonia »

Thank you, for the time being, I indeed call the add_exponentially_decaying_coupling() several times
Post Reply