QuantumATK Forum

QuantumATK => General Questions and Answers => Topic started by: qiuweicheng on January 3, 2017, 06:38

Title: Fermi surface
Post by: qiuweicheng 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!
Title: Re: Fermi surface
Post by: Daniele Stradi on January 4, 2017, 09:50
Fermi surface plotting will be available starting from ATK 2017.
Title: Re: Fermi surface
Post by: qiuweicheng 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?
Title: Re: Fermi surface
Post by: Anders Blom on January 6, 2017, 10:14
No, as the previous reply said it will be available in ATK 2017.
Title: Re: Fermi surface
Post by: Anders Blom 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.
Title: Re: Fermi surface
Post by: qiuweicheng 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?
Title: Re: Fermi surface
Post by: zh on January 8, 2017, 12:36
Sample the k points in a given plane, and then calculate their eigenvalues.
Title: Re: Fermi surface
Post by: Jess Wellendorff 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 (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)
Title: Re: Fermi surface
Post by: qiuweicheng on January 10, 2017, 05:58
I understand, thank you very much
Title: Re: Fermi surface
Post by: qiuweicheng 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.
Title: Re: Fermi surface
Post by: Ulrik G. Vej-Hansen 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?
Title: Re: Fermi surface
Post by: qiuweicheng 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).
Title: Re: Fermi surface
Post by: Daniele Stradi 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