Wolfram Language Paclet Repository

Community-contributed installable additions to the Wolfram Language

Primary Navigation

    • Cloud & Deployment
    • Core Language & Structure
    • Data Manipulation & Analysis
    • Engineering Data & Computation
    • External Interfaces & Connections
    • Financial Data & Computation
    • Geographic Data & Computation
    • Geometry
    • Graphs & Networks
    • Higher Mathematical Computation
    • Images
    • Knowledge Representation & Natural Language
    • Machine Learning
    • Notebook Documents & Presentation
    • Scientific and Medical Data & Computation
    • Social, Cultural & Linguistic Data
    • Strings & Text
    • Symbolic & Numeric Computation
    • System Operation & Setup
    • Time-Related Computation
    • User Interface Construction
    • Visualization & Graphics
    • Random Paclet
    • Alphabetical List
  • Using Paclets
    • Get Started
    • Download Definition Notebook
  • Learn More about Wolfram Language

QuantumPlaybook

Guides

  • QuantumPlaybook

Tech Notes

  • Addition of Numbers
  • Baker-Hausdorff Lemma
  • Chiral Fermion Random Circuit
  • Clifford Operators: How to Test
  • Commutation Relations for Qubits
  • Entanglement Distillation
  • Generalized Pauli Operators: Implementation
  • Hatano-Nelson-Kitaev Model: Monte Carlo Simulation
  • Hatano-Nelson Model: Monte Carlo Simulation
  • Kitaev Chain
  • Kitaev Random Circuit
  • Λ-Matter in a Cavity
  • Measurement of Total Pauli Z
  • Non-Unitary Dynamics of Quantum States
  • Partial Trace: Physical Meaning
  • Quantum Dot Systems
  • A Quantum Playbook
  • Magnetic Exchange Coupling
  • Solovay-Kitaev Algorithm
  • Spin Code
  • Symmetry Effects On Quantum Master Equations
  • Transmon: Quantum Phase Model
  • Transposition as a Supermap
  • Variational Quantum Classifier: Iris
  • Variational Quantum Classifier: Parity
  • Variational Quantum Eigensolver: Transverse-Field Ising Model

Symbols

  • BlochEnergy
  • BlochFunction
  • QuantumPlaybookCheckUpdate
  • QuantumPlaybookEdition
  • QuantumPlaybookUpdate
  • TransmonEnergy
  • TransmonExponent
  • TransmonFunction
  • TransmonHamiltonian
Quantum Dot Systems
Single Quantum Dot
Double Quantum Dot
Here, we consider a system of quantum dots that are described by the Hubbard model.
Q
Particle number operator
Hop
Hopping operator
FermionBasis
Fermion basis with certain features
Some useful functions when studying quantum dot systems.
First, make sure the package is loaded.
In[112]:=
Needs["QuantumMob`Q3`"]
Choose a symbol to denote the dot operators.
In[113]:=
Let[Fermion,d]
It is also convenient to explicitly set the energy parameters to be real.
In[114]:=
Let[Real,ϵ,t,U]
Single Quantum Dot

Single-particle (quadratic or non-interacting) part

Let us start from the single-particle (quadratic) part of the Hamiltonian. There are several equivalent ways:
The most obvious method is using the fermion operators:
In[115]:=
Dagger[d[Up]]**d[Up]
Out[115]=
†
d
↑
d
↑
The above has a short cut Q[...] as following:
In[6]:=
Q[d[Up]]
Out[6]=
†
d
↑
d
↑
You need to sum over all spin (up and down):
In[7]:=
Sum[Q[d[s]],{s,{Up,Down}}]
Out[7]=
†
d
↓
d
↓
+
†
d
↑
d
↑
The above can be even simpler as the following two (equivalent) examples:
In[8]:=
Q[d[{Up,Down}]]​​Q[d[All]]
Out[8]=
†
d
↓
d
↓
+
†
d
↑
d
↑
Out[9]=
†
d
↓
d
↓
+
†
d
↑
d
↑
So, the non-interacting part of the QD Hamiltonian is given by
In[116]:=
H0=ϵ*Q[d[All]]
Out[116]=
ϵ
†
d
↓
d
↓
+
†
d
↑
d
↑


On-site interaction

Now, let us turn to the interaction (quartic) part:
In[117]:=
Hint=UQ[d[Up]]**Q[d[Down]]
Out[117]=
U
†
d
↓
†
d
↑
d
↑
d
↓

Many-body eigenstates

