Author Topic: Fermi surface  (Read 6444 times)

0 Members and 1 Guest are viewing this topic.

Offline qiuweicheng

  • Heavy QuantumATK user
  • ***
  • Posts: 38
  • Country: cn
  • Reputation: 0
    • View Profile
Fermi surface
« on: January 3, 2017, 06:38 »
How to draw the picture of Fermi surface using ATK?  the picture is shown in the attachment.

a script maybe better

Thank you very much!

Offline Daniele Stradi

  • Supreme QuantumATK Wizard
  • *****
  • Posts: 286
  • Country: dk
  • Reputation: 3
    • View Profile
Re: Fermi surface
« Reply #1 on: January 4, 2017, 09:50 »
Fermi surface plotting will be available starting from ATK 2017.

Offline qiuweicheng

  • Heavy QuantumATK user
  • ***
  • Posts: 38
  • Country: cn
  • Reputation: 0
    • View Profile
Re: Fermi surface
« Reply #2 on: January 6, 2017, 04:14 »
Thank you for your reply. We just Just bought the ATK 2016,  it is failure to calculate the fermi surface. However, the analysis  of  fermi surface is very important for us,  could you offer a relevant script for me please?

Offline Anders Blom

  • QuantumATK Staff
  • Supreme QuantumATK Wizard
  • *****
  • Posts: 5578
  • Country: dk
  • Reputation: 97
    • View Profile
    • QuantumATK at Synopsys
Re: Fermi surface
« Reply #3 on: January 6, 2017, 10:14 »
No, as the previous reply said it will be available in ATK 2017.

Offline Anders Blom

  • QuantumATK Staff
  • Supreme QuantumATK Wizard
  • *****
  • Posts: 5578
  • Country: dk
  • Reputation: 97
    • View Profile
    • QuantumATK at Synopsys
Re: Fermi surface
« Reply #4 on: January 6, 2017, 10:15 »
However, I don't think you need a traditional 3D Fermi surface functionality to make such a plot as shown in the paper. You just need to compute the 2D band structure in the kxky plane and make some 2D contour plots, pretty straightforward.

Offline qiuweicheng

  • Heavy QuantumATK user
  • ***
  • Posts: 38
  • Country: cn
  • Reputation: 0
    • View Profile
Re: Fermi surface
« Reply #5 on: January 7, 2017, 11:26 »
In general,  we compute the band structure around the Brillouin zone. But,how to compute the 2D band structure in the kxky plane?

Offline zh

  • Supreme QuantumATK Wizard
  • *****
  • Posts: 1141
  • Reputation: 24
    • View Profile
Re: Fermi surface
« Reply #6 on: January 8, 2017, 12:36 »
Sample the k points in a given plane, and then calculate their eigenvalues.

Offline Jess Wellendorff

  • QuantumATK Staff
  • Supreme QuantumATK Wizard
  • *****
  • Posts: 933
  • Country: dk
  • Reputation: 29
    • View Profile
Re: Fermi surface
« Reply #7 on: January 9, 2017, 13:15 »
Have a look at this section in our tutorial on the Bi2Se3 topological indulator: http://docs.quantumwise.com/tutorials/topological_insulator_bi2se3/topological_insulator_bi2se3.html#fermi-surface-and-spin-directions The script "fermi_surface.py" gives an example of how to instruct the Bandstructure analysis object to sample a grid of k-points:
Code
# -------------------------------------------------------------
# Reading Bi2Se3 slab configuration
# -------------------------------------------------------------
configuration = nlread('Bi2Se3_slab.nc', BulkConfiguration)[1]
lattice = configuration.bravaisLattice()

# -------------------------------------------------------------
# Create cartesian k-grid around the Gamma point
# -------------------------------------------------------------
# Generate a k-point grid in Cartesian kx,ky around kG.
# Ensure to have a point at G by choosing Nk odd!
Nk = 51
k_max = 0.1
x = numpy.linspace(-k_max, k_max, Nk)
y = numpy.linspace(-k_max, k_max, Nk)
kXkY = numpy.array(list(itertools.product(y,x)))
kXkYkZ = numpy.vstack((kXkY[:,0], kXkY[:,1], numpy.array([0,]*len(kXkY)))).transpose()

# Convert to fractional kx,ky coordinates for evaluation.
kAkB = cartesian2fractional(kXkYkZ*Ang**-1, lattice.reciprocalVectors())

# -------------------------------------------------------------
# Compute eigenenergies in these k-points
# -------------------------------------------------------------
bandstructure = Bandstructure(configuration, kpoints=kAkB)

# -------------------------------------------------------------
# Read the bandstructure eigenenergies and kpoints
# -------------------------------------------------------------
energies = bandstructure.evaluate().inUnitsOf(eV)
kpoints_fractional = bandstructure.kpoints()
tmp = fractional2cartesian(kpoints_fractional, lattice.reciprocalVectors())
kpoints_cartesian = tmp.inUnitsOf(Angstrom**-1)

Offline qiuweicheng

  • Heavy QuantumATK user
  • ***
  • Posts: 38
  • Country: cn
  • Reputation: 0
    • View Profile
Re: Fermi surface
« Reply #8 on: January 10, 2017, 05:58 »
I understand, thank you very much

Offline qiuweicheng

  • Heavy QuantumATK user
  • ***
  • Posts: 38
  • Country: cn
  • Reputation: 0
    • View Profile
Re: Fermi surface
« Reply #9 on: January 11, 2017, 06:12 »
Another small problem,according to this fermi surface script, we can get the shape of constant energy surface in brillouin  zone. But, we can't get the information of  k-resolution  DOS in the  constant energy surface shape. More important,  we want to get the k-resolution  DOS in  brillouin  zone for  an energy. Could you add the related Dos information in the constant energy surface shape for the script? we don't know how to add this information.

Offline Ulrik G. Vej-Hansen

  • QuantumATK Staff
  • Supreme QuantumATK Wizard
  • *****
  • Posts: 426
  • Country: dk
  • Reputation: 9
    • View Profile
Re: Fermi surface
« Reply #10 on: January 11, 2017, 14:47 »
I apologize, but we do not understand your question. Could you please clarify and/or provide an example of the kind of figure you would like to create?

Offline qiuweicheng

  • Heavy QuantumATK user
  • ***
  • Posts: 38
  • Country: cn
  • Reputation: 0
    • View Profile
Re: Fermi surface
« Reply #11 on: January 12, 2017, 05:54 »
It is just the projection of  the density of states (DOS) onto a equal energy surface, such as E=Ef (Fermi surface).

Offline Daniele Stradi

  • Supreme QuantumATK Wizard
  • *****
  • Posts: 286
  • Country: dk
  • Reputation: 3
    • View Profile
Re: Fermi surface
« Reply #12 on: January 12, 2017, 10:56 »
I guess that what you mean is to have the weights of the individual k-points, as by definition the DOS is a weighed integral over the Brillouin zone.

For a given Monkhorst-Pack grid, you can retrieve (i) all the k-points before symmetry reduction and (ii) all the corresponding weights by querying the  MonkhorstPackGrid class with (i) allKpoints and (ii) allKpointsWeights:

http://docs.quantumwise.com/manuals/Types/MonkhorstPackGrid/MonkhorstPackGrid.html