How can I apply different spin space simultaneously for direct product in ITensors?

,

How can I apply different spin space simultaneously for direct product in ITensors?

I want to describe electrons living in different spin spaces, but I’m not sure how to construct the MPO and MPS.

Because the operators I want to use are as follows:

\hat{S_i^z}' \otimes \hat{S^z_i}

where \hat{S_i^z} = c^{\dagger}_i \sigma^z c_i and \hat{S_i^z}' = d^{\dagger}_i \sigma^z d_i

At i site, dimension of local Hilbert space is 4 \times 4 = 16.
(Now i’m considering quantum mechanical Kondo term)

In constructing MPO ,
os .+= J, “Sz”, s , “Sz”, s

Writing it this way doesn’t allow me to describe an MPO with a spin space dimension of 16. Because this represents \hat{S_i^z}' \hat{S^z_i}.

Moreover, I’m setting the sitetype to Electron when creating the MPS, but I’m not sure how to write both correctly.

Could you elaborate a bit more about your question? Are you wanting to make a Hilbert space where each of your sites is 16 dimensional, representing two different electron “species” on the same site (tensor index)?

If that’s the case, you can certainly do that but you will need to define a custom site type to do so. This is because the existing site types we offer only include regular single Electron sites (dimension 4) and we do not offer a 16-dimensional two-electron site type.

However, here is what I would recommend instead. Why do you need to work with 16 dimensional sites at all? You could instead just have two electron sites next to each other? Then you can use normal "Electron" sites provided by ITensor and then just have a rule like odd numbered sites are “c” electrons and even numbered sites are “d” electrons. Also it would likely make your calculations run faster because for technical reasons, high-dimensional sites can make MPS algorithms like DMRG run slower.

Hope that helps –

My goal is to perform DMRG calculations of the Kondo interaction, taking quantum fluctuations into account. Classically, the Kondo term is JSs. But I want to replace it by J*S (direct product) s. (Since the above text couldn’t be modified, I am reluctantly writing equation here. )

What I meant is that I want to create a double-copied spin-1/2 electron space to calculate interactions between different Hilbert spaces. It seems that, as you mentioned, I will need to define and create a new system, but it looks quite challenging.

One-third of the total sites can be described by a spin-1/2 electron system, but two-thirds of the total sites cannot be described by a spin-1/2 electron system. Because there is interaction between two electrons. The creation operator d^{\dagger}{i} lives in the other site from c^{\dagger}{i}. Maybe, this is resulting 4x4 dimension.

I am posting the question because this is my first time considering the interaction as a direct product of spin-1/2 electron systems. Thank you.

I write the interaction term in detail.

Classically, Kondo term is

J S \cdot s

where S = (0,0,\tau) and small s = c^{\dagger}_i \sigma^z c_{i} .
The large S is localized spin and \tau is site dependent magnetization (\pm1).
The small s represents itinerant electrons.

But I want to replace the scalar by operator (S=(S^x, S^y, S^z))
resulting

J S \otimes s

I think if you have three kinds of degrees of freedom (two kinds of electron sites and one kind of spin sites) then you can just represent this as a system with alternating types of sites. Generally there is no mathematical reason why not, it’s just that people working with pencil and paper can become accustomed to grouping things in certain familiar ways. But numerically often different approaches work better.

The only case that can genuinely get more complicated is if you are working with a Hilbert space that does not following a straightforward direct-product composition rule. An example of this would be Fibonacci anyons where for n such anyons the Hilbert space dimension does not grow as m^n for any integer m. But I don’t think you are talking about such “constrained” Hilbert spaces here correct?

Could you please write out the full Hamiltonian you are trying to simulate numerically?

Here, Hamiltonian is as follows.
I just consider Kondo coupling including quantum fluctuation.

\begin{align} H = &t_1 \sum_{\langle i, j \rangle, \, \sigma } { c^{\dagger}_{i,\sigma} c_{j, \sigma}} \\ -&J_{sd} \sum_{i, \, \sigma, \, \sigma'} {({S}_i^x, {S}_i^y, {S}_i^z) \cdot [c^{\dagger}_{i,\sigma} \, (\sigma_{\sigma, \sigma'}^x , \sigma_{\sigma, \sigma'}^y , \sigma_{\sigma, \sigma'}^z) \, c_{i, \sigma'}]} \\ +& J_{Ising} \sum_{\langle \langle i, j \rangle \rangle, \, \sigma} {S}_i^z {S}_j^z \end{align}

where J_{sd} terms is my question.

For orginal Kondo interaction, (S^x, S^y, S^z) is replaced by simple constant vector depending magnetic site. But I want to quantum flucuation. So I need to write it as spin operator.

Thank you!

Thanks. Here is one way you can input this Hamiltonian into our OpSum system.

Make a system where every odd site is a spin site and every even site is a spinful fermion (electron) site:

sites = [isodd(j) ? siteind("S=1/2") : siteind("Electron") for j=1:N]

Define your OpSum like this:

terms = OpSum()
for j=1:2:N-1
  # Heisenberg interaction between spin and electron sites
  terms += -Jsd,"Sz",j,"Sz",j+1
  terms += -Jsd,1/2,"S+",j,"S-",j+1
  terms += -Jsd,1/2,"S-",j,"S+",j+1
end
for j=1:2:N-2
  # Ising interaction between spin sites
  terms += Jising, "Sz",j,"Sz",j+1
end
for j=2:2:N-1
  # hopping between electron sites
  terms += t1, "Cdagup",j,"Cup",j+1
  terms += t1, "Cdagup",j+1,"Cup",j
  terms += t1, "Cdagdn",j,"Cdn",j+1
  terms += t1, "Cdagdn",j+1,"Cdn",j
end

I haven’t fully checked that this is correct, so please do some testing on small systems, but I hope this shows you the idea. Note that our system automatically understands how to make spin operators appropriately for electron sites, which is what is used when converting this OpSum to an MPO. (I.e. the S+ operator on those sites will have the same matrix elements as c^\dagger_{i\sigma} (\sigma^x_{\sigma,\sigma'} + i \sigma^y_{\sigma, \sigma'} ) c_{i \sigma'} and similar for S- and Sz.)

Sorry, I mistakenly wrote it as a dot product in the equation above when it should have been written as a tensor product.

What I meant is not the Heisenberg interaction term. It is the Kondo term considering quantum fluctuations.
For Sz,
J_{sd} \ \hat{S}^z_{i, \ impurity} \otimes S^z_{i, \ itinerant} \\

where \hat{S}^z_{i, \ impurity} is magnetic impurity including spin fluctuation. Classically, the impurity is treated by \pm1, where the sign depend on impurity magnetization direction, up or down.

What I want is for the itinerant electron to feel both spin up and spin down.

You should be able to input this term to OpSum by doing

terms = OpSum()
...
terms += Jsd, "Sz",i, "Sz",j

where i is the location of your impurity site and j is the location of your itinerant site.