def berry(self): # Calculate Berry phase around Dirac cones K = -(4 * np.pi) / (3 * np.sqrt(3)) if self.Haldane.value() != 0: Lat = lattice('Sheet', 'Haldane') else: Lat = lattice('Sheet', 'Monolayer') H = Hamiltonian(Lat, self.Hoppingt2.value(), 0, 0, self.Haldane.value()) if self.Magneticfield2.value() != 0: H.add_magnetic_field(self.Magneticfield2.value(), 'Perpendicular') if self.OnsiteV2.value() != 0: H.add_lattice_imbalance(self.OnsiteV2.value()) i = topology(H) k1 = i.berry_curvature(np.array([-(4 * np.pi) / (3 * np.sqrt(3)), 0])) k2 = i.berry_curvature(np.array([(4 * np.pi) / (6 * np.sqrt(3)), (4 * np.pi) / (3 * 2)])) k3 = i.berry_curvature(np.array([(4 * np.pi) / (6 * np.sqrt(3)), -(4 * np.pi) / (3 * 2)])) k4 = i.berry_curvature(np.array([(4 * np.pi) / (3 * np.sqrt(3)), 0])) k5 = i.berry_curvature(np.array([-(4 * np.pi) / (6 * np.sqrt(3)), (4 * np.pi) / (3 * 2)])) k6 = i.berry_curvature(np.array([-(4 * np.pi) / (6 * np.sqrt(3)), -(4 * np.pi) / (3 * 2)])) G = i.berry_curvature(np.array([0, 0])) msgBox = QtWidgets.QMessageBox() s = "K-point: {:.4f} \n K'-point: {:.4f} \n Gamma-point: {:.4f}".format(k1, k4, G) msgBox.setText("Berry phase") msgBox.setInformativeText(s) msgBox.exec_()
def locchernKprime(self): # Calculate local chern number at K' valley from chosen lattice and Hamiltonian K = -(4 * np.pi) / (3 * np.sqrt(3)) if self.Haldane.value() != 0: Lat = lattice('Sheet', 'Haldane') else: Lat = lattice('Sheet', 'Monolayer') H = Hamiltonian(Lat, self.Hoppingt2.value(), 0, 0, self.Haldane.value()) if self.Magneticfield2.value() != 0: H.add_magnetic_field(self.Magneticfield2.value(), 'Perpendicular') if self.OnsiteV2.value() != 0: H.add_lattice_imbalance(self.OnsiteV2.value()) i = topology(H) ch = i.chern_valley("K'", 0.01) # calculate chern number s = "{:.4f}".format(ch) msgBox = QtWidgets.QMessageBox() msgBox.setText("Local Chern number:") msgBox.setInformativeText(s) msgBox.exec_()
def locchernKprime(self): # Calculate local chern number at K' valley from chosen lattice and Hamiltonian K = -(4 * np.pi) / (3 * np.sqrt(3)) Lat = lattice('Sheet', self.SelectStack.currentText()) # Create lattice H = Hamiltonian(Lat, self.Hoppingt2.value(), self.Hoppingtprime2.value()) # Create Hamiltonian if self.Magneticfield2.value() != 0: # Add magnetic field H.add_magnetic_field(self.Magneticfield2.value(), self.SelectBBil.currentText(), self.BAngle.value()) if self.OnsiteV.value() != 0: # Add layer potentials H.add_lattice_imbalance(self.OnsiteV.value()) if self.OnsiteV_2.value() != 0: # Add sublattice potentials H.add_sublattice_imbalance(self.OnsiteV_2.value()) i = topology(H) # Create invariants object ch = i.chern_valley("K'", 0.01) # Calculate chern number s = "{:.4f}".format(ch) msgBox = QtWidgets.QMessageBox() msgBox.setText("Local Chern number:") msgBox.setInformativeText(s) msgBox.exec_()
def locchernKprime(self): # Calculate local chern number in K' valley K = -(4 * np.pi) / (3 * np.sqrt(3)) Lat = lattice('Sheet', self.SelectStack.currentText()) H = Hamiltonian(Lat, self.Hoppingt2.value(), self.Hoppingtprime2.value()) if self.Magneticfield2.value() != 0: H.add_magnetic_field(self.Magneticfield2.value(), self.SelectBBil.currentText(), self.BAngle.value()) if self.OnsiteV_2.value() != 0: H.add_sublattice_imbalance(self.OnsiteV_2.value()) i = topology(H) ch = i.chern_valley("K'", 0.01) s = "{:.4f}".format(ch) #print("Local Chern number:", i.chern_valley("K'", 0.01)) msgBox = QtWidgets.QMessageBox() msgBox.setText("Local Chern number:") msgBox.setInformativeText(s) msgBox.exec_()
def berry(self): # calculate Berry phases K = -(4 * np.pi) / (3 * np.sqrt(3)) Lat = lattice('Sheet', self.SelectStack.currentText()) H = Hamiltonian(Lat, self.Hoppingt2.value(), self.Hoppingtprime2.value()) if self.Magneticfield2.value() != 0: H.add_magnetic_field(self.Magneticfield2.value(), self.SelectBBil.currentText(), self.BAngle.value()) if self.OnsiteV_2.value() != 0: H.add_sublattice_imbalance(self.OnsiteV_2.value()) i = topology(H) k1 = i.berry_curvature(np.array([-(4 * np.pi) / (3 * np.sqrt(3)), 0])) k2 = i.berry_curvature(np.array([(4 * np.pi) / (6 * np.sqrt(3)), (4 * np.pi) / (3 * 2)])) k3 = i.berry_curvature(np.array([(4 * np.pi) / (6 * np.sqrt(3)), -(4 * np.pi) / (3 * 2)])) k4 = i.berry_curvature(np.array([(4 * np.pi) / (3 * np.sqrt(3)), 0])) k5 = i.berry_curvature(np.array([-(4 * np.pi) / (6 * np.sqrt(3)), (4 * np.pi) / (3 * 2)])) k6 = i.berry_curvature(np.array([-(4 * np.pi) / (6 * np.sqrt(3)), -(4 * np.pi) / (3 * 2)])) G = i.berry_curvature(np.array([0, 0])) msgBox = QtWidgets.QMessageBox() s = "K-point: {:.4f} \n K'-point: {:.4f} \n Gamma-point: {:.4f}".format(k1, k4, G) msgBox.setText("Berry phase") msgBox.setInformativeText(s) msgBox.exec_()
def berry(self): # Calculate berry phase around valleys from chosen lattice and Hamiltonian K = -(4 * np.pi) / (3 * np.sqrt(3)) Lat = lattice('Sheet', self.SelectStack.currentText()) # Create lattice H = Hamiltonian(Lat, self.Hoppingt2.value(), self.Hoppingtprime2.value()) # Create Hamiltonian if self.Magneticfield2.value() != 0: # Add magnetic field H.add_magnetic_field(self.Magneticfield2.value(), self.SelectBBil.currentText(), self.BAngle.value()) if self.OnsiteV.value() != 0: # Add layer potentials H.add_lattice_imbalance(self.OnsiteV.value()) if self.OnsiteV_2.value() != 0: # Add sublattice potentials H.add_sublattice_imbalance(self.OnsiteV_2.value()) i = topology(H) # Create invariants object