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.

Is there a way to do this?

The following thread might tangentially related.

viewtopic.php?t=45

## Semi-infinite Ising chain with boundary

### Re: Semi-infinite Ising chain with boundary

That's an excellent question!

TeNPy supports

What we had in mind for those boundary conditions is the folling:

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

half-infinite boundary conditions on the left and right.

In addition, you actually want to

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

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.

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"