Download Document

Survey
yes no Was this document useful for you?
   Thank you for your participation!

* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project

Document related concepts

EPR paradox wikipedia , lookup

Interpretations of quantum mechanics wikipedia , lookup

Particle in a box wikipedia , lookup

Quantum entanglement wikipedia , lookup

Quantum decoherence wikipedia , lookup

Quantum machine learning wikipedia , lookup

Hydrogen atom wikipedia , lookup

Bra–ket notation wikipedia , lookup

History of quantum field theory wikipedia , lookup

Perturbation theory (quantum mechanics) wikipedia , lookup

Quantum teleportation wikipedia , lookup

Scalar field theory wikipedia , lookup

Tight binding wikipedia , lookup

Hidden variable theory wikipedia , lookup

Quantum key distribution wikipedia , lookup

Quantum group wikipedia , lookup

Quantum state wikipedia , lookup

Molecular Hamiltonian wikipedia , lookup

Canonical quantization wikipedia , lookup

Symmetry in quantum mechanics wikipedia , lookup

T-symmetry wikipedia , lookup

Transcript
ALGORITHMIC PERSPECTIVE
ON STRONGLY CORRELATED
SYSTEMS
(i.e. computational condensed matter)
Lecture: Exact Diagonalization
Fall 2015
Professor: Bryan Clark
Exact Diagonalization
Microscopic H
Emergent Degrees of Freedom
Computation
H
Exact Diagonalization
O(2n)
Choose a basis
All binary numbers
Sz or second quantized states
Conserve Quantum Numbers
Build the matrix
Dense
Need to compute
matrix elements
Sparsely
on the fly…
Diagonalize
Lapack!
Iterative Techniques (for just the ground state)
Power Method
Need fast matrix-vector
Lanczos
multiplication
Measure
Tower of states
Entanglement
The limits of exact diagonalization
Choosing a basis: all binary numbers
H=
ij
Q: How many non-zeros per row?
0000
0001
0010
0011
0100
0101
0110
0111
1000
1001
1010
1011
1100
1101
1110
1111
X
si · sj
0000 0010 0010 0011 0100 0101 0110 0111 1000 1001 1100 1101 1110 1111
#
#
#
#
#
#
#
#
#
#
#
Note: fill this matrix intelligently
Choosing a basis: simple quantum numbers (Sz sector)
For example: Sz=0
0000
0001
0010
0011
0100
0101
0110
0111
1000
1001
1010
1011
1100
1101
1110
1111
0000 0010 0010 0011 0100 0101 0110 0111 1000 1001 1100 1101 1110 1111
#
#
#
#
#
#
#
#
#
#
#
Choosing a basis: simple quantum numbers (Sz sector)
Diagonalize smaller blocks
Diagonalize O(N3)
Can be ~ factor of 1000
Sz=-2
Sz=-1
Sz=0
Sz=1
Now call Lapack (in Julia: eig( ) )
An explicit example
H=
X
hi,ji
s~i · s~j
(s1 · s2 )| ", #, "i = ↵| ", #, "i + | #, ", "i
H| ", #, ", #i = (s~1 · s~2 + s~2 · s~3 + s~3 · s~4 + s~4 · s~1 )| ", #, ", #, "i
↵| ", #, ", #i + | #, ", ", #, i + | ", ", #, #i + | ", #, #, "i + | #, #, ", "i
0011 0101 0110 1001 1010 1100
0011
0101
0110
1001
1010
1100
0
↵
We have now discussed the plain vanilla diagonalization. There are two ways in
which you might want to go beyond this.
1. Iterative Techniques (just the ground state but for much larger systems)
2. More quantum numbers
Iteration
Input: fast matrix-vector multiplication
output: the lowest few ground-state eigenvectors and eigenvalues
Start with
T
Filter out the ground state.
Many choices:
1. power method
2. lanczos
3. jacobi-davidson
Iteration
Input: fast matrix-vector multiplication
output: the lowest few ground-state eigenvectors and eigenvalues
Start with
T
Filter out the ground state.
Many choices:
1. power method
2. lanczos
3. jacobi-davidson
Power method
| i = ↵0 | 0 i + ↵1 |
X
| i=
↵i | i i
i
exp[
H]| i =
lim exp[
!1
X
e
⇤
⌧H
/⌧
+ ....
↵i exp[
H]| i = ↵0 exp[
⇡ [1
Ei ]|
i
But we don’t have access to exp[
⇥
1i
H]
⌧ H]
/⌧
Need to store one vector in RAM.
Need to do matrix-vector multiplication quickly.
E0 ]|
ii
0i
⇥
⌧H
Power method e
What sets
⇤
/⌧
⇡ [1
/⌧
⌧
?
[exp[
1i
H]|
= exp[
E] ⌧ 1
exp[
E
What sets
⌧<
⌧ H]
⌧
?
2
Emax
Emin
E1 ]|
] [exp[
1i ⌧
H]|
0i
= exp[
E0 ]|
]
0i
Iteration
Input: fast matrix-vector multiplication
output: the lowest few ground-state eigenvectors and eigenvalues
Start with
T
Filter out the ground state.
Many choices:
1. power method
2. lanczos
3. jacobi-davidson
Multiplying fast
=
(Sparse[H])v = ṽ
n2 2n non-zeros (buzz-phrase: CSC)
might be hard to fit into ram
Slower but more memory efficient to build it on the fly…
hj|M |vi =
X
i
hj|H|iihi|vi
Given an element i, find the elements j such that <j|H|i> is not zero.
Algorithm for multiplying fast
hj|M |vi =
X
i
hj|H|iihi|vi
Given an element i, find the elements j such that <j|H|i> is not zero.
Algorithm:
Loop over i
6 0
Produce a list of all (j, hj|H|ii) such that hj|H|ii =
Sum the term hj|H|iihi|vi onto v[j]
the hard part: where in your vector is v[j]?
Repeat
A variety of bit-twiddling trick can speed this up.
Where is v[j]
One possibility: Just list the basis elements and do a binary search at each step.
or use a hash-table
largely slow because you are jumping all around in memory
A better choice: have a fast way to find out what location you’re at.
not always possible…consider first with Sz quantum numbers
lin tables
lin tables
0000
0001
0010
0011
0100
0101
0110
0111
1000
1001
1010
1011
1100
1101
1110
1111
00
0
1
2
3
4
00
01
10
11
0
01
00
01
10
11
1
2
10
00
01
10
11
3
4
11
00
01
10
11
5
5
lin tables
0000
0001
0010
0011
0100
0101
0110
0111
1000
1001
1010
1011
1100
1101
1110
1111
00
0 +
0
1
2
3
4
01
10
1 +
3 +
5
11
5 +
00
01
10
11
0
00
01
10
11
0
1
00
01
10
11
0
1
00
01
10
11
0
lin tables
0000
0001
0010
0011
0100
0101
0110
0111
1000
1001
1010
1011
1100
1101
1110
1111
00
0 +
00
01
10
11
0
0
1
0
1 +
00
01
10
11
0
0
1
0
00
01
10
11
0
0
1
0
00
01
10
11
0
0
1
1
0
1
2
3
4
01
10
3 +
5
11
5 +
lin tables
00
0+
00
0
01
1+
01
0
10
3+
10
1
11
5+
11
0
Iteration
Input: fast matrix-vector multiplication
output: the lowest few ground-state eigenvectors and eigenvalues
Start with
T
Filter out the ground state.
Many choices:
1. power method
2. lanczos
3. jacobi-davidson
A quick aside
The variational principle
E[ (r1 , r2 , ...rn )]
E[
h
0 (r1 , r2 , ...rn )]
T |H|
Ti
E0
= E0
= (↵0 h
0|
+ ↵1 h
1 |) H
(↵0 |
0i
+ ↵1 |
1 i)
Macdonald’s Theorem: If you have k orthogonal states then each one is an upper bound
to the true k’th excited state.
Consider the state | i = (1 ⌧ H)n |
n
X
=
f (i)H i |
i=1
Ti
Ti
Its energy is greater then the true ground state for any n.
Its energy is greater then the true ground state.
Q: Can we do better?
Consider the state | i = (1 ⌧ H)n |
n
X
=
f (i)H i |
i=1
Ti
Ti
Its energy is greater then the true ground state for any n.
Its energy is greater then the true ground state.
Q: Can we do better?
Yes! Instead of using these value of f(i), why don’t we choose the variationally best possible f(i)?
How should we do this?
Build the following (non-orthogonal) basis: {|
T i, H|
2
i,
H
|
T
T i, ...}
Diagonalize in that basis.
Notice:
After 2n, steps we converge everything exactly; but useless because we have to
diagonalize the whole matrix in a different basis.
After n, steps we have an answer better then the power method.
In practice, converges very quickly to low eigenvalues.
Some important details about Lanczos:
1. Lanczos gives you many states.
2. Please don’t write your own lanczos for professional work.
3. Mathematically, you don’t actually have to orthogonalize against all the
former states explicitly to nonetheless get orthogonalization against all the
former states. You need to only orthogonalized against the most recent ones.
4. In practice if you do this, you will still have numerical issues. In particular, as
lanczos converges to the true eigenstates, ghost values begin showing up. This can
be dealt with by partially orthogonalized en route.
We have now discussed the plain vanilla diagonalization. There are two ways in
which you might want to go beyond this.
1. Iterative Techniques (just the ground state but for much larger systems)
2. More quantum numbers
Without more quantum numbers, this will get
you up to about N=32
Additional Symmetries: Translation, etc.
Additional Quantum Numbers: momentum, etc.
We’ve seen how to use Sz quantum numbers by essentially re-ordering rows and columns.
To use translation (and point group) symmetries, we will need to change the basis elements.
1. what basis?
2. how to get hamiltonian matrix elements?
Consider translation on the ring.
The states we want are not
|1000i or |0100i but
instead
Q: Why?
|0001i + ei⇡/2 |0100i + ei⇡ |0010i + ei3⇡/2 |1000i
|0]
001i
(sloppy with normalization)
Suppose we can pick basis elements which are eigenstates of K̂ (bloch states) which
commute with the Hamiltonian.
[K̂, Ĥ] = 0
e + |Bi]
e
HK|0]
001i = Hei✓ |0]
001i = ei✓ H|0]
001i = ei✓ [|Ai
e + |Bi]
e = ei✓A |Ai
e + ei✓B |Bi
e
KH|0]
001i = K[|Ai
A and B are in the same quantum number sector,
1. what basis?
The symmetry group is {T, T2, T3, T4 }
I am a group.
Quantum number is k 2 {0, ⇡/2, ⇡, 3⇡/2}
Start with a state.
Apply all the symmetry operations.
ikx
e
2ikx
2
e
T |0001i = |0100i
3ikx
T 3 |0001i = |1000i e
T |0001i = |0010i
Notation:
(T )
The Hamiltonian doesn’t
connect basis elements
between different quantum
numbers.
T 4 |0001i = |0001i
This is the new basis element in the k sector. We’ve replaced [1000], [0100], [0010], [0001]
with one element in that sector.
|0]
001i = |0001i + ei⇡/2 |0100i + ei⇡ |0010i + ei3⇡/2 |1000i
Represent this state compactly in our computer by [0001]
(generally the smallest bit string)
2. how to get hamiltonian matrix elements?
6 0
Need to produce a list of all (j̃, hj̃|H|ĩi) such that hj̃|H|ĩi =
Less sloppy normalization: |j̃i =
N
1
p
X
|G| g2G
(g)|g(r)i
N=
s
X
(g)
g2G,g(r)=r
sometimes symmetry operations bring you back to yourself.
Matrix Elements
Break H into pieces H =
X
h↵ such that
h↵ acting on a representative r generates only one basis element s.
↵
Then
Nj
e
e
hj|h↵ |ii =
(g ⇤ )h↵ (i)
Ni
Prescription
Loop over i (in a Sz basis)
Loop over alpha (in a Sz basis)
Generate j using h↵ |ii
Nj
Add ( |eji, he
j|h↵ |eii =
(g ⇤ )h↵ (i) ) to list
Ni
ji
Given j what’s |e
What is the g* which connects j to
Where is
|e
ji
|e
ji which we need for fast matrixvector multiplication
on the fly, lookup table?
Parallelization
=
Anderson Tower of States
Q: In the thermodynamic limit what does the ground state look like for a solid?
Am I the ground state?
Anderson Tower of States
Q: In the thermodynamic limit what does the ground state look like for a solid?
Am I the ground state?
What about these?
Anderson Tower of States
Q: In the thermodynamic limit what does the ground state look like for a solid?
Am I the ground state?
What about these?
Spontaneous symmetry
breaking
Anderson Tower of States
Q: In a finite system what does the ground state look like for a solid?
Am I the ground state?
Anderson Tower of States
Q: In a finite system what does the ground state look like for a solid?
Am I the ground state?
What about these?
Anderson Tower of States
Q: In a finite system what does the ground state look like for a solid?
Am I the ground state?
+
+
+
Finite size systems can’t break symmetries. This is the ED ground state.
Q: What about the spontaneous symmetry breaking?
Q: Where are the other states?
+ ….
Q: Where are the other states?
First, let’s consider why the finite-size ground state has lower energy
then the true ground state.
….
Q: Where are the other states?
First, let’s consider why the finite-size ground state has lower energy
then the symmetry-broken ground state.
2
P̂cm
The true Hamiltonian can be written out as H = Hrelative +
2M
All symmetry broken states (and the linear superposition) have the same
energy with respect to the relative part of the Hamiltonian.
The linear superposition gains energy from the kinetic piece which the
symmetry-broken states don’t have (zero point motion)
The linear superposition gains energy from the kinetic piece which the
symmetry-broken states don’t have.
Q: Where are the other states?
Now, let’s consider what the finite-size excited states are?
Q: Where are the other states?
Now, let’s consider what the finite-size excited states are?
2
P̂cm
The true Hamiltonian can be written out as H = Hrelative +
2M
The excited states are states with a finite center of mass momentum. As N goes to
infinity, M goes to infinity and the states become degenerate.
~2 k 2
E(k) =
+ Erel
2mN
E
1
N
k2
Q: What about the spontaneous symmetry breaking?
We can rotate the states that become degenerate in the
thermodynamic limit to produce the symmetry broken states.
E
1
N
Q: What are the real thermodynamic excitations?
k2
Q: What about the spontaneous symmetry breaking?
We can rotate the states that become degenerate in the
thermodynamic limit to produce the symmetry broken states.
E
1
N
Q: What are the real thermodynamic excitations?
k2
Phonons!
These excitation scale as 1/L
1-d: 1/N
2-d: 1/sqrt(N)
in the mix with the thermodynamic excitations
This is why there are no solids in 1D.
The essence of Mermin-Wagner
One more thing…
For this story to make sense, there better be the same number of
spontaneously broken states as states which become degenerate in
the thermodynamic limit.
You will check this in your homework.
A note about fermions….
Spins (up to Jordan-Wigner strings)
†
c3 c7 |bi
Observables
Order parameters
Q: What do I do about spontaneous symmetry breaking?
Q: What do I do about finite size effects
Identifying Transitions
Fidelity: h (p)| (p +
Derivatives of Energy:
)i
@hEi/@p
Entanglement….
S(⇢) = T r[⇢ log ⇢]
S(⇢) = T r[⇢2 ]
0
⇢A (Ra , Ra )
=
0
T rB ⇢(Ra Rb ; Ra Rb )
0
⇢(Ra , Rb ; Ra , Rb )
=
(Ra Rb )
⇤
0
(Ra , Rb )
Shift and Invert
Apply the power method using (H
E)
1