Verified Commit 8f6134b1 authored by Anton Akhmerov's avatar Anton Akhmerov
Browse files

filter all cell inputs (closes #234)

parent 4a9b2fa4
Pipeline #81761 passed with stages
in 46 minutes and 35 seconds
......@@ -27,7 +27,7 @@ sphinx:
- - https://unpkg.com/@holoviz/panel@0.10.2/dist/panel.min.js
- crossorigin: anonymous
local_extensions:
expand_refs: ./expand_refs/
extensions: ./sphinxext/
extra_extensions:
- sphinxext.opengraph
launch_buttons:
......
......@@ -7,6 +7,8 @@ from jinja2 import Template
from publist.publist import update as update_publist
from ruamel.yaml import YAML
import sphinx
import myst_nb
PREPRINT_REGEX = r"arXiv:(.+?[/\.]\d+)"
FULL_TEMPLATE = Template(
......@@ -67,8 +69,17 @@ def replace_refs(app, docname, source):
source[0] = re.sub(r"(### |\* |[^#*] )" + PREPRINT_REGEX, replace, source[0])
class RemoveAllInputs(sphinx.transforms.Transform):
default_priority = 210
def apply(self):
for node in self.document.traverse(myst_nb.nodes.CellInputNode):
node.parent.remove(node)
def setup(app):
app.connect("source-read", replace_refs)
app.add_transform(RemoveAllInputs)
return {
'version': '0.0.1',
......
......@@ -33,7 +33,6 @@ pi_ticks = [(-np.pi, r"$-\pi$"), (0, "$0$"), (np.pi, r"$\pi$")]
Ashvin Vishwanath from the University of California, Berkeley will introduce Weyl semimetals and other examples of gapless, yet topological, systems.
```{code-cell} ipython3
:tags: [remove-input]
Video("MAWwa4r1qIc")
```
......@@ -78,7 +77,6 @@ where $t_1, t_2, t_3$ are the three hoppings connecting a site in one of the two
To consider something specific, let's take $t_2 = t_3 = t$ and vary $t_1$. This is what the band structure and $\det h$ look like:
```{code-cell} ipython3
:tags: [remove-input]
%%output size=150 fig='png'
......@@ -200,7 +198,6 @@ This means that a Dirac point at momentum $k$ and positive winding must come tog
The $d$-wave superconductor Hamiltonian gives just that: there are 4 Dirac points at $|k_x| = |k_y| = k_F / \sqrt{2}$.
```{code-cell} ipython3
:tags: [remove-input]
question = r"What happens if you make the 2D $d$-wave Hamiltonian 3D, by adding coupling between 2D layers?"
......@@ -230,7 +227,6 @@ Whenever the line corresponding to a constant $k_\parallel$ crosses a Dirac poin
For a $d$-wave superconductor this will only happen for some crystalline orientations, as you can see for yourself:
```{code-cell} ipython3
:tags: [remove-input]
%%opts VLine (color='k') Curve (linestyle='--')
......@@ -324,7 +320,6 @@ $$
> So applying the most general perturbation we can think of does not gap out the Weyl point where the energy vanishes. Instead, the perturbation only shifts the Weyl point around in momentum space. This feels like some kind of topological protection.
```{code-cell} ipython3
:tags: [remove-input]
%%output fig='png'
%%opts Surface [azimuth=45]
......@@ -394,7 +389,6 @@ At large enough $k_z$, the two dimensional Hamiltonian $H_{2D,Dirac}(k_x,k_y;k_z
![](figures/weyl.svg)
```{code-cell} ipython3
:tags: [remove-input]
question = r"What protects the surface state of Weyl semi-metals from scattering inside the bulk Weyl point?"
......
......@@ -32,7 +32,6 @@ Today's lecture will be given by Vincenzo Vitelli, from Leiden University. You w
The main concepts and mathematical ideas will be presented in the context of real mechanical prototypes. Hopefully, this approach will stimulate you to cross the line that too often separates theory from applications.
```{code-cell} ipython3
:tags: [remove-input]
Video("i-eNPei2zMg")
```
......@@ -107,7 +106,6 @@ $$
where $w_0=a^2/2\bar u$ is the width of the static domain wall that interpolates between left-leaning ($u<0$ as $x\rightarrow-\infty$) and right-leaning ($u>0$ as $x\rightarrow+\infty$) states.
```{code-cell} ipython3
:tags: [remove-input]
question = r"What happens to the kink width $w_0$ when the gap closes?"
......@@ -149,13 +147,11 @@ Rather than analyzing mathematically the dynamics of the Lagrangian above, watch
show the motion in the linkage limit.
```{code-cell} ipython3
:tags: [remove-input]
Video("BE4NDhfdpBQ")
```
```{code-cell} ipython3
:tags: [remove-input]
Video("mRjpzC4rJx0")
```
......@@ -167,7 +163,6 @@ If you are curious about the mathematical details and a systematic study of the
Note that with different geometrical parameters, the same chain above can realize the [sine-Gordon Lagrangian](https://en.wikipedia.org/wiki/Sine-Gordon_equation). As before, check out the following movie:
```{code-cell} ipython3
:tags: [remove-input]
Video("w2k1Y0WON2E")
```
......@@ -207,7 +202,6 @@ dimensions.)
As a simple test of your knowledge, consider the following question whose answer will prove handy later.
```{code-cell} ipython3
:tags: [remove-input]
question = (
r"What is the number of bonds $z_c$ emanating from each node in a $d$-dimensional isostatic structure "
......@@ -279,7 +273,6 @@ value of $\nu_\text{T}$ in an arbitrary portion of an isostatic lattice is given
Watch now the following video that explains visually how to insert inside a twisted Kagome lattice a topological defect called a dislocation. You encountered dislocations and disclinations in a previous lecture by Taylor Hughes. (Alternatively, an excellent introduction to topological defects is given in chapter nine of the book by Chaikin and Lubensky, *Principles of Condensed Matter Physics*). The video will show you how to localize topological zero modes or states of self stress in the interior of a lattice with defects that act as internal boundary where the gap locally closes.
```{code-cell} ipython3
:tags: [remove-input]
Video("Mrm7JH6LJJI")
```
......@@ -310,7 +303,6 @@ defect in real space, represented by its Burgers vector (or dipole $\mathbf{d}$)
A similar interplay dictates the existence of localized electronic modes at dislocations in conventional topological insulators. One obtains $\nu_\textrm{T}=+1\,(-1)$ for the left (right) dislocation in the deformed Kagome lattice shown in the figure and in the video. The sign of $\nu_\text{T}$ distinguishes zero modes ($+$) or states of self stress ($-$), while its magnitude gives their numbers.
```{code-cell} ipython3
:tags: [remove-input]
question = (
"Consider the square lattice shown in the following figure, where the primitive vectors $a_i$ "
......@@ -340,7 +332,6 @@ In the numerical simulation below, you can see explicitly that transforming the
The unit cell chosen on the outside has topological polarization zero, while the topological polarization on the inside changes as you deform the unit cell by moving the slider. What you see plotted as you move the slider is the eigenvector associated with the lowest-energy eigenstate of the dynamical matrix, represented as a set of displacements on the lattice points (red arrows).
```{code-cell} ipython3
:tags: [remove-input]
from holoviews.core.element import Element2D
from holoviews.plotting.mpl import ElementPlot
......@@ -392,7 +383,6 @@ These examples show how to insert topologically protected mechanical modes anywh
You may get the impression that only the zero modes are potentially useful and the states of self stress are merely bookeeping devices that do nothing. This is far from truth, as will be illustrated in the next video.
```{code-cell} ipython3
:tags: [remove-input]
Video("RbJTxKFqO7I")
```
......@@ -412,7 +402,6 @@ As a result these states are designed to be topologically robust under smooth de
## Conclusions
```{code-cell} ipython3
:tags: [remove-input]
Video("j0X0sVy_6Og")
```
......@@ -30,7 +30,6 @@ init_notebook()
Crystalline topological insulators are introduced by Liang Fu from MIT.
```{code-cell} ipython3
:tags: [remove-input]
Video("N9-tUYjXC1s")
```
......@@ -50,7 +49,6 @@ Due to this type of constraint on the Brillouin zone, crystalline symmetries can
Note however, that sometimes the mere presence of a surface can break a crystalline symmetry of the bulk, so that one should be careful when applying the bulk-boundary correspondence to properties based on crystalline symmetries.
```{code-cell} ipython3
:tags: [remove-input]
question = r"In which case can inversion symmetry protect gapless surface states?"
......@@ -89,7 +87,6 @@ The mirror Chern number is a topological invariant in the sense that it cannot c
Naturally, the same recipe allows to construct a reflection symmetric topological insulator starting from any other topological invariant, not just a Chern number. We will now try to do this.
```{code-cell} ipython3
:tags: [remove-input]
question = (
"How would you attempt to make a model of a topological"
......@@ -129,7 +126,6 @@ On the other hand, if the hopping between the nanowires is reflection invariant,
If we do everything right (this does require some trial and error in searching for the hopping that actually can couple the two Majoranas from the edge), we get a painfully familiar dispersion:
```{code-cell} ipython3
:tags: [remove-input]
def nanowire_chains(length=40, n=2):
def onsite(site, t, mu, B, delta):
......@@ -184,7 +180,6 @@ This means that the Chern number of the alternating layers has to have opposite
Once again, coupling the layers we get a familiar Dirac cone on the surface:
```{code-cell} ipython3
:tags: [remove-input]
def stacked_qwz(w=50):
def shape(pos):
......
......@@ -40,7 +40,6 @@ pi_ticks = [
Today's topic, Floquet topological insulators, is introduced by Mark Rudner from the Niels Bohr Institute at Copenhagen.
```{code-cell} ipython3
:tags: [remove-input]
Video("1peVp_IZ7Ts")
```
......@@ -116,7 +115,6 @@ If the system is translationally invariant, we can study the effective band stru
Of course, selecting a single quasi-energy as the Fermi level is arbitrary, since the equilibrium state of driven systems doesn't correspond to a Fermi distribution of filling factors, but at least it seems close enough for us to try to apply topological ideas.
```{code-cell} ipython3
:tags: [remove-input]
question = (
"But wait, we arbitrarily chose the starting point $t$ in time for calculating the "
......@@ -164,7 +162,6 @@ $$
with $H_1$ and $H_2$ the nanowire Hamiltonians with chemical potential $\mu_1$ and $\mu_2$. A peculiar property of driven systems is that as the period becomes large, the band structure 'folds': if the driving is very weak, and the original Hamiltonian has energy $E$, the Floquet Hamiltonian has a much smaller quasienergy $(E\bmod 2\pi /T)$. This means that even when $H_1$ and $H_2$ correspond to trivial systems, we can still obtain nontrivial topology if we make the period large enough, as you can see for yourself:
```{code-cell} ipython3
:tags: [remove-input]
%%opts Path {+axiswise}
def evolution_operator(hamiltonians, T):
......@@ -283,7 +280,6 @@ Every electron makes a closed loop and ends up back at its origin. After every s
Let's have a look at the dispersion, and also see what happens as we tune the driving period:
```{code-cell} ipython3
:tags: [remove-input]
%%output size=200
......@@ -353,7 +349,6 @@ Now, there isn't a Hamiltonian which is more topologically trivial than the zero
That's something we can also very easily verify by computing the dispersion of a finite size ribbon:
```{code-cell} ipython3
:tags: [remove-input]
%%output size=200
%%opts Path {+axiswise}
......@@ -410,7 +405,6 @@ When the driving period is tuned to ensure the absence of bulk dispersion, we ca
So what is happening with bulk-edge correspondence?
```{code-cell} ipython3
:tags: [remove-input]
question = "How can you change the chirality of the edge states in the figure above?"
......@@ -442,7 +436,6 @@ What do we need to know to derive the full topological invariant from the bulk p
## Conclusions
```{code-cell} ipython3
:tags: [remove-input]
Video("DbyqIczcR9c")
```
......@@ -29,7 +29,6 @@ init_notebook()
This topic is introduced by Sankar Das Sarma from the university of Maryland.
```{code-cell} ipython3
:tags: [remove-input]
Video("4gSJSo3olfg")
```
......@@ -70,7 +69,6 @@ $$
```{code-cell} ipython3
:tags: [remove-input]
question = (
"The Laughlin argument was used to prove that the Hall effect must be quantized in integers. What is the key assumption"
......@@ -152,7 +150,6 @@ $$
Thus the composite fermion theory provides an explanation for how electrons can form incompressible states at a fractional sequence of filling fractions that is known as the "Jain sequence". These states were all seen in experiments.
```{code-cell} ipython3
:tags: [remove-input]
question = (
"Composite fermions allow one to explain incompressible states at fractional filling of the Landau levels by "
......@@ -192,7 +189,6 @@ We can however explain the result. If one stacks the two FQH states one obtains
## Conclusions
```{code-cell} ipython3
:tags: [remove-input]
Video("zrL-qxjKfGw")
```
......@@ -29,7 +29,6 @@ init_notebook()
The topological order is introduced by Barbara Terhal from RWTH Aachen.
```{code-cell} ipython3
:tags: [remove-input]
Video("rLdHCKxMumY")
```
......@@ -66,7 +65,6 @@ Does this have anything to do with the way we have defined topology in this cour
The topological robustness makes the topologically degenerate states particularly attractive to store quantum information. The main challenge of quantum information is the quantum decoherence problem, where local fluctuations in the Hamiltonian destroy the phase coherence of the quantum system used to store information. The solution proposed by topological quantum computation is to use the topologically degenerate space of a toric code to store the information. In fact, this is in essence what is being attempted by experimentalists who work on superconducting qubits, under the framework of the surface code.
```{code-cell} ipython3
:tags: [remove-input]
question = (
"How would the topological degeneracy of the ground state that comes from the loop configurations "
......
......@@ -165,7 +165,6 @@ def plot_Q(alphas, Q, Q_range, Q_dim=dims["Q"]):
## Topology and symmetry
```{code-cell} ipython3
:tags: [remove-input]
Video("5ysdSoorJz4")
```
......@@ -207,7 +206,6 @@ In the following, we will see that often one is interested in some more specific
However, for the moment let's just see these ideas at play using our quantum dot as a simple test case. Imagine our dot is initially described by a random $H$, such as:
```{code-cell} ipython3
:tags: [remove-input]
np.random.seed(30)
H0 = make_random_real_ham(N=4)
......@@ -221,7 +219,6 @@ $H(\alpha) = \alpha H' + (1-\alpha) H,$
so that at $\alpha=0$ we are at the initial Hamiltonian and at $\alpha=1$ we are at the final Hamiltonian. Let's see what the energy levels do as a function of $\alpha$ (we use more levels here than in the matrix above so that the spectrum looks more interesting).
```{code-cell} ipython3
:tags: [remove-input]
np.random.seed(69)
H0 = make_random_real_ham(N=10)
......@@ -235,7 +232,6 @@ You may notice from the plot that as $\alpha$ varies, it can happen that an ener
So are $H$ and $H'$ topologically equivalent or not? Let's look at this situation:
```{code-cell} ipython3
:tags: [remove-input]
np.random.seed(6)
H0 = make_random_real_ham(N=10)
......@@ -255,7 +251,6 @@ Since this number can not change under continuous transformations inside the set
Below, we plot the energy levels along our path from $H$ to $H'$ again, together with our topological invariant, the number of filled energy levels. You can see that this number changes between 3, 4 and 5. Hence we can say that $H$ and $H'$ are not topologically equivalent.
```{code-cell} ipython3
:tags: [remove-input]
np.random.seed(69)
H0 = make_random_real_ham(N=10)
......@@ -287,7 +282,6 @@ $$
This means that the system has a conservation law, and that the Hamiltonian can be brought to a block-diagonal form:
```{code-cell} ipython3
:tags: [remove-input]
modes = 5
np.random.seed(10)
......@@ -298,7 +292,6 @@ pprint_matrix(H0)
We can now look at the spectrum and the topological invariant of each subblock individually,
```{code-cell} ipython3
:tags: [remove-input]
%%opts Layout [aspect_weight=1 fig_inches=(8, 6) fig_size=100 ]
np.random.seed(13)
......@@ -319,7 +312,6 @@ Q2 = find_Q(spectrum2)
and combine them to get the spectrum and the topological invariant of the whole system:
```{code-cell} ipython3
:tags: [remove-input]
spectrum = find_spectrum(alphas, H0, H1)
Q = find_Q(spectrum)
......@@ -335,7 +327,6 @@ In our previous examples, you might have wondered, whether there was anything sp
Let's now break time-reversal symmetry, create random Hamiltonians with complex entries and see what happens.
```{code-cell} ipython3
:tags: [remove-input]
np.random.seed(91)
H0 = make_random_ham(N=4)
......@@ -343,7 +334,6 @@ pprint_matrix(H0)
```
```{code-cell} ipython3
:tags: [remove-input]
np.random.seed(92)
H0 = make_random_ham(N=10)
......@@ -370,7 +360,6 @@ $$
The following matrix is an example of such Hamiltonian:
```{code-cell} ipython3
:tags: [remove-input]
np.random.seed(49)
H0 = make_random_symplectic_ham(N=4)
......@@ -380,7 +369,6 @@ pprint_matrix(H0)
Hamiltonians of this type have the following property: every energy eigenvalue $E_n$ is doubly degenerate (Kramers' degeneracy). We can see the consequences of Kramers' degeneracy on our game of deforming one random Hamiltonian into another.
```{code-cell} ipython3
:tags: [remove-input]
np.random.seed(2285)
H0 = make_random_symplectic_ham(N=10)
......@@ -413,7 +401,6 @@ $$
We can once again generate a random Hamiltonian with sublattice symmetry, here:
```{code-cell} ipython3
:tags: [remove-input]
np.random.seed(98)
pprint_matrix(make_chiral_ham(2))
......@@ -434,7 +421,6 @@ Clearly, the number of states with negative energy is the same as the number of
Let's once again see if this is correct by transforming a random Hamiltonian with sublattice symmetry into another one.
```{code-cell} ipython3
:tags: [remove-input]
modes = 10
np.random.seed(99)
......@@ -448,7 +434,6 @@ Indeed, we can deform all the Hamiltonians with sublattice symmetry into one ano
This means that an extra symmetry may render topological classification trivial.
```{code-cell} ipython3
:tags: [remove-input]
question = (
"OK, let's see what we have so far. Which symmetry certainly "
......@@ -517,7 +502,6 @@ Particle-hole symmetry is represented by an anti-unitary operator which anti-com
Let's generate a random Bogoliubov-de Gennes Hamiltonian $H_\textrm{BdG}$:
```{code-cell} ipython3
:tags: [remove-input]
modes = 2
np.random.seed(101)
......@@ -533,7 +517,6 @@ pprint_matrix(H0_normal)
We can now see what happens when we deform it into a second one. You can indeed see clearly that the spectrum is mirrored around the line $E=0$, just like it was in the presence of sublattice symmetry.
```{code-cell} ipython3
:tags: [remove-input]
modes = 10
np.random.seed(5)
......@@ -594,7 +577,6 @@ We have included a factor of $i$ just for convenience, so that the Pfaffian is a
Whenever we need to compute a Pfaffian we just use the [Pfapack](https://arxiv.org/abs/1102.3440) package that calculates Pfaffians for numerical matrices. Let's use that package and check that the Pfaffian indeed allows us to calculate the fermion parity of the ground state of $H_\textrm{BdG}$.
```{code-cell} ipython3
:tags: [remove-input]
def find_pfaffian(alphas, H0, H1):
"""Function caculates the Pfaffian for a Hamiltonian.
......@@ -633,7 +615,6 @@ You can see how the Pfaffian invariant $Q_\textrm{BdG}$ changes its value from $
This means that it is the correct expression for the ground state fermion parity and for the topological invariant.
```{code-cell} ipython3
:tags: [remove-input]
question = (
"What happens to the topological invariant if we take the superconducting"
......@@ -657,7 +638,6 @@ MultipleChoice(
## Conclusion
```{code-cell} ipython3
:tags: [remove-input]
Video("C7HoXjVbpoM")
```
......@@ -39,7 +39,6 @@ holoviews.core.dimension.title = ""
## Kitaev chain and bulk-edge correspondence
```{code-cell} ipython3
:tags: [remove-input]
Video("U84MzZm9Gbo")
```
......@@ -128,7 +127,6 @@ $$
The BdG Hamiltonian acts on a set of basis states $\left|n\right\rangle\left|\tau\right\rangle$, with $\tau=\pm 1$ corresponding to electron and hole states respectively. It has particle-hole symmetry, $\mathcal{P}H_\textrm{BdG}\mathcal{P}^{-1}=-H_\textrm{BdG}$ with $\mathcal{P}=\tau_x\mathcal{K}$.
```{code-cell} ipython3
:tags: [remove-input]
# Create a "template system"—an infinite translationally invariant Kitaev chain.
# We use this to define specific examples later.
......@@ -158,7 +156,6 @@ The fact that the Kitaev model can have unpaired Majorana zero modes is certainl
Well, let's test if this objection is true. Let's start from the situation with unpaired Majorana modes ($\Delta=t, \mu=0$) and then increase $\mu$. Then let's plot the energy spectrum of a chain with $N=25$ sites as a function of $\mu$, and also keep track how do the two lowest energy states of our system look like, when we change $\mu$ **(move the slider)**:
```{code-cell} ipython3
:tags: [remove-input]
def plot_density(density, **style):
plot = holoviews.Curve(density, vdims=[dims["amplitude"]])
......@@ -226,7 +223,6 @@ So we have just learned the following:
As you see, our conclusion sounds a lot like what we learned about topology just before. We have come to these conclusions by studying a Kitaev chain on an open geometry with boundaries, and by focusing on the presence or absence of edge states localized at the boundaries of the chain. In the rest of the unit we will see that the presence or absence of edge states can be deduced by studying the bulk alone. In order to do this, we will now study an infinite Kitaev chain without boundaries.
```{code-cell} ipython3
:tags: [remove-input]
question = (
"But wait! What happens if we remove the last Majorana site of a Kitaev chain"
......@@ -308,7 +304,6 @@ $$
Let's see what this band structure looks like (once again move the slider to change $\mu$):
```{code-cell} ipython3
:tags: [remove-input]
def find_pfaffian(H):
return np.sign(np.real(pf.pfaffian(1j * U @ H @ U.T.conj())))
......@@ -472,7 +467,6 @@ $$
You see that the Pfaffian of $H(0)$ changes sign at $\mu=-2t$, and the Pfaffian of $H(\pi)$ does so at $\mu=2t$, in perfect agreement with the position of the gap closing in the band structure:
```{code-cell} ipython3
:tags: [remove-input]
holoviews.HoloMap(
{
......@@ -514,7 +508,6 @@ To go from periodic to antiperiodic boundary condition, we can change the hoppin
You can check that the Bogoliubov-de Gennes Hamiltonian of this closed ring satisfies particle-hole symmetry at every value of $\lambda$. Let's now look at the energy spectrum $E(\lambda)$ of the system as we vary $\mu$ from $0$ to $4t$, passing once again through the gap closing at $\mu=2t$.
```{code-cell} ipython3
:tags: [remove-input]
periodic_chain = kwant.Builder()
periodic_chain.update(finite_chain)
......@@ -552,7 +545,6 @@ On the other hand, when $\mu>2 t$ no zero-energy level crossing is present. The
We have therefore learned the essence of the bulk-boundary correspondence: A non-trivial value $Q=-1$ of the bulk invariant for the closed chain implies the existence of unpaired Majorana modes for the open chain. Also, we have been able to connect the value of the bulk invariant to a measurable quantity, in this case the ground state fermion parity of the closed chain.
```{code-cell} ipython3
:tags: [remove-input]
question = (
"What will happen if we take a 100 site Kitaev chain in the topological phase "
......@@ -569,7 +561,6 @@ Checkboxes(question, answers, correct_answers=[0, 2])
## Three approaches to analysing topological systems
```{code-cell} ipython3
:tags: [remove-input]
Video("wiHPQlEha6g")
```
......@@ -27,7 +27,6 @@ init_notebook()
## Braiding of Majoranas
```{code-cell} ipython3
:tags: [remove-input]
Video("Ndf2Z84g1R0")
```
......@@ -136,7 +135,6 @@ In particular, linear combinations of states with different total parity are for
This consideration only applies to closed systems. It does not apply if we are considering a system which is in contact with a reservoir of electrons, such as a metallic lead, in which case electrons may tunnel in and out of the lead, changing the total parity of the system. Equivalently, it does not apply if we are considering only a part of the total system. You could for instance imagine that, in our sketch, there are more Majorana zero modes in the part of the network which is not drawn explicitly (represented by the dots which “continue” the nanowire). In such a case it is perfectly possible that the *total* network is in, say, a state of even parity, but that the subsystem under consideration is in a superposition of even and odd parity states.
```{code-cell} ipython3
:tags: [remove-input]
question = (
"Consider an isolated system with N=7 pairs of Majoranas, and an even total fermion parity. "
......@@ -261,7 +259,6 @@ $$
Finally, you might object to the fact that the network of nanowires drawn in the figures only allows to exchange neighbouring Majoranas, even though our derivation of $U=\exp(\pi\gamma_n\gamma_m/4)$ seems to hold for any pair of Majoranas. This geometric constraint is not a big problem: by carefully composing many exchanges between neighbours, we can exchange any pair of Majoranas. As an example, you have that $U_{13}\equiv\exp\left(\pi\gamma_1 \gamma_3/4\right) = U_{12}^\dagger\,U^\dagger_{23}\,U_{12}$.
```{code-cell} ipython3
:tags: [remove-input]
question = (
"Consider a system with only one pair of Majorana modes, thus with just two degenerate states with different fermion parity. "
......@@ -304,7 +301,6 @@ These are the basic ideas of **topological quantum computation**. It is incredib
## Summary
```{code-cell} ipython3
:tags: [remove-input]
Video("V3e9r4S8GHs")
```
......@@ -41,7 +41,6 @@ style = {
We have a special guest to begin this week's lecture, Yuval Oreg from the Weizmann Institute in Rehovot.
```{code-cell} ipython3
:tags: [remove-input]
Video("GQLfs4i22ms")
```
......@@ -87,7 +86,6 @@ $$
The effective electron mass $m$ is just the coefficient of the expansion. Let's take a look at the band structure in this regime, both in the topological regime and in the trivial regime:
```{code-cell} ipython3
:tags: [remove-input]
lat = kwant.lattice.chain(norbs=4)
spinful_kitaev_chain = kwant.Builder(kwant.TranslationalSymmetry(*lat.prim_vecs))
......@@ -133,7 +131,6 @@ Whenever the Zeeman energy $|B|$ is larger than $\mu$ we have one Majorana fermi
Let's look at what happens with the dispersion as we increase the magnetic field from zero to a value larger than $\mu$.
```{code-cell} ipython3
:tags: [remove-input]
def title(params):
return r"$\mu={mu:.2}$, $B={B:.2}$, $\Delta={delta:.2}$".format(**params)
......@@ -234,7 +231,6 @@ And that is a big problem. Majoranas are their own particle-hole partners, and t
So does this now mean that we "broke" the bulk-edge correspondence? Let's look at the band structure (tweak the Zeeman energy):
```{code-cell} ipython3
:tags: [remove-input]
nanowire_chain = kwant.Builder(kwant.TranslationalSymmetry(*lat.prim_vecs))
......@@ -285,7 +281,6 @@ At $k = 0$, spin-orbit coupling vanishes, so it has no effect on the system bein
Let's now check that it does what we want, namely open the gap at a finite momentum:
```{code-cell} ipython3
:tags: [remove-input]
params = dict(t=1.0, mu=0.1, delta=0.1, B=0.2)
alphas = np.linspace(0, 0.4, 10)
......@@ -327,7 +322,6 @@ The smaller the gap, the worse the protection of Majoranas, and the more we need
Let's calculate the gap as a function of all of the relevant parameters.
```{code-cell} ipython3
:tags: [remove-input]
%%opts Curve (color=Cycle(values=['r', 'g', 'b', 'y']))
%%opts Overlay [show_legend=True legend_position='top']
......@@ -401,7 +395,6 @@ Let's summarize our observations:
We finish our investigation of this model for now with a final simple picture of the band structure of our system.
```{code-cell} ipython3
:tags: [remove-input]
params = dict(t=1.0, B=0.07, delta=0.03, alpha=0.8)
mus = np.linspace(-0.18, 0.22, 10)
......@@ -419,7 +412,6 @@ At $k=0$ the spin-orbit coupling is ineffective, so the electron and hole bands
The non-monotonous behavior of the gap versus $B$ that we saw earlier is a consequence of this complicated band structure: There are different values of momenta where the dispersion has local minima. When we are close to the phase transition, $k=0$ defines the gap, while for large $B$, it is the gap at finite momentum that becomes smallest.
```{code-cell} ipython3
:tags: [remove-input]
question = "What happens if we align the magnetic field $B$ along the $y$-direction instead of the $z$-direction?"
answers = [
......@@ -442,7 +434,6 @@ MultipleChoice(
## Outlook
```{code-cell} ipython3
:tags: [remove-input]
Video("MsFyJBAMFLI")
```
......@@ -35,7 +35,6 @@ dims = dict(
Our second guest lecturer for this week is Carlo Beenakker, from Leiden University.
```{code-cell} ipython3
:tags: [remove-input]
Video("WAhNblNbadA")
```
......@@ -107,7 +106,6 @@ Is there anything in particular which distinguishes the Majorana resonance from
Let's just look at what happens if we compare conductance of an NS interface in the cases when S is trivial and non-trivial, and see how the conductance changes as we alter the tunnel barrier strength.
```{code-cell} ipython3
:tags: [remove-input]
lat = kwant.lattice.chain(norbs=4)
......@@ -199,7 +197,6 @@ def plot_spectroscopy(V_barrier):
```
```{code-cell} ipython3
:tags: [remove-input]
holoviews.HoloMap(
{V: plot_spectroscopy(V) for V in np.arange(1, 4.25, 0.25)},
......@@ -287,7 +284,6 @@ $$
We already saw that unitarity requires that $|r_{ee}|^2+|r_{eh}|^2=1$. There are only two possibilities for both conditions to be true: either $|r_{ee}|=1$ (**perfect normal reflection**) or $|r_{eh}|=1$ (**perfect Andreev reflection**). The situation cannot change without a phase transition. Thus the quantized conductance of the Majorana mode is topologically robust in this case, and in fact survives past the tunneling limit.
```{code-cell} ipython3
:tags: [remove-input]
question = (
"Imagine we replace the superconducting electrode with an insulating material, "
......@@ -337,7 +333,6 @@ Here, $\phi = 2\pi\Phi/\Phi_0$ is usually called the **superconducting phase dif
To see how this happens explicitly, let's look at the spectrum of a topological superconducting ring as a function of flux, obtained using our nanowire model:
```{code-cell} ipython3
:tags: [remove-input]
# Make a finite ring.
......@@ -393,7 +388,6 @@ def plot_gse_sc_nanowire(fluxes, spectrum):
```
```{code-cell} ipython3
:tags: [remove-input]
params = dict(mu_sc=0.4, t=1.0, alpha=0.2, delta=0.1, Ez=1)