|
|
|
###### Perform Fermi surfaces calculations using pkkr code {#perform_fermi_surfaces_calculations_using_pkkr_code}
|
|
|
|
|
|
|
|
The computation of Fermi surfaces, or band structures can be easily done
|
|
|
|
setting the *RUNOPTION* *qdos* (see [Qdos
|
|
|
|
tutorial](jumu:qdos "wikilink")). 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}\$. \\\\ 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
|
|
|
|
function constitute the Fermi surface (at \$E=E\_f\$).
|
|
|
|
|
|
|
|
Even if this method is straightforward, it has some inconveniences.
|
|
|
|
First in order to obtain accurate dispersions fine \$(\\vec{k},E)\$
|
|
|
|
meshes must be chosen, which increases computation time. Also a precise
|
|
|
|
Fermi surface computation requires a small \$\\eta\$ which increases as
|
|
|
|
well the computational effort. Finally because of the spreading around
|
|
|
|
\$E=\\epsilon\_{\\vec{k},\\sigma}\$ the exact value of \$\\vec{k}\$ is
|
|
|
|
not known which is a necessary input data for further calculations,
|
|
|
|
particularly transport ones. However, the \'qdos method\' allows to have
|
|
|
|
a first glance on the Fermi surface, before launching more accurate
|
|
|
|
computations with the pkkr code.
|
|
|
|
|
|
|
|
##### Fermi surface calculation {#fermi_surface_calculation}
|
|
|
|
|
|
|
|
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)=\\delta\_{\\Lambda\\Lambda\'}-\\sum\\limits\_{\\Lambda*}
|
|
|
|
g\_{\\Lambda\\Lambda*}(\\vec{k};E) t\_{\\Lambda\'\'\\Lambda\'}(E)\$ and
|
|
|
|
\$\\ \\Lambda=(L,\\sigma)\$.
|
|
|
|
|
|
|
|
In most cases this equation can\'t be solved analytically so a \"trick\"
|
|
|
|
is done. This trick consists on rather solving:\\\\
|
|
|
|
\$\\underline{\\underline{M}}(\\vec{k},E) \\underline{c\_\\nu} =
|
|
|
|
\\lambda\_\\nu(\\vec{k},E) \\underline{c\_\\nu}\$\\\\ and find the
|
|
|
|
eigenvalue which satisfies the following condition
|
|
|
|
\$\\lambda\_\\nu(\\vec{k},E)=0\$.\\\\ Thus the objective is to scan the
|
|
|
|
k-space, for a fixed energy \$E\$, and find
|
|
|
|
\$\\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
|
|
|
|
divided into cubes and into each cube the secular equation
|
|
|
|
\$\\underline{\\underline{M}}(\\vec{k},E) \\underline{c\_\\nu} =
|
|
|
|
\\lambda\_\\nu(\\vec{k},E) \\underline{c\_\\nu}\$ for
|
|
|
|
\$\\lambda\_\\nu(\\vec{k},E)=0\$ will be solved numerically. However,
|
|
|
|
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
|
|
|
|
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
|
|
|
|
tetrahedras (triangles in 2D), and then evaluate if along the edges we
|
|
|
|
can find a solution satisfying \$\|\\lambda\_\\nu(\\vec{k},E)\|\<a\_n\$,
|
|
|
|
where \$a\_n\$ is a given accuracy.
|
|
|
|
|
|
|
|
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
|
|
|
|
spatial region. This step is repeated until we reach the final number of
|
|
|
|
desired cubes in the Brillouin zone ((Total cubes number = cubes with
|
|
|
|
intersect the bands and cubes which doesn\'t intersect the bands)).
|
|
|
|
|
|
|
|
Once the mesh is refined to a certain accuracy, the research of
|
|
|
|
\$\\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
|
|
|
|
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 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 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.`
|
|
|
|
|
|
|
|
```{=mediawiki}
|
|
|
|
{{:jumu:pkkr1.png?300|}}
|
|
|
|
```
|
|
|
|
```{=mediawiki}
|
|
|
|
{{:jumu:pkkr2.png?300|}}
|
|
|
|
```
|
|
|
|
```{=mediawiki}
|
|
|
|
{{:jumu:pkkr3.png?300|}}
|
|
|
|
```
|
|
|
|
```{=mediawiki}
|
|
|
|
{{:jumu:pkkr4.png?300|}}
|
|
|
|
``` |