+1 vote
asked by (280 points)

Hi,
I am trying to do some calculation using 2D dmrg code in Itensor.
2D dmrg code in ITENSOR includes nearest neighbor spin interactions.
e.g;
for(auto bnd : lattice)
{
ampo += 0.5,"S+",bnd.s1,"S-",bnd.s2;
ampo += 0.5,"S-",bnd.s1,"S+",bnd.s2;
ampo += "Sz",bnd.s1,"Sz",bnd.s2;
}

Is there any way so that next nearest neighbor spin interaction can be included in 2D dmrg code for square lattice or triangular lattice?
Thanks,
Ajit

1 Answer

+2 votes
answered by (70.1k points)

Hi Ajit,
You are in luck. We do have a function already for making the square lattice with next-neighbor bonds but it just wasn't well documented. Following your question, I just added it to the documentation here:
http://itensor.org/docs.cgi?vers=cppv3&page=classes/lattice_functions

We don't have a function for next-neighbor on the triangular lattice however. The codes for all of these lattice functions is meant to be straightforward with the hope that users would contribute additional ones we are missing. If you would consider contributing the triangular next-neighbor case that would be great if you have time.

The codes for these functions can be found in the files:
itensor/mps/lattice/square.h
itensor/mps/lattice/triangular.h

Best regards,
Miles

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.

Categories

...