Finally, the Hamiltonian for the quantum dot is given by
In[118]:=
HH=H0+Hint
Out[118]=
ϵ
†
d
↓
d
↓
+
†
d
↑
d
↑
+U
†
d
↓
†
d
↑
d
↑
d
↓
The above Hamiltonian may be described in graph as follows. Here, the vertex
U
with dashed lines denotes the interaction.
In[81]:=
GraphForm[HH]
Out[81]=
We need to construct a basis for the fermionic Fock space. Recall that the Hamiltonian conserves both the charge (
Q
) and spin (
S
). Therefore, it is a good idea to organize the basis accordingly. Here, note that the sector
{Q=1,S=1/2}
has only one state

1
d
↑

but not

1
d
↓

. This is to avoid redundancy because both gives the same matrix elements.
In[34]:=
bs=FermionBasis[d]
Out[34]=
{0,0}{|␣〉},1,
1
2

1
d
↑
,{2,0}-
1
d
↓
1
d
↑

Naturally, the Hamiltonian is block diagonal in this basis.
In[35]:=
big=MatrixIn[HH,bs,bs];​​big=Values@KeyGroupBy[big,First,Values];​​MatrixForm@Map[MatrixForm,big,{2}]
Out[37]//MatrixForm=
(
0
)
(
0
)
(
0
)
(
0
)
(
ϵ
)
(
0
)
(
0
)
(
0
)
(
U+2ϵ
)
It is thus efficient to work on each diagonal block separately.
In[38]:=
mat=MatrixIn[HH,bs];​​MatrixForm/@mat
Out[39]=
{0,0}(
0
),1,
1
2
(
ϵ
),{2,0}(
U+2ϵ
)
Double Quantum Dot
Let us now consider a double quantum dot (DQD). From the above example of single-orbital quantum dot, you now see that the following two statements are equivalent:
In[89]:=
Dagger[d[1,Up]]**d[1,Up]​​Q[d[1,Up]]
Out[89]=
†
d
1,↑
d
1,↑
Out[90]=
†
d
1,↑
d
1,↑
You should also be familiar with the following equivalent statements:
In[91]:=
Sum[Q[d[j,Up]],{j,1,2}]​​Q[d[{1,2},Up]]
Out[91]=
†
d
1,↑
d
1,↑
+
†
d
2,↑
d
2,↑
Out[92]=
†
d
1,↑
d
1,↑
+
†
d
2,↑
d
2,↑
What about the sum over spin? The following two statements are equivalent:
In[93]:=
Q[d[1,{Up,Down}]]​​Q[d[1,All]]
Out[93]=
†
d
1,↓
d
1,↓
+
†
d
1,↑
d
1,↑
Out[94]=
†
d
1,↓
d
1,↓
+
†
d
1,↑
d
1,↑
The single-particle part of the two isolated quantum dots is given by
In[95]:=
H0=ϵ*Q[d[{1,2},All]]
Out[95]=
ϵ
†
d
1,↓
d
1,↓
+
†
d
1,↑
d
1,↑
+
†
d
2,↓
d
2,↓
+
†
d
2,↑
d
2,↑

Now, let us turn to the hopping between the two quantum dots. Again one straightforward method is as following:
In[96]:=
Sum[d[1,s]^Dagger**d[2,s],{s,{Up,Down}}]
Out[96]=
†
d
1,↓
d
2,↓
+
†
d
1,↑
d
2,↑
The above has a short-cut as following:
In[97]:=
Hop[d[1,All],d[2,All]]​​Hop[{d[1,All],d[2,All]}]
Out[97]=
†
d
1,↓
d
2,↓
+
†
d
1,↓
d
2,↑
+
†
d
1,↑
d
2,↓
+
†
d
1,↑
d
2,↑
Out[98]=
†
d
1,↓
d
2,↓
+
†
d
1,↑
d
2,↑
Do not forget to make it Hermitian. (There is one important reason why Hop[...] or FockHopping[...] does not include the hopping terms for both directions.)
So, the hopping part is given by
Then, the overall single-particle part is given by

On-site interactions

Here is the onsite interaction terms.

Many-body eigenstates

Finally, the total Hamiltonian for the DQD is given by
Naturally, the Hamiltonian is block diagonal in this basis.
Therefore, it is efficient to consider each block separately.

© 2025 Wolfram. All rights reserved.

  • Legal & Privacy Policy
  • Contact Us
  • WolframAlpha.com
  • WolframCloud.com