# Simulation of Hamiltonian evolution of long-range interaction using MPS

**URL:** <https://itensor.discourse.group/t/simulation-of-hamiltonian-evolution-of-long-range-interaction-using-mps/368>\
**Category:** ITensor Julia Questions\
**Created:** [August 27, 2022, 2:28am UTC](https://itensor.discourse.group/t/simulation-of-hamiltonian-evolution-of-long-range-interaction-using-mps/368 "2022-08-27T02:28:01Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![XiaoTailong](https://yyz2.discourse-cdn.com/free1/user_avatar/itensor.discourse.group/xiaotailong/32/130_2.png) [@XiaoTailong](https://itensor.discourse.group/u/XiaoTailong)\
**Post date:** [August 27, 2022, 2:28am UTC](https://itensor.discourse.group/t/simulation-of-hamiltonian-evolution-of-long-range-interaction-using-mps/368/1 "2022-08-27T02:28:01Z")

</div>

I am wondering that if we can use time evolution in ITensor to simulate the long-range interactions.  
As far as I see, the tutorial considers the short range (nearst-neighbor) interactions. If I want to simulate the long range transverse Ising model written as

H = \sum\_{i\<j} J\_{ij}S^z\_i S^z\_j +\sum\_i h\_i S^x

Using Julia Itensor, how can implement the code?

---

<div class="post-metadata">

**Author:** ![miles](https://yyz2.discourse-cdn.com/free1/user_avatar/itensor.discourse.group/miles/32/6_2.png) [@miles](https://itensor.discourse.group/u/miles)\
**Post date:** [August 27, 2022, 3:11am UTC](https://itensor.discourse.group/t/simulation-of-hamiltonian-evolution-of-long-range-interaction-using-mps/368/2 "2022-08-27T03:11:24Z")

</div>

It’s a good question. The best way is using the time-dependent variational principle (TDVP) algorithm. You can find a Julia ITensor implementation of it here:  
[https://github.com/ITensor/ITensorTDVP.jl](https://github.com/ITensor/ITensorTDVP.jl)

Which is already available through the Julia package manager, just that we haven’t officially finalized the interface but it will probably change very little if at all. The code works quite well.

To see how to use it, please look at the examples in the examples/ folder and in the test/ folder and of course post on here if you have any questions.

The only part about TDVP that can be tricky is if you evolve from a state with a small bond dimension. Then extra techniques can sometimes be necessary to ensure the result is correct & we can talk about those if you think you will need them for your case (such as if your initial state is a product state).

---

<div class="post-metadata">

**Author:** ![XiaoTailong](https://yyz2.discourse-cdn.com/free1/user_avatar/itensor.discourse.group/xiaotailong/32/130_2.png) [@XiaoTailong](https://itensor.discourse.group/u/XiaoTailong)\
**Post date:** [August 27, 2022, 3:23am UTC](https://itensor.discourse.group/t/simulation-of-hamiltonian-evolution-of-long-range-interaction-using-mps/368/3 "2022-08-27T03:23:18Z")

</div>

Thanks for your quick response and I will try it. 😀
