+2 votes
asked by (200 points)

I want to calculate a Hamiltonian that has an tight-binding term and a simple one magnet impurity local on one site. Therefore, the second term must be the interaction
between the impurity and the particles which has occupied on this site. So, the form is S*s.
"S" indicates the impurity spin and the "s" is the particle spin. Then,I follow the sample code and set sites=Hubbard(N), and I delete the U term in the "ampo" space and this is the first term. However, I don't know how to set the second term since the impurity spin is not belong to the "sites", actually
, I also don't know how do the particle spin term in this Hubbard sites with Itensor. So, Could anyone give me some helps?
Thank you very much!

1 Answer

+2 votes
answered by (52.6k points)

Hi, so would the following work for coupling the impurity site to the rest of your system, assuming the impurity site is site number 1?


(1) remove the "U" term acting on site 1 when defining the AutoMPO

(2) remove the "t" hopping term connecting site 1 to any other sites (such as site 2 for a 1D chain)

(3) include the S.S interaction using the following lines:

ampo += J,"Sz",1,"Sz",2;
ampo += J/2.,"S+",1,"S-",2;
ampo += J/2.,"S-",1,"S+",2;

(If you're wondering about what is the set of operators that are defined for the Hubbard site set the complete list is here: http://itensor.org/docs.cgi?page=classes/hubbard )

Then when making the initial state (using the InitState feature), make sure there is exactly one fermion on site 1 (not zero or two fermions). The spin of this fermion shouldn't matter except for determining the overall or total Sz quantum number of your many-body wavefunction (since the dmrg code preserves the total quantum number of whatever state you use as your initial state).

Trying this out on a toy system right now where I set J=1 and all of the other couplings to zero, I get a ground state energy of -0.75 as expected for the ground state of a two-spin Heisenberg model.

If I misunderstood your question or if that doesn't work please let me know.

Best regards,

commented by (200 points)
Thank you so much! I will try 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.