• #### Empirical Pseudopotential Method: Obtaining charge density from eigenve

From Adam Hirst@21:1/5 to All on Fri Nov 4 16:07:59 2016
Dear all,

I'm not sure how active this group is (indeed, the last non-spam post
seems to be a good couple of years ago), but if I don't get a response
by Christmas (this issue isn't urgent) I think I'll just post the
question again to another newsgroup.

I'm in the process of trying to get back into using Usenet, and am
testing the waters of a couple of groups relevant to me with some
questions pertaining to loose threads from my past. So here we go:

---

A few years ago, I wrote a simple Fortran 2003 code to compute
bandstructures using the empirical pseudopotential method, and which
also has basic capabilities to also compute the density of states. It
was just a bit of fun, done in my free time between my Masters and my
PhD, but I was thinking about it the other day and decided to dig up my
old notes and see what was left to implement.

The algorithm of course constructs the matrix equation

H \psi = E \psi

where H depends on the wavevectors k, lattice vectors G, and
pseudopotentials, and solves for its eigenvalues and eigenvectors, the eigenvalues being the values of the energy bands at each k, plot-able as
a bandstructure if k is varied along the high symmetry directions.

The density of states is evaluated by computing the eigenvalues for a
set of 'special' (symmetry reduced inside the Brillouin Zone) k-points (weighted according to their symmetry), and then gaussian smearing to
convert the discrete values into an approximate co
• From Adam Hirst@21:1/5 to Adam Hirst on Fri Nov 4 16:08:41 2016
On 04/11/16 16:07, Adam Hirst wrote:
A few years ago, I wrote a simple Fortran 2003 code to compute
bandstructures using the empirical pseudopotential method, and which
also has basic capabilities to also compute the density of states. It
was just a bit of fun, done in my free time between my Masters and my
PhD, but I was thinking about it the other day and decided to dig up my
old notes and see what was left to implement.

Ah, I forgot to post the link:

https://github.com/aphirst/BandFTN

--- SoupGate-Win32 v1.05
* Origin: fsxNet Usenet Gateway (21:1/5)
• From Adam Hirst@21:1/5 to Adam Hirst on Fri Nov 4 17:08:55 2016
On 04/11/16 16:07, Adam Hirst wrote:
The algorithm of course constructs the matrix equation

H \psi = E \psi

where H depends on the wavevectors k, lattice vectors G, and pseudopotentials, and solves for its eigenvalues and eigenvectors, the eigenvalues being the values of the energy bands at each k, plot-able as
a bandstructure if k is varied along the high symmetry directions.

Another correction: the matrix equation solved for seems to not use the
vector \psi, but rather the vector A made up of the coefficients a_{g'},
each of which is part of a plane-wave expansion term from

\psi_k(r) = e^{i k.r} u_k(r)

where

u_k(r) = \sum_{g'} a_{g'}(k) e^{i g'.r}

and thus

\psi_k(r) = \sum_{g'} a_{g'}(k) e^{i(k+g').r}

g seems to refer to the vectors used for the potential expansion
(vertical of the H matrix), and g' for the wavefunction expansion
(horizontal of the H matrix).

The A vector appears essentially to be \psi with the plane wave
components factored out.

Each eigenvector will thus be a list of coefficients which can
presumably be combined with the corresponding plane waves (the g' being
in whatever order I coded them to be, which should be in increasing
magnitude), the combination of which ought to be the \psi, but I remain ignorant of how one is meant to then convert this into a function of r
(i.e. of 3D space)...

--- SoupGate-Win32 v1.05
* Origin: fsxNet Usenet Gateway (21:1/5)