Help regarding chern number calculation

MS. PRIYANKA SINHA sinhapriyanka2016 at iitg.ac.in
Fri May 31 08:41:15 CEST 2019


Dear Sir,

                I am a new user of z2 pack and trying to calculate chern number following the journal https://journals.aps.org/prb/pdf/10.1103/PhysRevB.85.115439 . I have defined the Hamiltonian as given in equation 14. I should get non-zero chern number. But instead of that I am getting zero. I am attaching my code below. Kindly help me in this regard.



*********************************************************************

#!/usr/bin/env python
# -*- coding: utf-8 -*-
#
# Author:  Dominik Gresch <greschd at gmx.ch>
# Date:    16.08.2016 14:25:39 CEST
# File:    haldane.py

import json
import logging

import z2pack
import numpy as np
import matplotlib.pyplot as plt
from numpy import linalg as LA

logging.getLogger('z2pack').setLevel(logging.WARNING)

# defining pauli matrices
identity = np.identity(2, dtype=complex)
pauli_x = np.array([[0, 1], [1, 0]], dtype=complex)
pauli_y = np.array([[0, -1j], [1j, 0]], dtype=complex)
pauli_z = np.array([[1, 0], [0, -1]], dtype=complex)
Sx= 1./2. * np.array([[0, 1], [1, 0]], dtype=complex)
Sy= 1./2. * np.array([[0, -1j], [1j, 0]], dtype=complex)
Sz= 1./2. * np.array([[1, 0], [0, -1]], dtype=complex)

def Hamilton(k, m, t1, VR):
    kx, ky,_= k
    H  = (3. *t1 /2. * (  pauli_x * kx + pauli_y * ky)) *  identity
    H += (3. *t1 /2. * (- pauli_x * kx + pauli_y * ky)) *  identity
    H +=  3. *VR /2. * (  pauli_x * Sy - pauli_y * Sx)
    H += 3. *VR /2. *  (- pauli_x * Sy - pauli_y * Sx)
    #H3 = n * 3. *sqrt3 * t2 * pauli_z *Sz
    H += (m * Sz) * identity
    #H5 = u * pauli_z * identity
    return H


def get_chern( m, t1, VR, **settings):
    system = z2pack.hm.System(lambda k: Hamilton(k, m, t1, VR), bands=1)

    result = z2pack.surface.run(system=system, surface=lambda t1, t2: [t1, t2, 1], **settings)
    return z2pack.invariant.chern(result)


if __name__ == "__main__":
    # Task a)
    print(get_chern(0.3, 1., 0.5 ))
    #print(get_chern(0.5, 1., 1. / 3., -0.5 * np.pi))
    #print(Hamilton(0.1, 1, 0.3,0.5))
********************************************************************

Thanking You,
Priyanka Sinha
IIT Guwahati
Research Scholar




































































































































































-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.phys.ethz.ch/pipermail/z2pack/attachments/20190531/7b73c553/attachment.html>


More information about the Z2Pack mailing list