You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
By default, the models returned by `tb_hamiltonian` are Hermitian. In addition to Hermitian models, however, it is also possible to return anti-Hermitian or generically non-Hermitian (neither Hermitian or anti-Hermitian) models. Here, we showcase the latter.
4
+
5
+
## Hatano--Nelson model
6
+
7
+
The architypical non-Hermitian model is the 1D Hatano--Nelson model, consisting of a single site and nearest-neigbor hoppings, in a setting with only time-reversal symmetry.
8
+
It is simple to build this model with SymmetricTightBinding.jl:
9
+
10
+
```@example hatano-nelson
11
+
brs = calc_bandreps(1, 1) # EBRs in plane group 1, with time-reversal symmetry
12
+
pin_free!(brs, [1=>[0]]) # the 1a Wyckoff position in plane group 1 has a free parameter: set to 0 for definiteness
The model is very simple: two different hopping terms, corresponding to right- and left-directed hopping terms. The absence of hermiticity allows the hopping amplitudes in either direction to differ, contrasting the Hermitian case:
18
+
19
+
```@example hatano-nelson
20
+
tb_hamiltonian(cbr, [[1]], HERMITIAN)
21
+
```
22
+
The non-Hermitian model reduces to the Hermitian model when the left- and right-directed hopping amplitudes are equal. When the two are _not_ equal, the Hatano-Nelson model features exceptional points and spontaneous symmetry breaking of the real spectrum, as we can verify by example (using Brillouin.jl and GLMakie.jl for dispersion plotting):
23
+
24
+
```@example hatano-nelson¨
25
+
ptbm = tbm([0.9, 1.1]) # a model with 0.9 hopping amplitude to right, 1.1 to the left
26
+
27
+
using Brillouin, GLMakie
28
+
kp = irrfbz_path(1, directbasis(1, 1)) # a k-path in plane group 1
29
+
kpi = interpolate(kp, 500) # interpolated over 500 points
30
+
Es = spectrum(ptbm, kpi)
31
+
Es_re = sort(real.(Es); dims=2)
32
+
Es_im = sort(imag.(Es); dims=2)
33
+
34
+
using GLMakie
35
+
plot(kpi, Es_re, Es_im; color=[:blue, :red])
36
+
```
37
+
38
+
We can also explore the consequences of breaking time-reversal symmetry:
39
+
```
40
+
brs_notr = calc_bandreps(1, 1; timereversal=false) # EBRs in plane group 1, without time-reversal symmetry
## A more complicated example: exceptional surfaces in p4
46
+
47
+
We can also construct more complicated examples where symmetry plays a role. Consider for example the following simple extension of the Hatano-Nelson model to a 2D lattice with p4 symmetry:
[^1]: For mirror symmetry-breaking, the absence of new terms is a result of looking only at a limited set of hopping orbits (in the original model `tb_hamiltonian(cbr, [[0,0], [1,0]])`): by including longer-range hopping orbits, we would eventually find new mirror-symmetry-broken terms. This is not so for time-reversal breaking, however: in *p*4mm, mirror symmetry and hermicity jointly impose an effective time-reversal symmetry.
50
+
[^1]: For mirror symmetry-breaking, the absence of new terms is a result of looking only at a limited set of hopping orbits (in the original model `tb_hamiltonian(cbr, [[0,0], [1,0]])`): by including longer-range hopping orbits, we would eventually find new mirror-symmetry-broken terms. This is not so for time-reversal breaking, however: in *p*4mm, mirror symmetry and hermiticity jointly impose an effective time-reversal symmetry.
51
51
52
52
However, by breaking both mirror and time-reversal symmetry simultaneously, additional terms do appear:
0 commit comments