Author Topic: Calculate fermi velocity  (Read 27203 times)

0 Members and 1 Guest are viewing this topic.

Offline huckelbuckel

  • Heavy QuantumATK user
  • ***
  • Posts: 53
  • Country: in
  • Reputation: 0
    • View Profile
Calculate fermi velocity
« on: February 14, 2012, 10:44 »
Graphene ,silicene and germanene show linear dispersion at the K point in band dig.How can i get the slope dE/dk from bandstructure???  ???Is it possible to use some kind of nanolanguage script to calculate fermi velocity of electrons by taking slope of E-K graph.Please help.

Offline Anders Blom

  • QuantumATK Staff
  • Supreme QuantumATK Wizard
  • *****
  • Posts: 5575
  • Country: dk
  • Reputation: 96
    • View Profile
    • QuantumATK at Synopsys
Re: Calculate fermi velocity
« Reply #1 on: February 15, 2012, 23:27 »
It requires a bit of a special solution, because you need to compute the band energies at a particular k-point which isn't one of the lattice symmetry points. I have a script for that, a class rather, which is attached as BandstructureK.py. If you download that, and if we assume you have in a NC file a converged calculation for graphene as object ID gID000, then we can do
Code: python
conf = nlread("graphene.nc", object_id="gID000")[0]
from BandstructureK import Bandstructure

# This is just to check that we have a nice degeneracy at the K point
t = Bandstructure(conf,kpoints=numpy.array([[1./3,1./3,0]]))
vbmax_ix = numpy.where(t.evaluate()[0]<=0.*eV)[0][-1]
cbmin_ix = numpy.where(t.evaluate()[0]>=0.*eV)[0][0]
bandgap = t.evaluate()[0][cbmin_ix]-t.evaluate()[0][vbmax_ix]
nlprint("Gap at K: %s" % bandgap)

# Now compute the energies at K-eps
# We may need to tune eps, it should be small but not too small
eps = 1e-4
t2 = Bandstructure(conf,kpoints=numpy.array([[1./3-eps,1./3-eps,0]]))
E = t2.evaluate()[0][cbmin_ix]
nlprint("Energy at K-eps: %s" % E)
nlprint("eps: %s" % eps)
Since E(k=K)=0, you get dE/dk=E/eps - now you just have to figure out in which unit ;)
« Last Edit: February 15, 2012, 23:32 by Anders Blom »

Offline huckelbuckel

  • Heavy QuantumATK user
  • ***
  • Posts: 53
  • Country: in
  • Reputation: 0
    • View Profile
Re: Calculate fermi velocity
« Reply #2 on: February 16, 2012, 12:05 »
Hi Thanks for the help . I am still trying to find where should i copy BandstructureK.py class file?? so that i won't get the import-errors??

Traceback (most recent call last):
  File "c:\docume~1\ibm\locals~1\temp\5896631062587926.py", line 4, in <module>
    from BandstructureK import Bandstructure 
ImportError: No module named BandstructureK

I copied this in default directory (where analysis.nc gets saved automatically) but still i am getting error.
or do i need to keep the class file inside atkpython folder???

Offline huckelbuckel

  • Heavy QuantumATK user
  • ***
  • Posts: 53
  • Country: in
  • Reputation: 0
    • View Profile
Re: Calculate fermi velocity
« Reply #3 on: February 16, 2012, 12:22 »
i was having trouble with imports so.... i copied the code below the BandstructureK.py file and removed the import statement its working now.

Offline Anders Blom

  • QuantumATK Staff
  • Supreme QuantumATK Wizard
  • *****
  • Posts: 5575
  • Country: dk
  • Reputation: 96
    • View Profile
    • QuantumATK at Synopsys
Re: Calculate fermi velocity
« Reply #4 on: February 16, 2012, 12:23 »
You can place it in "C:\Program Files (x86)\QuantumWise\atk-11.8.2\vnl\lib\site-packages", but the best way with such scripts in general is to run them from the command line, in which case the script just needs to reside in the directory where you run from.

Offline huckelbuckel

  • Heavy QuantumATK user
  • ***
  • Posts: 53
  • Country: in
  • Reputation: 0
    • View Profile
Re: Calculate fermi velocity
« Reply #5 on: February 16, 2012, 13:19 »
fermi velocity is given by vf =      dE/dK
                                        -----------
                                               (h*)
h* is reduced planck constant

since unit of h* is (eV)(second)
and velocity in (m)/(Sec)

dE/dK should be  (eV)(m)

so in the script the unit of 'eps' (k points) is in meters-1 OR angstrom-1 OR nanometer-1 ??? I need ur help here.

looking at the values people have got fermi velocity of 106 m/sec. in graphene

Offline Anders Blom

  • QuantumATK Staff
  • Supreme QuantumATK Wizard
  • *****
  • Posts: 5575
  • Country: dk
  • Reputation: 96
    • View Profile
    • QuantumATK at Synopsys
Re: Calculate fermi velocity
« Reply #6 on: February 16, 2012, 13:44 »
No eps is dimensionless. What you need is to convert the vector V=(1/3-eps,1/3-eps,0) to a real vector in reciprocal space. That is, you evaluate the reciprocal lattice vectors and compute the length of V-K in actual real coordinates (it will have units 1/m).
« Last Edit: February 16, 2012, 13:47 by Anders Blom »

