0 votes
asked by (390 points)

Dear ITensor team,

apologises in advance for the quite trivial question : what is the easiest or/and fastest way to implement a spin Hamiltonian with autoMPO of the type
H = \sum_j c1 \vec{S}_j \dot \vec{S}_{j+1} + c2 [ \vec{S}_j \dot \vec{S}_{j+1} ]^2 + c_3 [ \vec{S}_j \dot \vec{S}_{j+1} ]^3 + ...
with $\vec{S}$ a spin S (for example spin 1) vector of operators ?

Thanks a lot for your time and the great service to the community!

1 Answer

0 votes
answered by (70.1k points)

Hi Jacopo,
Although it sounds tedious, the approach you'll need to take is to just expand the dot product into a sum of products of non-vector-operator terms. It should only make your AutoMPO input for loops a bit more complicated but AutoMPO will be able to handle this input well and give you an optimally compressed MPO.

Best regards,

commented by (650 points)
Hi, Jacopo.
Here's the biquadratic autompo
You need to use Sm and Sp instead of Sx and Sy to avoid error from autompo.
             ampo += K11/4.0,"Sp*Sp",j,"Sm*Sm",j+1;
         ampo += K11/4.0,"Sm*Sm",j,"Sp*Sp",j+1;
         ampo += K11/4.0,"Sp*Sm",j,"Sm*Sp",j+1;
         ampo += K11/4.0,"Sm*Sp",j,"Sp*Sm",j+1;
         ampo += K11/1.0,"Sz*Sz",j,"Sz*Sz",j+1;
         ampo += K11/2.0,"Sp*Sz",j,"Sm*Sz",j+1;
         ampo += K11/2.0,"Sm*Sz",j,"Sp*Sz",j+1;
         ampo += K11/2.0,"Sz*Sp",j,"Sz*Sm",j+1;
         ampo += K11/2.0,"Sz*Sm",j,"Sz*Sp",j+1;
For higher-quadratic terms, you can use mathematica to expand it.
Welcome to ITensor Support Q&A, where you can ask questions and receive answers from other members of the community.

Formatting Tips:
  • To format code, indent by four spaces
  • To format inline LaTeX, surround it by @@ on both sides
  • To format LaTeX on its own line, surround it by $$ above and below
  • For LaTeX, it may be necessary to backslash-escape underscore characters to obtain proper formatting. So for example writing \sum\_i to represent a sum over i.
If you cannot register due to firewall issues (e.g. you cannot see the capcha box) please email Miles Stoudenmire to ask for an account.

To report ITensor bugs, please use the issue tracker.