... | @@ -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}
|
|

|
|
{{:jumu/pkkr1.png?300|}}
|
|

|
|
```
|
|

|
|
```{=mediawiki}
|
|
 |
|
{{:jumu/pkkr2.png?300|}}
|
|
|
|
```
|
|
|
|
```{=mediawiki}
|
|
|
|
{{:jumu/pkkr3.png?300|}}
|
|
|
|
```
|
|
|
|
```{=mediawiki}
|
|
|
|
{{:jumu/pkkr4.png?300|}}
|
|
|
|
``` |
|
|