How to numerically diagonalize a Hamiltonian in a subspace?

Click For Summary

Discussion Overview

The discussion centers around the numerical diagonalization of a Hamiltonian for a system of spinless fermions on a lattice, specifically addressing the challenges faced when incorporating interactions and ensuring the correct particle number in the Hilbert space. The context includes theoretical exploration and technical reasoning related to quantum many-body systems.

Discussion Character

  • Technical explanation
  • Mathematical reasoning
  • Debate/contested

Main Points Raised

  • One participant describes a Hamiltonian for a system with 10 sites and 5 spinless fermions, expressing concern about the accuracy of results when interactions (V ≠ 0) are included.
  • Another participant emphasizes the importance of considering the number of particles in the system when diagonalizing the Hamiltonian, suggesting that the original approach does not conserve particle number.
  • A later reply proposes that the Hamiltonian is block diagonal with respect to particle number, indicating that it suffices to work within a subspace corresponding to a fixed number of particles.
  • One participant provides a specific example of how to construct the Hamiltonian matrix for a two-site case, illustrating that only certain blocks need to be diagonalized for a half-filled system.
  • Another participant calculates the size of the matrix that needs to be diagonalized for a specific case (5 particles on 10 sites), noting that it is significantly smaller than the full matrix size.

Areas of Agreement / Disagreement

Participants express differing views on the treatment of particle number conservation in the Hamiltonian. While some agree on the necessity of focusing on a specific subspace, others question the initial approach and its implications for the results obtained.

Contextual Notes

There are unresolved assumptions regarding the construction of the basis set and the implications of the Hamiltonian's form on the numerical diagonalization process. The discussion highlights the complexity of ensuring that the diagonalization respects the constraints of the physical system.

Who May Find This Useful

This discussion may be useful for researchers and students working in quantum mechanics, condensed matter physics, or computational physics, particularly those interested in numerical methods for many-body systems and the implications of particle number conservation in Hamiltonian formulations.

Luqman Saleem
Messages
17
Reaction score
3
I want to exactly diagonalize the following Hamiltonian for ##10## number of sites and ##5## number of spinless fermions
$$H = -t\sum_i^{L-1} \big[c_i^\dagger c_{i+1} - c_i c_{i+1}^\dagger\big] + V\sum_i^{L-1} n_i n_{i+1}$$
here ##L## is total number of sites, creation (##c^\dagger##) and annihilation (##c##) operators are defined as following
$$
c =
\begin{bmatrix}
0&0\\1&0
\end{bmatrix}
$$
and ##n_i = c_i^\dagger c_i## is number operator.

