### Adding disorders and adding a site to 1D SSH chain

Posted:

**15 Mar 2020, 06:32**Hello, TeNPy community,

I want to simulate the following Boson-Hubbard Hamiltonian on a simple SSH chain:

\(H = \sum_i \left(t_1 b_i^\dagger a_i + t_2 a_{i+1}^\dagger b_i + H.c.\right) + \sum_i (U_1 a_i^\dagger a_i a_i^\dagger a_i + U_2 b_i^\dagger b_i b_i^\dagger b_i) + \sum_i (V_i a_i^\dagger a_i + Q_i b_i^\dagger b_i) \)

where each unit cell contains two Bosons \( a_i, b_i \), and \(V_i\) and \(Q_i\) are random onsite potentials. I have the following four questions to simulate this model in TeNPy:

(1) About the function "multi_sites_combine_charges":

I firstly set the site and lattice as follows
Could I ask whether the function "multi_sites_combine_charges" should be applied in the present model although two sites in the unit cell have the same kind of particles? If yes, could you please tell me how to set the second argument in the the function "multi_sites_combine_charges"?

(2) To add terms of the Hamiltonian, how I can use the function "add_onsite" to add disorders for \(V_i\) and \(Q_i\), respectively?

(3) How to set the onsite energy at a specific site of the chain, e.g., \(J *a_p^\dagger a_p\) at p site (0<p<L) using the function "add_onsite_term"?

(4) If I want the first site and last site of the chain to be the Boson \(a\) (i.e., to remove the last site \(b_L\)), how I can write the python script?

Thank you very much!

I want to simulate the following Boson-Hubbard Hamiltonian on a simple SSH chain:

\(H = \sum_i \left(t_1 b_i^\dagger a_i + t_2 a_{i+1}^\dagger b_i + H.c.\right) + \sum_i (U_1 a_i^\dagger a_i a_i^\dagger a_i + U_2 b_i^\dagger b_i b_i^\dagger b_i) + \sum_i (V_i a_i^\dagger a_i + Q_i b_i^\dagger b_i) \)

where each unit cell contains two Bosons \( a_i, b_i \), and \(V_i\) and \(Q_i\) are random onsite potentials. I have the following four questions to simulate this model in TeNPy:

(1) About the function "multi_sites_combine_charges":

I firstly set the site and lattice as follows

Code: Select all

```
boson_site1 = BosonSite(Nmax=n_max, conserve='N')
boson_site2 = BosonSite(Nmax=n_max, conserve='N')
multi_sites_combine_charges([boson_site1, boson_site2])
lat = Lattice([L], [boson_site1, boson_site2], bc=bc, bc_MPS=bc_MPS)
```

(2) To add terms of the Hamiltonian, how I can use the function "add_onsite" to add disorders for \(V_i\) and \(Q_i\), respectively?

(3) How to set the onsite energy at a specific site of the chain, e.g., \(J *a_p^\dagger a_p\) at p site (0<p<L) using the function "add_onsite_term"?

(4) If I want the first site and last site of the chain to be the Boson \(a\) (i.e., to remove the last site \(b_L\)), how I can write the python script?

Thank you very much!