Hello,

I want to compare a finite system that has a surface with it's 'bulk-counterpart'. Using first DMRG calculations and then time-evolving methods I calculated the excitation spectrum. The size of the finite system was large enough, and it worked out well. However, now I want to compare it to the periodic system. So I changed my lattice in the model like this:

bc = 'periodic'

lat = Ladder(L, [site1, site2], bc=bc, bc_MPS=model_params['bc_MPS'])

where model_params['bc_MPS'] = 'finite'. The results look wrong and it doesn't seem as if translational symmetry is preserved. I tried to make sure whether I included all the bonds in the model, but since it's one-dimensional, there shouldn't be a problem.

Is there maybe something that I have to change in the time-evolving algorithm? (I used 'WII').

Thank you very much in advance!

## Periodic versus Open Boundary Conditions

### Re: Periodic versus Open Boundary Conditions

I'm not too surprised that W_II fails for this.

Intuitively, the W_I/W_II methods from the ExpMPOEvolution approximates \(e^{-iH dt}\) by taking into account non-overlapping terms of H; it is not designed for a long-range coupling going accross the whole system (which you get by using periodic BC for a finite MPS).

There's two possible ways around this:

Intuitively, the W_I/W_II methods from the ExpMPOEvolution approximates \(e^{-iH dt}\) by taking into account non-overlapping terms of H; it is not designed for a long-range coupling going accross the whole system (which you get by using periodic BC for a finite MPS).

There's two possible ways around this:

- Change the order of the MSP sites to "folded" such that you get somewhat uniform next-nearest neighbor couplings, but no long-range coupling any more; see this thread.

I'd recommend trying this; just make sure you understand the implications of the order paramter for measuring expectation values/correlations in the MPS. - Try another time evolution method like TDVP. However, TDVP is also not guaranteed to work for long-range couplings - it projects into the tangent space, which is also a severe restriction for evolving long-range Hamiltonians; and one can easily construct examples where this projections causes it to fail on capturing the correct long-range evolution.

### Re: Periodic versus Open Boundary Conditions

Dear Johannes,

Sorry, I had put this problem aside for a while. Anyway, thank you very much for your answer.

The 'folded' order is not yet implemented for the ladder system, right? Can I implement a custom order myself in the model that I built?

Best,

Niclas

Sorry, I had put this problem aside for a while. Anyway, thank you very much for your answer.

The 'folded' order is not yet implemented for the ladder system, right? Can I implement a custom order myself in the model that I built?

Best,

Niclas

### Re: Periodic versus Open Boundary Conditions

Thank you very much for the quick update! I managed to reproduce the results with open boundary conditions for the 'folded' ladder, by reordering the expectations value.

Next step is to try it out with the periodic boundary conditions. In the post you refer to you you write that you should set [tenpy]bc_x = 'periodic'[/tenpy], which is an option of the CouplingMPOModel, if I see correctly.

Do I have to set this bc_x? I just initialized the ladder like this:

Is this sufficient to emulate a periodic system?

Next step is to try it out with the periodic boundary conditions. In the post you refer to you you write that you should set [tenpy]bc_x = 'periodic'[/tenpy], which is an option of the CouplingMPOModel, if I see correctly.

Do I have to set this bc_x? I just initialized the ladder like this:

Code: Select all

`lat = Ladder(L, [site1, site2], bc='periodic', bc_MPS='finite', order='folded'`

### Re: Periodic versus Open Boundary Conditions

For two dimensional systems, there can be separate boundary conditions in x and y, hence the bc_x and bc_y, which really are just the two values for the

So yes, for a 1D lattice, just putting

`bc=[bc_x, bc_y]`

of the lattice.So yes, for a 1D lattice, just putting

`bc='periodic'`

is the correct thing to get periodic boundary conditions.