Update theory authored by Philipp Rüssmann's avatar Philipp Rüssmann
...@@ -2,17 +2,17 @@ ...@@ -2,17 +2,17 @@
The computation of Fermi surfaces, or band structures can be easily done The computation of Fermi surfaces, or band structures can be easily done
setting the *RUNOPTION* *qdos* (see [Qdos tutorial](jumu/qdos)). The "qdos approach" is based on the scan of the k-space for a given energy (or different energy values if we are interested on band-structure calculations) by the spectral function setting the *RUNOPTION* *qdos* (see [Qdos tutorial](jumu/qdos)). The "qdos approach" is based on the scan of the k-space for a given energy (or different energy values if we are interested on band-structure calculations) by the spectral function
: $`\rho(E+i\eta,k) = \frac{\eta}{\pi}\frac{1}{(E-\epsilon\_k)\^2 + \eta\^2}`$. : $`\rho(E+i\eta,k) = \frac{\eta}{\pi}\frac{1}{(E-\epsilon_k)^2 + \eta^2}`$.
So the density is written as a Lorentzian which So the density is written as a Lorentzian which
reaches its maximum $`\frac{1}{\eta\pi}`$ at $`E=\epsilon\_{\vec{k},\sigma}`$. All the maximums of this spectral reaches its maximum $`\frac{1}{\eta\pi}`$ at $`E=\epsilon_{\vec{k},\sigma}`$. All the maximums of this spectral
function constitute the Fermi surface (at $`E=E\_f`$). function constitute the Fermi surface (at $`E=E_f`$).
Even if this method is straightforward, it has some inconveniences. Even if this method is straightforward, it has some inconveniences.
First in order to obtain accurate dispersions fine $`(\vec{k},E)`$ First in order to obtain accurate dispersions fine $`(\vec{k},E)`$
meshes must be chosen, which increases computation time. Also a precise meshes must be chosen, which increases computation time. Also a precise
Fermi surface computation requires a small $`\eta`$ which increases as Fermi surface computation requires a small $`\eta`$ which increases as
well the computational effort. Finally because of the spreading around well the computational effort. Finally because of the spreading around
$`E=\epsilon\_{\vec{k},\sigma}`$ the exact value of $`\vec{k}`$ is $`E=\epsilon_{\vec{k},\sigma}`$ the exact value of $`\vec{k}`$ is
not known which is a necessary input data for further calculations, not known which is a necessary input data for further calculations,
particularly transport ones. However, the \'qdos method\' allows to have particularly transport ones. However, the \'qdos method\' allows to have
a first glance on the Fermi surface, before launching more accurate a first glance on the Fermi surface, before launching more accurate
...@@ -23,36 +23,36 @@ computations with the PKKprime code. ...@@ -23,36 +23,36 @@ computations with the PKKprime code.
The goal is to solve numerically the secular equation of KKR : The goal is to solve numerically the secular equation of KKR :
$`\|\underline{\underline{M}}(\vec{k},E)\|=0`$ where $`\|\underline{\underline{M}}(\vec{k},E)\|=0`$ where
$`\underline{\underline{M}}(\vec{k},E)=\delta\_{\Lambda\Lambda\'}-\sum\limits\_{\Lambda*} $`\underline{\underline{M}}(\vec{k},E)=\delta_{\Lambda\Lambda\'}-\sum\limits_{\Lambda*}
g\_{\Lambda\Lambda*}(\vec{k};E) t\_{\Lambda\'\'\Lambda\'}(E)`$ and g_{\Lambda\Lambda*}(\vec{k};E) t_{\Lambda\'\'\Lambda\'}(E)`$ and
$`\ \Lambda=(L,\sigma)`$. $`\ \Lambda=(L,\sigma)`$.
In most cases this equation can\'t be solved analytically so a "trick" In most cases this equation can\'t be solved analytically so a "trick"
is done. This trick consists on rather solving: is done. This trick consists on rather solving:
$`\underline{\underline{M}}(\vec{k},E) \underline{c\_\nu} = $`\underline{\underline{M}}(\vec{k},E) \underline{c_\nu} =
\lambda\_\nu(\vec{k},E) \underline{c\_\nu}`$ \lambda_\nu(\vec{k},E) \underline{c_\nu}`$
and find the and find the
eigenvalue which satisfies the following condition eigenvalue which satisfies the following condition
$`\lambda\_\nu(\vec{k},E)=0`$. $`\lambda_\nu(\vec{k},E)=0`$.
Thus the objective is to scan the Thus the objective is to scan the
k-space, for a fixed energy $`E`$, and find k-space, for a fixed energy $`E`$, and find
$`\min\limits\_{\vec{k},\nu}(\|\lambda\_\nu(\vec{k},E)\|)`$. $`\min\limits_{\vec{k},\nu}(\|\lambda_\nu(\vec{k},E)\|)`$.
## Qualitative explanation of the iterative method ## Qualitative explanation of the iterative method
The main feature of this method is that the Brillouin zone, will be The main feature of this method is that the Brillouin zone, will be
divided into cubes and into each cube the secular equation divided into cubes and into each cube the secular equation
$`\underline{\underline{M}}(\vec{k},E) \underline{c\_\nu} = $`\underline{\underline{M}}(\vec{k},E) \underline{c_\nu} =
\lambda\_\nu(\vec{k},E) \underline{c\_\nu}`$ for \lambda_\nu(\vec{k},E) \underline{c_\nu}`$ for
$`\lambda\_\nu(\vec{k},E)=0`$ will be solved numerically. However, $`\lambda_\nu(\vec{k},E)=0`$ will be solved numerically. However,
scanning the k-space can be a heavy computational task, especially for scanning the k-space can be a heavy computational task, especially for
3D Brillouin zones. That\'s why an iterative method is done in order to 3D Brillouin zones. That\'s why an iterative method is done in order to
refine the mesh and keep in memory only the zones crossed by a band. So refine the mesh and keep in memory only the zones crossed by a band. So
in a first step the algorithm will quad the Brillouin zone, into in a first step the algorithm will quad the Brillouin zone, into
tetrahedras (triangles in 2D), and then evaluate if along the edges we tetrahedras (triangles in 2D), and then evaluate if along the edges we
can find a solution satisfying $`\|\lambda\_\nu(\vec{k},E)\|\<a\_n`$, can find a solution satisfying $`\|\lambda_\nu(\vec{k},E)\|\<a_n`$,
where $`a\_n`$ is a given accuracy. where $`a_n`$ is a given accuracy.
If a solution is found along a tetrahedra edges, the mesh is refined in If a solution is found along a tetrahedra edges, the mesh is refined in
this region. Otherwise, we don\'t take any more into account this this region. Otherwise, we don\'t take any more into account this
...@@ -61,24 +61,16 @@ desired cubes in the Brillouin zone ((Total cubes number = cubes with ...@@ -61,24 +61,16 @@ desired cubes in the Brillouin zone ((Total cubes number = cubes with
intersect the bands and cubes which doesn\'t intersect the bands)). intersect the bands and cubes which doesn\'t intersect the bands)).
Once the mesh is refined to a certain accuracy, the research of Once the mesh is refined to a certain accuracy, the research of
$`\vec{k}`$ that minimize $`\lambda\_\nu(\vec{k},E)`$ start in the $`\vec{k}`$ that minimize $`\lambda_\nu(\vec{k},E)`$ start in the
cubes which are crossed by a band (found in the previous step). For cubes which are crossed by a band (found in the previous step). For
doing so a dichotomy procedure is employed: doing so a dichotomy procedure is employed:
` - The spectrum of $`\underline{\underline{M}}(\vec{k},E)`$ is calculated for discrete k-points in the tetrahedra edges.`\ - The spectrum of $`\underline{\underline{M}}(\vec{k},E)`$ is calculated for discrete k-points in the tetrahedra edges.
` - The local $`\Omega_k`$ region where the transition $`\lambda_\nu(\vec{k},E) > 0`$ -> $`\lambda_\nu(\vec{k},E) < 0`$ is kept in memory. So by the Bijection Theorem, $`\exists \ \vec{k}_0 \in \Omega_k \ , \ \lambda_\nu(\vec{k}_0,E)=0`$.`\ - The local $`\Omega_k`$ region where the transition $`\lambda_\nu(\vec{k},E) > 0 \rightarrow \lambda_\nu(\vec{k},E) < 0`$ is kept in memory. So by the Bijection Theorem, $`\exists \vec{k}_0 \in \Omega_k, \lambda_\nu(\vec{k}_0,E)=0`$.
` - The k-mesh in $`\Omega_k`$ is refined.`\ - The k-mesh in $`\Omega_k`$ is refined.
` - The same steps are repeated until the given accuracy is reached, or the maximal number of steps is exhausted.` - The same steps are repeated until the given accuracy is reached, or the maximal number of steps is exhausted.
```{=mediawiki} ![pkkr1](uploads/a9da9acec1072936dfb60b8c7daccdaa/pkkr1.png)
{{:jumu/pkkr1.png?300|}} ![pkkr2](uploads/2879acff3105852c7873b2f3df4f4afd/pkkr2.png)
``` ![pkkr3](uploads/be7bdcee93845372d4131485bb229749/pkkr3.png)
```{=mediawiki} ![pkkr4](uploads/aca21b458af178f369dd9a81287e6597/pkkr4.png)
{{:jumu/pkkr2.png?300|}}
```
```{=mediawiki}
{{:jumu/pkkr3.png?300|}}
```
```{=mediawiki}
{{:jumu/pkkr4.png?300|}}
```