To exactly diagonalize (for simplicity let's take ##L=4## sites), one can expand ##H## as

$$H = -t\big[
c_1^\dagger \sigma_1^z \otimes c_2\otimes I_3 \otimes I_4 \\
+ I_1 \otimes c_2^\dagger \sigma_2^z \otimes c_3\otimes I_4\\
+ I_1 \otimes I_2 \otimes c_3^\dagger\sigma_3^z \otimes c_4
\big]+h.c.\\
+V\big[
n_1 \otimes n_2 \otimes I_3 \otimes I_4\\
+I_1 \otimes n_2 \otimes n_3 \otimes I_4\\
+I_1 \otimes I_2 \otimes n_3 \otimes n_4
\big]$$
where ##\sigma^z## (Pauli matrix) is just simple matrix multiplication for the sake of anti-commutation relation.

So far so good. (please correct me if I am doing anything wrong)!

**Question:**

I used the above method and numerically calculated the ground state and found that the above method gives the correct results for ##V=0## but when ##V\ne0## the results are wrong.

Eventually, I get to the point that I am not taking care of the number of particles in the system. How do we numerically diagonalize a Hamiltonian matrix in the subsector of Hilbert space with a chosen number of particles?

**Note:**

I want to use this diagonalization in DMRG algorithm (in finding the ground state energy of the Hamiltonian at half-filling)
 
Physics news on Phys.org
Luqman Saleem said:
I want to exactly diagonalize the following Hamiltonian for ##10## number of sites and ##5## number of spinless fermions
$$H = -t\sum_i^{L-1} \big[c_i^\dagger c_{i+1} - c_i c_{i+1}^\dagger\big] + V\sum_i^{L-1} n_i n_{i+1}$$
here ##L## is total number of sites, creation (##c^\dagger##) and annihilation (##c##) operators are defined as following
$$
c =
\begin{bmatrix}
0&0\\1&0
\end{bmatrix}
$$
and ##n_i = c_i^\dagger c_i## is number operator.

To exactly diagonalize (for simplicity let's take ##L=4## sites), one can expand ##H## as

$$H = -t\big[
c_1^\dagger \sigma_1^z \otimes c_2\otimes I_3 \otimes I_4 \\
+ I_1 \otimes c_2^\dagger \sigma_2^z \otimes c_3\otimes I_4\\
+ I_1 \otimes I_2 \otimes c_3^\dagger\sigma_3^z \otimes c_4
\big]+h.c.\\
+V\big[
n_1 \otimes n_2 \otimes I_3 \otimes I_4\\
+I_1 \otimes n_2 \otimes n_3 \otimes I_4\\
+I_1 \otimes I_2 \otimes n_3 \otimes n_4
\big]$$
where ##\sigma^z## (Pauli matrix) is just simple matrix multiplication for the sake of anti-commutation relation.

So far so good. (please correct me if I am doing anything wrong)!

**Question:**

I used the above method and numerically calculated the ground state and found that the above method gives the correct results for ##V=0## but when ##V\ne0## the results are wrong.

Eventually, I get to the point that I am not taking care of the number of particles in the system. How do we numerically diagonalize a Hamiltonian matrix in the subsector of Hilbert space with a chosen number of particles?

**Note:**

I want to use this diagonalization in DMRG algorithm (in finding the ground state energy of the Hamiltonian at half-filling)

How do you know what the right answers are? Are you working from a reference article?
 
atyy said:
How do you know what the right answers are? Are you working from a reference article?

Yes. I am comparing my results with https://arxiv.org/abs/1809.05199.
 
  • Like
Likes   Reactions: atyy
atyy said:
How do you know what the right answers are? Are you working from a reference article?

Actually, the following reason has forced me to think that I am doing it wrong:

In the above formalism (that I have mentioned), the basis set is also tensor multiplied. The degree of freedom per site is 2 i.e. occupied (1) or empty (0). For 2 sites, basis set will be:
$$
\begin{bmatrix}
1\\0
\end{bmatrix}
\otimes
\begin{bmatrix}
1\\0
\end{bmatrix} =
\begin{bmatrix}
11\\10\\01\\00
\end{bmatrix}
$$
and for 4 sites, basis will be:
$$
\begin{bmatrix}
11\\10\\01\\00
\end{bmatrix}
\otimes
\begin{bmatrix}
11\\10\\01\\00
\end{bmatrix}
=
\begin{bmatrix}
1111&1110&1101&1100&1011&1010&1001&1000&0111&0110&0101&0100&0011&0010&0001&0000
\end{bmatrix}
$$

As, it can be seen that if we construct full Hamiltonian (for 4 sites) using the above method, we will be dealing with total 16 bases. And the number of particles is not conserved i.e. in the first basis (1111) all sites are filled while the last basis (0000) is fully empty. I want to calculate groundstate only for the half-filled system.
 
  • Like
Likes   Reactions: atyy
Luqman Saleem said:
Actually, the following reason has forced me to think that I am doing it wrong:

In the above formalism (that I have mentioned), the basis set is also tensor multiplied. The degree of freedom per site is 2 i.e. occupied (1) or empty (0). For 2 sites, basis set will be:

...

and for 4 sites, basis will be:

...

As, it can be seen that if we construct full Hamiltonian (for 4 sites) using the above method, we will be dealing with total 16 bases. And the number of particles is not conserved i.e. in the first basis (1111) all sites are filled while the last basis (0000) is fully empty. I want to calculate groundstate only for the half-filled system.

I think that your approach in this post is the right idea. But I don't know why you say that the number of particles is not conserved - your original Hamiltonian does conserve particle number ##N = \sum_i c^{\dagger}_i c_i##. What this means is that your Hamiltonian is block diagonal, where the blocks are the spaces of constant values of ##N##.

What this means is that it suffices to work in a subspace of these bases you've mentioned. For the two-site case, if you write the Hamiltonian matrix in the basis
$$
\begin{bmatrix}
11\\10\\01\\00
\end{bmatrix}
$$
Then the Hamiltonian must take the form
$$
H =
\begin{bmatrix}
h_{11} & 0 & 0 & 0 \\
0 & h_{22} & h_{23} & 0 \\
0 & h_{23}^{\ast} & h_{33} & 0 \\
0 & 0 & 0 & h_{44}
\end{bmatrix}
$$
Now if you are only interested in the half-filled (##N=1##) subspace, you only need to diagonalize the 2x2 block in the middle of this thing. (Be sure you understand why this is the case!)

Extrapolating this idea to larger system sizes, you just need to find the matrix elements of ##H## in the ##N=L/2## sector and diagonalize that. Just ignore the other states. In your four-site example, you only need to diagonalize the 6x6 matrix ##H_{ij} = v^{\dagger}Hv## where
$$
v = \begin{bmatrix}
1100 \\
1010 \\
1001 \\
0110 \\
0101 \\
0011
\end{bmatrix}
$$
This makes the process much faster for small system sizes, though unfortunately the size of the ##N=L/2## subspace still grows exponentially in ##L## as ##L## gets large. If my quick calculation is correct, the case of 5 particles on 10 sites reduces to diagonalizing a 252x252 matrix (much easier than attempting the full 1024x1024 matrix for arbitrary number of particles).
 
  • Like
Likes   Reactions: aaroman

Similar threads

  • · Replies 0 ·
Replies
0
Views
1K
  • · Replies 1 ·
Replies
1
Views
2K
Replies
3
Views
3K
  • · Replies 3 ·
Replies
3
Views
2K
Replies
1
Views
2K
  • · Replies 1 ·
Replies
1
Views
3K
  • · Replies 6 ·
Replies
6
Views
4K
  • · Replies 3 ·
Replies
3
Views
2K
  • · Replies 4 ·
Replies
4
Views
5K