New release: v0.6.1.

Semi-infinite Ising chain with boundary

How do I use this algorithm? What does that parameter do?
Post Reply
frenzie92
Posts: 4
Joined: 14 Nov 2019, 16:07

Semi-infinite Ising chain with boundary

Post by frenzie92 »

I am interested in studying the semi-infinite Ising chain with an edge using dmrg. In particular I want to study the Hamiltonian

\(H=-J\sum_{\langle i,j \rangle} \sigma_i \sigma_j - \sum_j h_j \sigma_j,\)

where the external field \(h_j\) is there to impose an edge on the system. Obviously, this brakes translation invariance and hence iDMRG cannot be employed. However, it may (?) be possible to smoothly attach a semi-infinite chain with \(h_j = 0\), and from there turn on the external field.

The following figure might help visualize the situation.
iDMRG.jpg
iDMRG.jpg (71.3 KiB) Viewed 2506 times
Is there a way to do this? :shock:

The following thread might tangentially related.
viewtopic.php?t=45

User avatar
Johannes
Site Admin
Posts: 176
Joined: 21 Jul 2018, 12:52
Location: UC Berkeley

Re: Semi-infinite Ising chain with boundary

Post by Johannes »

That's an excellent question!

TeNPy supports 'segment' boundary conditions, which you can basically use to do that.
What we had in mind for those boundary conditions is the folling:
  • Run DMRG in an infinite system
  • Extract or "cut out" a subsystem with a finite length from it, giving you an MPS with 'segment' boundary conditions.
  • Perturb the state / tweak some hamiltonian parameters in that segment region, but keep the boundaries on the left and right the same.
  • Run DMRG again (or potentially some time evolution?) to study the effects of it.
Unfortunately, I haven't really implemented functions to "cut out" the segments from the infinite system.
The rerun of DMRG should work though (as there already is the option for the segment boundary conditions, which are just a slight generalization compared to finite boundary conditions.
The functions to "cut out" the segment shouldn't be too hard to write. That's your chance to contribute to TeNPy ;)
If you need me to outline what you should do, tell me.

In the example I had in mind with the 'segment' boundary conditions, I thought of keeping the
half-infinite boundary conditions on the left and right.
In addition, you actually want to change one side to the system (in your picture the right side) to trivial 'finite' boundary conditions, which means you actually need to project you MPS tensors. This might be a little bit tricky, but can be done as well.

So the answer is "Yes, this is possible, but you need to implement some parts yourself" 8-)

Post Reply