3D and 2D reciprocal lattice vectors (Python example)

When I started using Density Functional Theory and, even more, when trying to re-create its results in a meaningful piece of material, like a nanoribbon or a nanowire, a lot of the problems came during geometry creation. This is natural, as DFT is a theory to derive quantities like eigenenergies, in a crystal lattice with periodicity. But when trying to switch to a model that is finite in one or more directions, you have to start a sort of mix and match procedure.

During this time (and assuming you are not the one who writes the software), visualizing vectors is maybe the less useful thing to do. Still, there are cases where you need it in order to get a better understanding of things, like visualizing Weyl points.

Continue reading

List of simulators

It is with excitement that I update this almost four-years-old post now. After so many years of working in computational electronics, I have finally seen all the things that I was expecting to be realised, and I expect even more to come mainly related to accelerated materials discovery and big databases.

I provide here, a list of the software (mostly open source) that I use to find all the intriguing things that a life of a scientist has. This list is mainly about electronic devices (solid state physics) from first principles, but that is not the only field where DFT has expanded it roots. There are plenty of chemistry software out there that have recently expanded their capabilities beyond anything we’ve seen in the past.

Electronic structure calculations:

First principles electronic strcutre and/or transport and other phenomena:

Continue reading

Relative distances between high-symmetry points in the Brillouin Zone

One common situation when calculating the band structure of a material using Density Functional Theory (DFT) is deriving the relative distances between points in the Brillouin Zone (BZ). The DFT tool will use the number of points defined for each direction in the BZ to produce the eigenvalues.  Abinit calls this “circuit”, and luckily, can be set to calculate it automatically by defining the length (or points) of the smallest distance using the command “ndivsm”. This will produce something like the following in the output:

0.00000 0.00000 0.00000 ==> 0.33333 0.33333 0.00000 ( ndiv : 16 )
0.33333 0.33333 0.00000 ==> 0.50000 0.00000 0.00000 ( ndiv : 8 )
0.50000 0.00000 0.00000 ==> 0.00000 0.00000 0.00000 ( ndiv : 14 )

which is for the distance between four points, where the last is the same as the first (Γ->Κ->Μ->Γ).

Alternatively,  since I use Quantum Epsresso, and it requires to set the distances between points yourself, I use the ones that Wannier90 calculates, so that I can make a direct comparison between the two band structures.

Continue reading

Tools for atomic structures

This is another list, this time for the tools used to create supercells when doing DFT and related simulations.

  • XCrySDen (Linux)
  • VESTA program (both Linux and windows)
  • Utility “genlat.f” of DL_POLY
  • ‘Spacegroup’ program in EXCITING package to generate the supercell, use ‘fropho’  to check the symmetry’
  • PHON code
  • QuantumWide Virtual NanoLab, VNL. (Linux, Windows, Mac) Free for academics.