Open khaledb9 opened 2 months ago
I'm trying to calculate the berry phase around a nodal point at Gamma in a hexagonal BZ.
The Hybrid Wannier Charge Center (HWCC) values are computed from eigenvalues $e^{i 2 \pi \lambda}$ ($\lambda$ being the HWCC) of the Wilson loop. This means they are well-defined only up to adding an integer constant.
In that sense, whether the value computed for two bands is 0 or 1 makes no difference, this is the same result.
What kind of topological protection are you aiming to detect here? It can happen that the HWCC are further quantized, or the two states can be separated into two symmetry-protected halves, but this in general requires additional symmetry (and is less straightforward to compute).
For the generic Weyl node, the Berry flux needs to be computed on a sphere surrounding the node. See the following example for reference: https://z2pack.greschd.ch/en/latest/examples/tb/wte2_tb.html
My material is 2D so the typical weyl sphere method might not be correct in my case. I'm trying to calculate the berry phase for a closed circular loop in 2D around the Gamma point, to show that these points have a chirality and thus, surface states. I have learned (correct me if im wrong please) that the polarization is related to the berry phase so 1 means 2pi berry phase? My system obeys Time reversal symmetry.
In fact I have been testing with z2pack and obtaining results that doesnt seem to be right wether the bands issue I mentioned or the fact that the polarization for points with no intersection gives polarization of 1, which makes me ask if the relation between berry phase and polarization I mentioned holds.
To illustarte further please check the below result, I cant seem to calculate the berry phase in a correct way. I chose the loop to be around K point
Berry Phase of band 652 around a closed loop of radius 0.005: 7.368303312205171e-05 Berry Phase of band 653 around a closed loop of radius 0.005: 0.999642837064755 Berry Phase of band 654 around a closed loop of radius 0.005: 0.000765376347885649 Berry Phase of band 655 around a closed loop of radius 0.005: 2.8407457023149618e-05 Berry Phase of band 656 around a closed loop of radius 0.005: 3.889830566095043e-06 Berry Phase of band 657 around a closed loop of radius 0.005: 0.9998660516678797 Berry Phase of band 658 around a closed loop of radius 0.005: 0.9999464708214418 Berry Phase of band 659 around a closed loop of radius 0.005: 0.00023017399217906132 Berry Phase of band 660 around a closed loop of radius 0.005: 0.9999637112609321 Berry Phase of band 661 around a closed loop of radius 0.005: 0.9996424753705355
that the polarization is related to the berry phase so 1 means 2pi berry phase
Yes, that's right. But the Berry phase is only Gauge-invariant up to multiples of $2\pi$. So a Berry phase of 0 or $2\pi$, or $4\pi$, is all the same result. Z2Pack chooses to show the result within $[0, 1)$, but e.g. $-0.1$ and $0.9$ are equivalent.
The topological invariants which Z2Pack can compute are smooth evolutions of the Berry phase over a surface. Or in the case of a line, if it was e.g. quantized to multiples of $\pi$, not $2\pi$.
0.005: 0.00023017399217906132
As the radius goes to zero, it's expected that the Berry phase approaches 0 (or -0, i.e. 0.999) on a trivial band.
If I understand correctly, that means if the Berry phase is pi I should expect a polarization of 0.5. ??
So is there is a way by which I can differentiate between a trivial point in a band and a point with Berry phase of 2pi?
Get Outlook for iOShttps://aka.ms/o0ukef
From: Dominik Gresch @.> Sent: Tuesday, June 25, 2024 10:52:08 PM To: Z2PackDev/Z2Pack @.> Cc: Khaled Badawy @.>; Author @.> Subject: Re: [Z2PackDev/Z2Pack] Calculating Berry Phase around a loop (Issue #227)
that the polarization is related to the berry phase so 1 means 2pi berry phase
Yes, that's right. But the Berry phase is only Gauge-invariant up to multiples of $2\pi$. So a Berry phase of 0 or $2\pi$, or $4\pi$, is all the same result.
The topological invariants which Z2Pack can compute are smooth evolutions of the Berry phase over a surface. Or in the case of a line, if it was e.g. quantized to multiples of $\pi$, not $2\pi$.
0.005: 0.00023017399217906132
As the radius goes to zero, it's expected that the Berry phase approaches 0 (or -0, i.e. 0.999) on a trivial band.
— Reply to this email directly, view it on GitHubhttps://github.com/Z2PackDev/Z2Pack/issues/227#issuecomment-2189737666, or unsubscribehttps://github.com/notifications/unsubscribe-auth/AXGS3TBMCLZCQ4Q6VCSHCRTZJG35RAVCNFSM6AAAAABJ333OLSVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDCOBZG4ZTONRWGY. You are receiving this because you authored the thread.Message ID: @.***>
If I understand correctly, that means if the Berry phase is pi I should expect a polarization of 0.5. ?
Yes, that's right.
So is there is a way by which I can differentiate between a trivial point in a band and a point with Berry phase of 2pi?
Short answer: I don't know exactly.
One way which I think could occur is that the Berry phase of each band individually goes to $\pi$ as the radius goes to zero. But there may be other options of topological invariants which could be defined.
One way which I think could occur is that the Berry phase of each band individually goes to 𝜋 as the radius goes to zero. But there may be other options of topological invariants which could be defined.
Would that be equivalent to the case I mentioned earlier, where two bands each have a fraction, (i.e 0.25 and 0.75), this then makes the berry phase 2pi since each band has a non-trivial polarization value? In the other case where the bands are trivial then each band would have a polarization of 0 or 1?
Lastly, I would be grateful for your comment on the choice of bands, whether to pick the relevant bands or the full bands (up to band of interest). The reason I'm bringing this up is that I've been looking at the source code of wanniertools just for a comparison with the results I get from z2pack and I've noticed that the berry phase is taken as contributions from all bands not only bands of choice.
Thank you for your useful insights.
Would that be equivalent to the case I mentioned earlier, where two bands each have a fraction, (i.e 0.25 and 0.75), this then makes the berry phase 2pi since each band has a non-trivial polarization value? In the other case where the bands are trivial then each band would have a polarization of 0 or 1?
The important here would be that the individual bands have fractional polarization as the loop radius goes to zero. In that case, the gap cannot adiabatically be opened since that would discontinuously change the Berry phase.
Lastly, I would be grateful for your comment on the choice of bands, whether to pick the relevant bands or the full bands (up to band of interest). The reason I'm bringing this up is that I've been looking at the source code of wanniertools just for a comparison with the results I get from z2pack and I've noticed that the berry phase is taken as contributions from all bands not only bands of choice.
It's typical to choose all occupied bands. But in the general case, any set of bands which are separated by a direct energy gap along the line / surface of consideration can be computed.
Thanks for your reply
The important here would be that the individual bands have fractional polarization as the loop radius goes to zero. In that case, the gap cannot adiabatically be opened since that would discontinuously change the Berry phase.
If the radius goes to zero, the dispersion around the point will not be captured, how will the calculation of berry phase be meaningful? In fact, for any band (in other examples as well) when I try a radius close to zero (0.005) I get a Polarization of 1 or 0. Shouldn't the radius be large enough to capture the dispersion character? In my case is 0.015-0.03. Maybe I did not completely understand your statement above. This also agree with your reply above.
As the radius goes to zero, it's expected that the Berry phase approaches 0 (or -0, i.e. 0.999) on a trivial band.
As for the bands, there happens to be weyl points that are gapless, hence the topological character around the point itself is useful. Would the fact that the points of interest are gapless affect the fractional polarization above, and the choice of bands, I find it more meaningful to choose two isolated bands.
Since I really don't know which topological invariants exist in the 2D case, I'll answer the question about the radius w.r.t. 3D Weyl points: in that case, the Chern invariant / evolution of hybrid Wannier charge centers remains non-zero as the radius of the sphere surrounding it goes to zero. That is precisely what constitutes its topological nature: there is no way to adiabatically perturb the Hamiltonian and open the gap, since that would necessitate a discontinuous change in Berry flux.
Would the fact that the points of interest are gapless affect the fractional polarization above, and the choice of bands, I find it more meaningful to choose two isolated bands.
It really depends what the goal of the calculation is: when searching for edge states near the Fermi energy, it makes sense to include all unoccupied bands in one calculation. When the bands are considered individually, one can of course still add them up and get to that result. But topological bands far away from the Fermi energy may not be very meaningful when they're cancelled by other nearby bands.
Hello
I hope you are doing well.
I'm trying to calculate the berry phase around a nodal point at Gamma in a hexagonal BZ. My code below should work as per my understanding of z2pack and previous related inquires here.
My confusion arises in the choice of bands, my understanding is that the bands of interest (i.e. two intersecting bands) should be taken into account. However, when I do that I get zero polarization, on the other hand, when I try each of the bands separate, one band yields values >0.85 and <0.99, while the other band has a much smaller contribution such that when adding both the total is exactly 1.0. I have also noticed that tbmodels reads the nodal points as degenerate. I attach a slice of the band structure for clarity, where the numbers are the band indices from tbmodels indexed at 1.
My question is whether the method of calculating the berry phase involves picking two bands or one band, and what would be an appropriate choice of radius, I noticed robust results at 0.001 or 0.005. However, I see typical radii of 0.02-0.01 sometimes. Any guidance on that part would be really helpful.
Edit: I would like to add that this behavior of bands doesn't happen for all bands, some bands when taken together yield one while some yield zero, and when taken separate give 1, Also the eigenvals read from the Hamiltonian show degenerate states but i skipped the numbering in the picture for clarity. Below are results for a loop calculation (all converged) for the bands in the picture (band index-1):
Berry Phase of band 622 around a closed loop of radius 0.001: 0.04100696872977625 Berry Phase of band 623 around a closed loop of radius 0.001: 0.9589928889922766 Berry Phase of band 624 around a closed loop of radius 0.001: 0.9992665499471752 Berry Phase of band 625 around a closed loop of radius 0.001: 0.00073365589170473 Berry Phase of band 626 around a closed loop of radius 0.001: 0.9893624039963602 Berry Phase of band 627 around a closed loop of radius 0.001: 0.010637242474431005 Berry Phase of band 628 around a closed loop of radius 0.001: 0.023553042727784267 Berry Phase of band 629 around a closed loop of radius 0.001: 0.9764470491165737 Berry Phase of band 630 around a closed loop of radius 0.001: 0.995853412417517 Berry Phase of band 631 around a closed loop of radius 0.001: 0.004146595726341293 Berry Phase of band 632 around a closed loop of radius 0.001: 0.9694079911836682 Berry Phase of band 633 around a closed loop of radius 0.001: 0.030592063207998062 Berry Phase of band 634 around a closed loop of radius 0.001: 0.00023132206496108225 Berry Phase of band 635 around a closed loop of radius 0.001: 0.9997690718767575 Berry Phase of band 636 around a closed loop of radius 0.001: 0.025006111884210876 Berry Phase of band 637 around a closed loop of radius 0.001: 0.9749933038092109 Berry Phase of band 638 around a closed loop of radius 0.001: 0.00548851032211312 Berry Phase of band 639 around a closed loop of radius 0.001: 0.9945115379076279
Thanks
import tbmodels import numpy as np import matplotlib.pyplot as plt import z2pack import logging
Load the model
model = tbmodels.Model.from_hdf5_file('tb.hdf5')
logging.getLogger('z2pack').setLevel(logging.INFO) system = z2pack.tb.System(model, bands=[639])
x0 = 0 y0 = 0 radii = [0.01]
for r in radii: result= z2pack.line.run( system=system, line=lambda t: [x0 + r np.cos(2 np.pi t), y0 + r np.sin(2 np.pi t), 0], iterator=range(10, 200, 10), pos_tol=0.001 )