Offline huckelbuckel

  • Heavy QuantumATK user
  • ***
  • Posts: 53
  • Country: in
  • Reputation: 0
    • View Profile
Re: Calculate fermi velocity
« Reply #7 on: February 17, 2012, 06:40 »
thanks for the explanation

Here is what i am getting:

h* = 6.5821 X 10-16
eps = 0.0001
E  (Energy at K-eps) = 0.002874eV

coordinates = (0.333233,0.333233,0)

converted into reciprocal coordinates for hexagonal  by taking     4(pi)
                                                                                      ------
                                                                                    a*(sqroot(3))

and got (21.7721,21.7721,0)

vector length between (0,0,0) and (21.7721,21.7721,0) =  30.786m-1

now vf =   0.002874
            --------------      gives  something of the order of 1011 which is very high!!
              30.786 X (h*)

am i doing this correctly???  ::)



Offline Anders Blom

  • QuantumATK Staff
  • Supreme QuantumATK Wizard
  • *****
  • Posts: 5575
  • Country: dk
  • Reputation: 96
    • View Profile
    • QuantumATK at Synopsys
Re: Calculate fermi velocity
« Reply #8 on: February 17, 2012, 09:17 »
The vector between K and K-eps*(1,1,0) is 4*pi*eps/(3*a)*(-1,0,0), where a is the graphene lattice constant a.

Inserting values I get vf=854766 m/s

Offline huckelbuckel

  • Heavy QuantumATK user
  • ***
  • Posts: 53
  • Country: in
  • Reputation: 0
    • View Profile
Re: Calculate fermi velocity
« Reply #9 on: February 17, 2012, 17:21 »
Mr Blom, You are getting gr8 result!..i am still trying to calculate 'dK' value correctly.I am out for one week..then i will again try to replicate the same.
Thanks again i have learnt a lot from you  :D

Offline Anders Blom

  • QuantumATK Staff
  • Supreme QuantumATK Wizard
  • *****
  • Posts: 5575
  • Country: dk
  • Reputation: 96
    • View Profile
    • QuantumATK at Synopsys
Re: Calculate fermi velocity
« Reply #10 on: February 17, 2012, 20:03 »
It's easy :)

K = (1/3,1/3,0) in units of the inverse lattice vectors GA=2pi/a*(1,1/sqrt(3),0) and GB=2pi/a*(1,-1/sqrt(3),0). Hence, K=4pi/3a*(1,1,0) in reciprocal Cartesian.
(We had LaTeX support on the Forum before, I lost it in an update... should bring it back.)

So, K-eps*(1,1,0)=(4pi/3a)*eps*(-1,0,0) and hence dK = 4pi/3a*eps.

Offline huckelbuckel

  • Heavy QuantumATK user
  • ***
  • Posts: 53
  • Country: in
  • Reputation: 0
    • View Profile
Re: Calculate fermi velocity
« Reply #11 on: February 23, 2012, 14:30 »
I used your formula and got these results:


Graphene:2.41 X 106 m/sec
Germanene: 1.373 X 106 m/sec
Silicene: 1.14 X 106 m/sec

What i should do to get more accurate results.In some technical papers velocity in silicene is 10 times slower than that of graphene . I am not getting that difference.??? ???

Offline Anders Blom

  • QuantumATK Staff
  • Supreme QuantumATK Wizard
  • *****
  • Posts: 5575
  • Country: dk
  • Reputation: 96
    • View Profile
    • QuantumATK at Synopsys
Re: Calculate fermi velocity
« Reply #12 on: February 23, 2012, 14:37 »
Do you mean experimental papers? Obviously there are lots of effects in an experiment that are not included in the models of the calculation. What you are predicting, provided your calculation is converged in all accuracy parameters like basis set, k-point sampling etc, is that the theoretical limit for the Fermi velocity in silicene is about 50% of that in graphene. If an experiment is showing a very different ratio between these two materials, it would indicate that it's easier to obtain pure graphene samples than silicene samples, or that silicene is more sensitive to phonon scattering or other effects not included in the model.
« Last Edit: February 23, 2012, 14:39 by Anders Blom »

Offline huckelbuckel

  • Heavy QuantumATK user
  • ***
  • Posts: 53
  • Country: in
  • Reputation: 0
    • View Profile
Re: Calculate fermi velocity
« Reply #13 on: February 24, 2012, 10:07 »
Can i write these values in my abstract/paper. Is that ok? or i again need to run calculations  by changing the K point or making a selection between GGA/LDA or choosing double zeta double polarised basis sets?Will it improve the accuracy of result?

I have taken 21X21X1 k points for silicene,graphene and germanene.Also i have taken double zeta single polarized basis set.

Can you suggest me something here   ;D  :D

Offline Anders Blom

  • QuantumATK Staff
  • Supreme QuantumATK Wizard
  • *****
  • Posts: 5575
  • Country: dk
  • Reputation: 96
    • View Profile
    • QuantumATK at Synopsys
Re: Calculate fermi velocity
« Reply #14 on: February 24, 2012, 10:32 »
Those are reasonable values in all cases.