From 3559a47943407be6d970379e9e3a690b9b6527f1 Mon Sep 17 00:00:00 2001 From: Junfeng Qiao Date: Sat, 17 Feb 2024 16:22:56 +0100 Subject: [PATCH] Pass markdownlint on user guide wannier90 --- .markdownlint.yaml | 1 + .pre-commit-config.yaml | 2 +- docs/docs/user_guide/appendices/utilities.md | 29 +- docs/docs/user_guide/postw90/berry.md | 47 +- docs/docs/user_guide/postw90/boltzwann.md | 47 +- docs/docs/user_guide/postw90/postw90params.md | 4 +- docs/docs/user_guide/wannier90/files.md | 1058 +++++++++-------- .../docs/user_guide/wannier90/library_mode.md | 11 +- docs/docs/user_guide/wannier90/methodology.md | 7 +- docs/docs/user_guide/wannier90/parameters.md | 101 +- docs/docs/user_guide/wannier90/postproc.md | 237 ++-- docs/docs/user_guide/wannier90/projections.md | 104 +- .../user_guide/wannier90/sample_inputs.md | 268 +++-- docs/docs/user_guide/wannier90/transport.md | 14 +- docs/logos/README.md | 6 +- 15 files changed, 1043 insertions(+), 893 deletions(-) diff --git a/.markdownlint.yaml b/.markdownlint.yaml index 1b209d24..9395b58c 100644 --- a/.markdownlint.yaml +++ b/.markdownlint.yaml @@ -17,3 +17,4 @@ MD033: - sub - a - sup + - code diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 844a15aa..e9afd05c 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -35,4 +35,4 @@ repos: rev: v0.12.1 hooks: - id: markdownlint-cli2 - args: ['--fix'] + args: ['--fix', 'docs/**.md'] diff --git a/docs/docs/user_guide/appendices/utilities.md b/docs/docs/user_guide/appendices/utilities.md index d461b54e..1f967d17 100644 --- a/docs/docs/user_guide/appendices/utilities.md +++ b/docs/docs/user_guide/appendices/utilities.md @@ -1,10 +1,9 @@ - -## Utilities +# Utilities The `wannier90` code is shipped with a few utility programs that may be useful in some occasions. In this chapter, we describe their use. -### `kmesh.pl` +## `kmesh.pl` The `wannier90` code requires the definition of a full Monkhorst--Pack grid of $k$ points. In the input file the size of this mesh is given by @@ -55,7 +54,7 @@ allows to provide the $k$ point coordinates with the accuracy required by `wannier90`, and moreover it makes sure that the $k$ grid used in the ab-initio code and in `wannier90` are the same. -### `w90chk2chk.x` +## `w90chk2chk.x` During the calculation of the Wannier functions, `wannier90` produces a `.chk` file that contains some information to restart the calculation. @@ -125,7 +124,7 @@ A typical use is the following: 5. Run the `postw90` code. -### `PL_assessment` +## `PL_assessment` The function of this utility is to assess the length of a principal layer (in the context of a Landauer-Buttiker quantum conductance @@ -171,7 +170,7 @@ four columns 4. Maximum absolute value in (2) -### `w90vdw` +## `w90vdw` This utility provides an implementation of a method for calculating van der Waals energies based on the idea of density decomposition via MLWFs. @@ -187,7 +186,7 @@ For further details of this program, please see the documentation in `utility/w90vdw/doc/` and the related examples in `utility/w90vdw/examples/`. -### `w90pov` +## `w90pov` An utility to create Pov files (to render the Wannier functions using the PovRay utility) is provided inside `utility/w90pov`. @@ -195,7 +194,7 @@ the PovRay utility) is provided inside `utility/w90pov`. Please refer to the documentation inside `utility/w90pov/doc` for more information. -### `k_mapper.py` +## `k_mapper.py` The `wannier90` code requires the definition of a full Monkhorst--Pack grid of $\mathbf{k}$-vectors, which can be obtained by means of the @@ -214,7 +213,7 @@ path/k_mapper.py nx ny nz QE_nscf_output where `path` is the path of `utility` folder, `QE_nscf_output` is the path of the QE nscf output file given to Yambo. -### `gw2wannier90.py` +## `gw2wannier90.py` This utility allows to sort in energy the input data of `wannier90` (e.g. overlap matrices and energy eigenvalues). `gw2wannier90.py` allows @@ -231,9 +230,11 @@ where `path` is the path of Available options are: - mmn, amn, spn, unk, uhu, uiu, - spn_formatted, unk_formatted, uhu_formatted, uiu_formatted, - write_formatted +```bash title="Terminal" +mmn, amn, spn, unk, uhu, uiu, +spn_formatted, unk_formatted, uhu_formatted, uiu_formatted, +write_formatted +``` If no options are specified, all the files (`mmn, amn, spn, UNK, uHu, uIu`) are considered. @@ -248,7 +249,7 @@ In default, the output format is the same as the input format. To generate formatted files with unformatted input, use option: `write_formatted` -### `w90spn2spn.x` +## `w90spn2spn.x` The interface between ab-initio code and `wannier90` (e.g. `pw2wannier90.x`) can produce a `.spn` file that is used by `postw90` to @@ -326,7 +327,7 @@ rerun `pw2wannier90.x`, then `w90spn2spn.x` can be useful. Also, once a if `spn_formatted` is set to `true` in `postw90` input file `seedname.win`. -### `write_pdwf_projectors.py` +## `write_pdwf_projectors.py` A python script to extract projectors from a `UPF` file and write them into a `pw2wannier90.x`-recognizable `dat` file, which can be used to diff --git a/docs/docs/user_guide/postw90/berry.md b/docs/docs/user_guide/postw90/berry.md index d86cedec..106d495f 100644 --- a/docs/docs/user_guide/postw90/berry.md +++ b/docs/docs/user_guide/postw90/berry.md @@ -7,7 +7,7 @@ curvature, orbital magnetization and spin Hall conductivity are also called when `kpath = true` and `kpath_task = {curv,morb,shc}`, or when `kslice = true` and `kslice_task = {curv,morb,shc}`. -### Background: Berry connection and curvature +## Background: Berry connection and curvature The Berry connection is defined in terms of the cell-periodic Bloch states $\vert u_{n{\bf k}}\rangle=e^{-i{\bf k}\cdot{\bf r}}\vert @@ -56,7 +56,7 @@ $$ \end{equation} $$ -### `berry_task=kubo`: optical conductivity and joint density of states +## `berry_task=kubo`: optical conductivity and joint density of states The Kubo-Greenwood formula for the optical conductivity of a crystal in the independent-particle approximation reads @@ -167,8 +167,8 @@ f_{n{\bf k}}(1-f_{m{\bf k}}) \end{equation} $$ -Equations $\eqref{eq:lorentzian}$--$\eqref{eq:jdos}$ contain the parameter $\eta$, whose value can be -chosen using the keyword +Equations $\eqref{eq:lorentzian}$--$\eqref{eq:jdos}$ contain the parameter +$\eta$, whose value can be chosen using the keyword `[kubo_]smr_fixed_en_width`. Better results can often be achieved by adjusting the value of $\eta$ for each pair of states, i.e., $\eta\rightarrow \eta_{nm\bf k}$. This is done as follows (see @@ -203,7 +203,7 @@ $$ whose independent components are written as a function of frequency onto nine separate files. -### `berry_task=ahc`: anomalous Hall conductivity +## `berry_task=ahc`: anomalous Hall conductivity The antisymmetric tensor $\sigma^{\rm A}_{\alpha\beta}$ is odd under time reversal, and therefore vanishes in non-magnetic systems, while in @@ -260,7 +260,7 @@ Eq. $\eqref{eq:ahc}$ can be evaluated by Wannier interpolation as described in Refs. [@wang-prb06; @lopez-prb12], with no truncation involved. -### `berry_task=morb`: orbital magnetization +## `berry_task=morb`: orbital magnetization The ground-state orbital magnetization of a crystal is given by [@xiao-rmp10; @ceresoli-prb06] @@ -288,7 +288,7 @@ Note that the definition of ${\bf M}^{\rm orb}({\bf k})$ used here differs by a factor of $-1/2$ from the one in Eq. (97) and Fig. 2 of that work. -### `berry_task=shc`: spin Hall conductivity {#sec:shc} +## `berry_task=shc`: spin Hall conductivity {#sec:shc} The Kubo-Greenwood formula for the intrinsic spin Hall conductivity (SHC) of a crystal in the independent-particle approximation reads @@ -328,8 +328,10 @@ elements are evaluated, $$ \begin{equation} -\langle u_{n{\bf k}}\vert\sigma_\gamma H_{\bf k}\vert u_{m{\bf k}+{\bf b}}\rangle, -\langle u_{n{\bf k}}\vert\sigma_\gamma \vert u_{m{\bf k}+{\bf b}}\rangle, \gamma = x, y, z +\langle u_{n{\bf k}}\vert\sigma_\gamma H_{\bf k} +\vert u_{m{\bf k}+{\bf b}}\rangle, +\langle u_{n{\bf k}}\vert \sigma_\gamma \vert u_{m{\bf k}+{\bf b}}\rangle, +\gamma = x, y, z \end{equation} $$ @@ -415,7 +417,7 @@ or > principles using maximally localized Wannier functions*, > Phys. Rev. B. 99, 235113 (2019), DOI:10.1103/PhysRevB.99.235113. -### `berry_task=sc`: shift current +## `berry_task=sc`: shift current The shift-current contribution to the second-order response is characterized by a frequency-dependent third-rank tensor [@sipe-prb00] @@ -476,7 +478,7 @@ the keyword `[kubo_]adpt_smr`. Please cite Ref. [@ibanez-azpiroz_ab_2018] when publishing shift-current results using this method. -### `berry_task=kdotp`: $k\cdot p$ coefficients {#sec:kdotp} +## `berry_task=kdotp`: $k\cdot p$ coefficients {#sec:kdotp} Consider a Hamiltonian @@ -549,8 +551,10 @@ where $a,b=x,y,z$, and $$ \begin{equation} \begin{aligned} -&H_{a}^{(W)}(0)=\left. \dfrac{\partial H^{(W)}(\bm{k})}{\partial k_{a}}\right\rvert_{\bm{k}=0}\\ -&H_{ab}^{(W)}(0)=\left. \dfrac{\partial^{2} H^{(W)}(\bm{k})}{\partial k_{a}\partial k_{b}}\right\rvert_{\bm{k}=0} +&H_{a}^{(W)}(0)=\left. \dfrac{\partial H^{(W)}(\bm{k})}{\partial k_{a}} +\right\rvert_{\bm{k}=0}\\ +&H_{ab}^{(W)}(0)=\left. \dfrac{\partial^{2} H^{(W)}(\bm{k})} +{\partial k_{a}\partial k_{b}}\right\rvert_{\bm{k}=0} \end{aligned} \end{equation} $$ @@ -562,8 +566,10 @@ $H(\bm{k})$, $$ \begin{equation} \label{eq:Hbar} -H(\bm{k})=\overbrace{\overline{H}}^{H^{0}} + \overbrace{\sum_{a}\overline{H}_{a}k_{a} -+\dfrac{1}{2}\sum_{ab}\overline{H}_{ab}k_{a}k_{b}}^{H^{\prime}} + \mathcal{O}(k^{3}), +H(\bm{k})=\overbrace{\overline{H}}^{H^{0}} + +\overbrace{\sum_{a}\overline{H}_{a}k_{a} ++\dfrac{1}{2}\sum_{ab}\overline{H}_{ab}k_{a}k_{b}}^{H^{\prime}} + +\mathcal{O}(k^{3}), \end{equation} $$ @@ -621,13 +627,14 @@ The implementation in `wannier90` follows the scheme proposed in Ref. [@ibanez-azpiroz-ArXiv2019], and outputs $\overline{H}_{mm'}$ in `seedname-kdotp_0.dat`, $\left(\overline{H}_{a}\right)_{mm'}$ in `seedname-kdotp_1.dat`, and -$\left[\left(\overline{H}_{ab}\right)_{mm'} + \left({T}_{ab}\right)_{mm'}\right]/2$ +$\left[\left(\overline{H}_{ab}\right)_{mm'} + +\left({T}_{ab}\right)_{mm'}\right]/2$ in `seedname-kdotp_2.dat`. Please cite Ref. [@ibanez-azpiroz-ArXiv2019] when publishing $k\cdot p$ results using this method. -### Needed matrix elements +## Needed matrix elements All the quantities entering the formulas for the optical conductivity and AHC can be calculated by Wannier interpolation once the Hamiltonian @@ -637,7 +644,8 @@ and position matrix elements $\langle {\bf 0}n\vert H\vert elements are readily available at the end of a standard MLWF calculation with `wannier90`. In particular, $\langle {\bf 0}n\vert {\bf r}\vert {\bf R}m\rangle$ can be calculated by Fourier -transforming the overlap matrices in [Methodology Eq. \[overlap matrices\]](../wannier90/methodology.md#mjx-eqn:eq:overlap-matrix), +transforming the overlap matrices in +[Methodology Eq. \[overlap matrices\]](../wannier90/methodology.md#mjx-eqn:eq:overlap-matrix), $$ \begin{equation} @@ -691,7 +699,8 @@ further matrix elements are needed: $$ \begin{equation} \langle u_{n{\bf k}}\vert -\sigma_\gamma H_{\bf k}\vert u_{m{\bf k}+{\bf b}}\rangle, \langle u_{n{\bf k}}\vert +\sigma_\gamma H_{\bf k}\vert u_{m{\bf k}+{\bf b}}\rangle, +\langle u_{n{\bf k}}\vert \sigma_\gamma \vert u_{m{\bf k}+{\bf b}}\rangle, \gamma = x, y, z \end{equation} diff --git a/docs/docs/user_guide/postw90/boltzwann.md b/docs/docs/user_guide/postw90/boltzwann.md index e0c5ef8a..9b4d371b 100644 --- a/docs/docs/user_guide/postw90/boltzwann.md +++ b/docs/docs/user_guide/postw90/boltzwann.md @@ -32,7 +32,7 @@ obtained using the `BoltzWann` module: > basis*, > Comp. Phys. Comm. 185, 422 (2014), DOI:10.1016/j.cpc.2013.09.015. -### Theory {#sec:boltzwann-theory} +## Theory The theory of the electronic transport using the Boltzmann transport equations can be found for instance in @@ -45,8 +45,10 @@ flux density) $\mathrm{\bm{J}}_Q$ can be written, respectively, as $$ \begin{equation} \begin{aligned} - \mathrm{\bm{J}} &= \mathrm{\bm{\sigma}}(\mathrm{\bm{E}} - \mathrm{\bm{S}} \mathrm{\bm{\nabla }}T) \\ - \mathrm{\bm{J}}_Q &= T \mathrm{\bm{\sigma }}\mathrm{\bm{S}} \mathrm{\bm{E}} - \mathrm{\bm{K}} \mathrm{\bm{\nabla }}T, + \mathrm{\bm{J}} &= \mathrm{\bm{\sigma}}(\mathrm{\bm{E}} - \mathrm{\bm{S}} + \mathrm{\bm{\nabla }}T) \\ + \mathrm{\bm{J}}_Q &= T \mathrm{\bm{\sigma }}\mathrm{\bm{S}} \mathrm{\bm{E}} - + \mathrm{\bm{K}} \mathrm{\bm{\nabla }}T, \end{aligned} \end{equation} $$ @@ -61,7 +63,8 @@ $\mathrm{\bm{K}}$ are $3\times 3$ tensors, in general. heat current per unit of temperature gradient in open-circuit experiments (i.e., with $\mathrm{\bm{J}}=0$) is not precisely $\mathrm{\bm{K}}$, but - $\mathrm{\bm{\kappa }}= \mathrm{\bm{K}}-\mathrm{\bm{S}} \mathrm{\bm{\sigma }}\mathrm{\bm{S}} T$ + $\mathrm{\bm{\kappa }}= \mathrm{\bm{K}}-\mathrm{\bm{S}} + \mathrm{\bm{\sigma }}\mathrm{\bm{S}} T$ (see for instance Eq. (7.89) of Ref. [@ziman-book72] or Eq. (XI-57b) of Ref. [@grosso-book00]). The thermal conductivity $\mathrm{\bm{\kappa}}$ can be then calculated from the $\mathrm{\bm{\sigma}}$, @@ -74,9 +77,16 @@ $$ \begin{equation} \label{eq:boltz-sigmas} \begin{aligned} - \mathrm{[\bm{\sigma}]}_{ij}(\mu,T)&=e^2 \int_{-\infty}^{+\infty} d\varepsilon \left(-\frac {\partial f(\varepsilon,\mu,T)}{\partial \varepsilon}\right)\Sigma_{ij}(\varepsilon), \\ - [\mathrm{\bm{\sigma }}\mathrm{\bm{S}}]_{ij}(\mu,T)&=\frac e T \int_{-\infty}^{+\infty} d\varepsilon \left(-\frac {\partial f(\varepsilon,\mu,T)}{\partial \varepsilon}\right)(\varepsilon-\mu)\Sigma_{ij}(\varepsilon),\\ - [\mathrm{\bm{K}}]_{ij}(\mu,T)&=\frac 1 T \int_{-\infty}^{+\infty} d\varepsilon \left(-\frac {\partial f(\varepsilon,\mu,T)}{\partial \varepsilon}\right)(\varepsilon-\mu)^2 \Sigma_{ij}(\varepsilon), + \mathrm{[\bm{\sigma}]}_{ij}(\mu,T)&=e^2 \int_{-\infty}^{+\infty} d\varepsilon + \left(-\frac {\partial f(\varepsilon,\mu,T)}{\partial \varepsilon}\right) + \Sigma_{ij}(\varepsilon), \\ + [\mathrm{\bm{\sigma }}\mathrm{\bm{S}}]_{ij}(\mu,T)&=\frac e T + \int_{-\infty}^{+\infty} d\varepsilon \left(-\frac {\partial + f(\varepsilon,\mu,T)}{\partial \varepsilon}\right)(\varepsilon-\mu) + \Sigma_{ij}(\varepsilon),\\ + [\mathrm{\bm{K}}]_{ij}(\mu,T)&=\frac 1 T \int_{-\infty}^{+\infty} + d\varepsilon \left(-\frac {\partial f(\varepsilon,\mu,T)} + {\partial \varepsilon}\right)(\varepsilon-\mu)^2 \Sigma_{ij}(\varepsilon), \end{aligned} \end{equation} $$ @@ -98,7 +108,9 @@ tensor, defined as $$ \begin{equation} -\Sigma_{ij}(\varepsilon) = \frac 1 V \sum_{n,\mathrm{\bm{k}}} v_i(n,\mathrm{\bm{k}}) v_j(n,\mathrm{\bm{k}}) \tau(n,\mathrm{\bm{k}}) \delta(\varepsilon - E_{n,k}). +\Sigma_{ij}(\varepsilon) = \frac 1 V \sum_{n,\mathrm{\bm{k}}} +v_i(n,\mathrm{\bm{k}}) v_j(n,\mathrm{\bm{k}}) \tau(n,\mathrm{\bm{k}}) +\delta(\varepsilon - E_{n,k}). \end{equation} $$ @@ -115,9 +127,9 @@ approximation* adopted here, $\tau$ is assumed as a constant, i.e., it is independent of $n$ and $\mathrm{\bm{k}}$ and its value (in fs) is read from the input variable `boltz_relax_time`. -### Files +## Files -#### `seedname_boltzdos.dat` +### `seedname_boltzdos.dat` OUTPUT. Written by `postw90` if `boltz_calc_also_dos` is `true`. Note that even if there are other general routines in `postw90` which @@ -132,7 +144,8 @@ describe the content of the file. Then, there is a line for each energy $\varepsilon$ on the grid, containing a number of columns. The first column is the energy $\varepsilon$. The following is the DOS at the given energy $\varepsilon$. The DOS can either be calculated using the -adaptive smearing scheme (see the following note) if `boltz_dos_adpt_smr` is `true`, or using +adaptive smearing scheme (see the following note) if `boltz_dos_adpt_smr` +is `true`, or using a "standard" fixed smearing, whose type and value are defined by `boltz_dos_smr_type` and `boltz_dos_smr_fixed_en_width`, respectively. If spin decomposition is required (input flag `spin_decomp`), further @@ -148,7 +161,7 @@ spin-down projection. the DOS may be slightly different with respect to that given by the `dos` module. -#### `seedname_tdf.dat` +### `seedname_tdf.dat` OUTPUT. This file contains the Transport Distribution Function (TDF) tensor $\mathrm{\bm{\Sigma}}$ on a grid of energies. @@ -168,7 +181,7 @@ The energy $\varepsilon$ is in eV, while $\mathrm{\bm{\Sigma}}$ is in $\displaystyle\frac{1}{\hbar^2}\cdot{\mathrm{eV}\cdot\mathrm{fs}}\cdot {\mathring{\mathrm{A}}^{-1}}$. -#### `seedname_elcond.dat` +### `seedname_elcond.dat` OUTPUT. This file contains the electrical conductivity tensor $\mathrm{\bm{\sigma}}$ on the grid of $T$ and $\mu$ points. @@ -183,7 +196,7 @@ The chemical potential is in eV, the temperature is in K, and the components of the electrical conductivity tensor ar in SI units, i.e. in 1/$\Omega$/m. -#### `seedname_sigmas.dat` +### `seedname_sigmas.dat` OUTPUT. This file contains the tensor $\mathrm{\bm{\sigma}}\mathrm{\bm{S}}$, i.e. the product of the @@ -200,7 +213,7 @@ symmetric). The chemical potential is in eV, the temperature is in K, and the components of the tensor ar in SI units, i.e. in A/m/K. -#### `seedname_seebeck.dat` +### `seedname_seebeck.dat` OUTPUT. This file contains the Seebeck tensor $\mathrm{\bm{S}}$ on the grid of $T$ and $\mu$ points. @@ -222,10 +235,10 @@ from the other three files (elcond, sigmas and kappa)! The chemical potential is in eV, the temperature is in K, and the components of the Seebeck tensor ar in SI units, i.e. in V/K. -#### `seedname_kappa.dat` +### `seedname_kappa.dat` OUTPUT. This file contains the tensor $\mathrm{\bm{K}}$ defined in -Sec. [Theory](#sec:boltzwann-theory) on the grid of $T$ and $\mu$ points. +Sec. [Theory](#theory) on the grid of $T$ and $\mu$ points. The first lines are comments (starting with \# characters) which describe the content of the file. Then, there is a line for each diff --git a/docs/docs/user_guide/postw90/postw90params.md b/docs/docs/user_guide/postw90/postw90params.md index 40269559..9fc68086 100644 --- a/docs/docs/user_guide/postw90/postw90params.md +++ b/docs/docs/user_guide/postw90/postw90params.md @@ -1337,7 +1337,7 @@ option starts with a '-'): Output file: `seedname-gyrotropic-K_orb.dat` ( see Sec. [output data format](#output-data-format) for file format description) - - `-spin` : if this task is present, compute also the spin + - `-spin` : if this task is present, compute also the spin contribution. Output file: `seedname-gyrotropic-K_spin.dat` @@ -1347,7 +1347,7 @@ option starts with a '-'): Output file: `seedname-gyrotropic-NOA_orb.dat` ( see Sec. [output data format](#output-data-format) for file format description) - - `-spin` : if this task is present, compute also the spin + - `-spin` : if this task is present, compute also the spin contribution. Output file: `seedname-gyrotropic-NOA_spin.dat` diff --git a/docs/docs/user_guide/wannier90/files.md b/docs/docs/user_guide/wannier90/files.md index 4a75e7a7..ba41a049 100644 --- a/docs/docs/user_guide/wannier90/files.md +++ b/docs/docs/user_guide/wannier90/files.md @@ -109,37 +109,39 @@ authors, the code version and release, and the execution time of the current run. The header looks like the following different (the string might slightly change across different versions): - +---------------------------------------------------+ - | | - | WANNIER90 | - | | - +---------------------------------------------------+ - | | - | Welcome to the Maximally-Localized | - | Generalized Wannier Functions code | - | http://www.wannier.org | - | | - | Wannier90 Developer Group: | - | Giovanni Pizzi (EPFL) | - | Valerio Vitale (Cambridge) | - | David Vanderbilt (Rutgers University) | - | Nicola Marzari (EPFL) | - | Ivo Souza (Universidad del Pais Vasco) | - | Arash A. Mostofi (Imperial College London) | - | Jonathan R. Yates (University of Oxford) | - | | - | For the full list of Wannier90 3.x authors, | - | please check the code documentation and the | - | README on the GitHub page of the code | - | | - | | - | Please cite | - . - . - | | - +---------------------------------------------------+ - | Execution started on 18Dec2018 at 18:39:42 | - +---------------------------------------------------+ +```vi title="Output file" + +---------------------------------------------------+ + | | + | WANNIER90 | + | | + +---------------------------------------------------+ + | | + | Welcome to the Maximally-Localized | + | Generalized Wannier Functions code | + | http://www.wannier.org | + | | + | Wannier90 Developer Group: | + | Giovanni Pizzi (EPFL) | + | Valerio Vitale (Cambridge) | + | David Vanderbilt (Rutgers University) | + | Nicola Marzari (EPFL) | + | Ivo Souza (Universidad del Pais Vasco) | + | Arash A. Mostofi (Imperial College London) | + | Jonathan R. Yates (University of Oxford) | + | | + | For the full list of Wannier90 3.x authors, | + | please check the code documentation and the | + | README on the GitHub page of the code | + | | + | | + | Please cite | + . + . + | | + +---------------------------------------------------+ + | Execution started on 18Dec2018 at 18:39:42 | + +---------------------------------------------------+ +``` ### System information @@ -149,46 +151,48 @@ includes real and reciprocal lattice vectors, atomic positions, k-points, parameters for job control, disentanglement, localisation and plotting. - ------ - SYSTEM - ------ - - Lattice Vectors (Ang) - a_1 3.938486 0.000000 0.000000 - a_2 0.000000 3.938486 0.000000 - a_3 0.000000 0.000000 3.938486 - - Unit Cell Volume: 61.09251 (Ang^3) - - Reciprocal-Space Vectors (Ang^-1) - b_1 1.595330 0.000000 0.000000 - b_2 0.000000 1.595330 0.000000 - b_3 0.000000 0.000000 1.595330 - - *----------------------------------------------------------------------------* - | Site Fractional Coordinate Cartesian Coordinate (Ang) | - +----------------------------------------------------------------------------+ - | Ba 1 0.00000 0.00000 0.00000 | 0.00000 0.00000 0.00000 | - | Ti 1 0.50000 0.50000 0.50000 | 1.96924 1.96924 1.96924 | +```vi title="Output file" + ------ + SYSTEM + ------ + + Lattice Vectors (Ang) + a_1 3.938486 0.000000 0.000000 + a_2 0.000000 3.938486 0.000000 + a_3 0.000000 0.000000 3.938486 + + Unit Cell Volume: 61.09251 (Ang^3) + + Reciprocal-Space Vectors (Ang^-1) + b_1 1.595330 0.000000 0.000000 + b_2 0.000000 1.595330 0.000000 + b_3 0.000000 0.000000 1.595330 + + *----------------------------------------------------------------------------* + | Site Fractional Coordinate Cartesian Coordinate (Ang) | + +----------------------------------------------------------------------------+ + | Ba 1 0.00000 0.00000 0.00000 | 0.00000 0.00000 0.00000 | + | Ti 1 0.50000 0.50000 0.50000 | 1.96924 1.96924 1.96924 | + . + . + *----------------------------------------------------------------------------* + + ------------ + K-POINT GRID + ------------ + + Grid size = 4 x 4 x 4 Total points = 64 + + *---------------------------------- MAIN ------------------------------------* + | Number of Wannier Functions : 9 | + | Number of input Bloch states : 9 | + | Output verbosity (1=low, 5=high) : 1 | + | Length Unit : Ang | + | Post-processing setup (write *.nnkp) : F | + . . - . - *----------------------------------------------------------------------------* - - ------------ - K-POINT GRID - ------------ - - Grid size = 4 x 4 x 4 Total points = 64 - - *---------------------------------- MAIN ------------------------------------* - | Number of Wannier Functions : 9 | - | Number of input Bloch states : 9 | - | Output verbosity (1=low, 5=high) : 1 | - | Length Unit : Ang | - | Post-processing setup (write *.nnkp) : F | - . - . - *----------------------------------------------------------------------------* + *----------------------------------------------------------------------------* +``` ### Nearest-neighbour k-points @@ -196,26 +200,28 @@ This part of the output files provides information on the $\mathrm{b}$-vectors and weights chosen to satisfy the condition of Eq. [B1](parameters.md#mjx-eqn:eq:B1). - *---------------------------------- K-MESH ----------------------------------* - +----------------------------------------------------------------------------+ - | Distance to Nearest-Neighbour Shells | - | ------------------------------------ | - | Shell Distance (Ang^-1) Multiplicity | - | ----- ----------------- ------------ | - | 1 0.398833 6 | - | 2 0.564034 12 | - . - . - +----------------------------------------------------------------------------+ - | The b-vectors are chosen automatically | - | The following shells are used: 1 | - +----------------------------------------------------------------------------+ - | Shell # Nearest-Neighbours | - | ----- -------------------- | - | 1 6 | - +----------------------------------------------------------------------------+ - | Completeness relation is fully satisfied [Eq. (B1), PRB 56, 12847 (1997)] | - +----------------------------------------------------------------------------+ +```vi title="Output file" + *---------------------------------- K-MESH ----------------------------------* + +----------------------------------------------------------------------------+ + | Distance to Nearest-Neighbour Shells | + | ------------------------------------ | + | Shell Distance (Ang^-1) Multiplicity | + | ----- ----------------- ------------ | + | 1 0.398833 6 | + | 2 0.564034 12 | + . + . + +----------------------------------------------------------------------------+ + | The b-vectors are chosen automatically | + | The following shells are used: 1 | + +----------------------------------------------------------------------------+ + | Shell # Nearest-Neighbours | + | ----- -------------------- | + | 1 6 | + +----------------------------------------------------------------------------+ + | Completeness relation is fully satisfied [Eq. (B1), PRB 56, 12847 (1997)] | + +----------------------------------------------------------------------------+ +``` ### Disentanglement @@ -225,33 +231,37 @@ the localisation procedure in the next step. First, a summary of the energy windows that are being used is given: - *------------------------------- DISENTANGLE --------------------------------* - +----------------------------------------------------------------------------+ - | Energy Windows | - | --------------- | - | Outer: 2.81739 to 38.00000 (eV) | - | Inner: 2.81739 to 13.00000 (eV) | - +----------------------------------------------------------------------------+ +```vi title="Output file" + *------------------------------- DISENTANGLE --------------------------------* + +----------------------------------------------------------------------------+ + | Energy Windows | + | --------------- | + | Outer: 2.81739 to 38.00000 (eV) | + | Inner: 2.81739 to 13.00000 (eV) | + +----------------------------------------------------------------------------+ +``` Then, each step of the iterative minimisation of $\Omega_{\mathrm{I}}$ is reported. - Extraction of optimally-connected subspace - ------------------------------------------ - +---------------------------------------------------------------------+<-- DIS - | Iter Omega_I(i-1) Omega_I(i) Delta (frac.) Time |<-- DIS - +---------------------------------------------------------------------+<-- DIS - 1 3.82493590 3.66268867 4.430E-02 0.36 <-- DIS - 2 3.66268867 3.66268867 6.911E-15 0.37 <-- DIS - . - . - - <<< Delta < 1.000E-10 over 3 iterations >>> - <<< Disentanglement convergence criteria satisfied >>> - - Final Omega_I 3.66268867 (Ang^2) - - +----------------------------------------------------------------------------+ +```vi title="Output file" + Extraction of optimally-connected subspace + ------------------------------------------ + +---------------------------------------------------------------------+<-- DIS + | Iter Omega_I(i-1) Omega_I(i) Delta (frac.) Time |<-- DIS + +---------------------------------------------------------------------+<-- DIS + 1 3.82493590 3.66268867 4.430E-02 0.36 <-- DIS + 2 3.66268867 3.66268867 6.911E-15 0.37 <-- DIS + . + . + + <<< Delta < 1.000E-10 over 3 iterations >>> + <<< Disentanglement convergence criteria satisfied >>> + + Final Omega_I 3.66268867 (Ang^2) + + +----------------------------------------------------------------------------+ +``` The first column gives the iteration number. For a description of the minimisation procedure and expressions for $\Omega_{\mathrm{I}}^{(i)}$, @@ -274,75 +284,78 @@ The next part of the output file provides information on the minimisation of $\widetilde{\Omega}$. At each iteration, the centre and spread of each WF is reported. - *------------------------------- WANNIERISE ---------------------------------* - +--------------------------------------------------------------------+<-- CONV - | Iter Delta Spread RMS Gradient Spread (Ang^2) Time |<-- CONV - +--------------------------------------------------------------------+<-- CONV - - ------------------------------------------------------------------------------ - Initial State - WF centre and spread 1 ( 0.000000, 1.969243, 1.969243 ) 1.52435832 - WF centre and spread 2 ( 0.000000, 1.969243, 1.969243 ) 1.16120620 - . - . - 0 0.126E+02 0.0000000000 12.6297685260 0.29 <-- CONV - O_D= 0.0000000 O_OD= 0.1491718 O_TOT= 12.6297685 <-- SPRD - ------------------------------------------------------------------------------ - Cycle: 1 - WF centre and spread 1 ( 0.000000, 1.969243, 1.969243 ) 1.52414024 - WF centre and spread 2 ( 0.000000, 1.969243, 1.969243 ) 1.16059775 - . - . - Sum of centres and spreads ( 11.815458, 11.815458, 11.815458 ) 12.62663472 - - 1 -0.313E-02 0.0697660962 12.6266347170 0.34 <-- CONV - O_D= 0.0000000 O_OD= 0.1460380 O_TOT= 12.6266347 <-- SPRD - Delta: O_D= -0.4530841E-18 O_OD= -0.3133809E-02 O_TOT= -0.3133809E-02 <-- DLTA - ------------------------------------------------------------------------------ - Cycle: 2 - WF centre and spread 1 ( 0.000000, 1.969243, 1.969243 ) 1.52414866 - WF centre and spread 2 ( 0.000000, 1.969243, 1.969243 ) 1.16052405 - . - . - Sum of centres and spreads ( 11.815458, 11.815458, 11.815458 ) 12.62646411 - - 2 -0.171E-03 0.0188848262 12.6264641055 0.38 <-- CONV - O_D= 0.0000000 O_OD= 0.1458674 O_TOT= 12.6264641 <-- SPRD - Delta: O_D= -0.2847260E-18 O_OD= -0.1706115E-03 O_TOT= -0.1706115E-03 <-- DLTA - ------------------------------------------------------------------------------ - . - . - ------------------------------------------------------------------------------ - Final State - WF centre and spread 1 ( 0.000000, 1.969243, 1.969243 ) 1.52416618 - WF centre and spread 2 ( 0.000000, 1.969243, 1.969243 ) 1.16048545 - . - . - Sum of centres and spreads ( 11.815458, 11.815458, 11.815458 ) 12.62645344 - - Spreads (Ang^2) Omega I = 12.480596753 - ================ Omega D = 0.000000000 - Omega OD = 0.145856689 - Final Spread (Ang^2) Omega Total = 12.626453441 - ------------------------------------------------------------------------------ +```vi title="Output file" + *------------------------------- WANNIERISE ---------------------------------* + +--------------------------------------------------------------------+<-- CONV + | Iter Delta Spread RMS Gradient Spread (Ang^2) Time |<-- CONV + +--------------------------------------------------------------------+<-- CONV + + ------------------------------------------------------------------------------ + Initial State + WF centre and spread 1 ( 0.000000, 1.969243, 1.969243 ) 1.52435832 + WF centre and spread 2 ( 0.000000, 1.969243, 1.969243 ) 1.16120620 + . + . + 0 0.126E+02 0.0000000000 12.6297685260 0.29 <-- CONV + O_D= 0.0000000 O_OD= 0.1491718 O_TOT= 12.6297685 <-- SPRD + ------------------------------------------------------------------------------ + Cycle: 1 + WF centre and spread 1 ( 0.000000, 1.969243, 1.969243 ) 1.52414024 + WF centre and spread 2 ( 0.000000, 1.969243, 1.969243 ) 1.16059775 + . + . + Sum of centres and spreads ( 11.815458, 11.815458, 11.815458 ) 12.62663472 + + 1 -0.313E-02 0.0697660962 12.6266347170 0.34 <-- CONV + O_D= 0.0000000 O_OD= 0.1460380 O_TOT= 12.6266347 <-- SPRD + Delta: O_D= -0.4530841E-18 O_OD= -0.3133809E-02 O_TOT= -0.3133809E-02 <-- DLTA + ------------------------------------------------------------------------------ + Cycle: 2 + WF centre and spread 1 ( 0.000000, 1.969243, 1.969243 ) 1.52414866 + WF centre and spread 2 ( 0.000000, 1.969243, 1.969243 ) 1.16052405 + . + . + Sum of centres and spreads ( 11.815458, 11.815458, 11.815458 ) 12.62646411 + + 2 -0.171E-03 0.0188848262 12.6264641055 0.38 <-- CONV + O_D= 0.0000000 O_OD= 0.1458674 O_TOT= 12.6264641 <-- SPRD + Delta: O_D= -0.2847260E-18 O_OD= -0.1706115E-03 O_TOT= -0.1706115E-03 <-- DLTA + ------------------------------------------------------------------------------ + . + . + ------------------------------------------------------------------------------ + Final State + WF centre and spread 1 ( 0.000000, 1.969243, 1.969243 ) 1.52416618 + WF centre and spread 2 ( 0.000000, 1.969243, 1.969243 ) 1.16048545 + . + . + Sum of centres and spreads ( 11.815458, 11.815458, 11.815458 ) 12.62645344 + + Spreads (Ang^2) Omega I = 12.480596753 + ================ Omega D = 0.000000000 + Omega OD = 0.145856689 + Final Spread (Ang^2) Omega Total = 12.626453441 + ------------------------------------------------------------------------------ +``` -It looks quite complicated, but things look more simple if one uses -`grep`: +It looks quite complicated, but things look more simple if one uses `grep`: -```bash +```bash title="Terminal" grep CONV wannier.wout ``` gives - +--------------------------------------------------------------------+<-- CONV - | Iter Delta Spread RMS Gradient Spread (Ang^2) Time |<-- CONV - +--------------------------------------------------------------------+<-- CONV - 0 0.126E+02 0.0000000000 12.6297685260 0.29 <-- CONV - 1 -0.313E-02 0.0697660962 12.6266347170 0.34 <-- CONV - . - . - 50 0.000E+00 0.0000000694 12.6264534413 2.14 <-- CONV +```vi title="Output file" + +--------------------------------------------------------------------+<-- CONV + | Iter Delta Spread RMS Gradient Spread (Ang^2) Time |<-- CONV + +--------------------------------------------------------------------+<-- CONV + 0 0.126E+02 0.0000000000 12.6297685260 0.29 <-- CONV + 1 -0.313E-02 0.0697660962 12.6266347170 0.34 <-- CONV + . + . + 50 0.000E+00 0.0000000694 12.6264534413 2.14 <-- CONV +``` The first column is the iteration number, the second is the change in $\Omega$ from the previous iteration, the third is the root-mean-squared @@ -350,21 +363,24 @@ gradient of $\Omega$ with respect to variations in the unitary matrices $\mathbf{U}^{(\mathbf{k})}$, and the last is the time taken (in seconds). Depending on the input parameters used, the procedure either runs for `num_iter` iterations, or a convergence criterion is applied on -$\Omega$. See Section [Wannierise Parameters](parameters.md#wannierise-parameters) for details. +$\Omega$. See Section +[Wannierise Parameters](parameters.md#wannierise-parameters) for details. Similarly, the command -```bash +```bash title="Terminal" grep SPRD wannier.wout ``` gives - O_D= 0.0000000 O_OD= 0.1491718 O_TOT= 12.6297685 <-- SPRD - O_D= 0.0000000 O_OD= 0.1460380 O_TOT= 12.6266347 <-- SPRD - . - . - O_D= 0.0000000 O_OD= 0.1458567 O_TOT= 12.6264534 <-- SPRD +```vi title="Output file" + O_D= 0.0000000 O_OD= 0.1491718 O_TOT= 12.6297685 <-- SPRD + O_D= 0.0000000 O_OD= 0.1460380 O_TOT= 12.6266347 <-- SPRD + . + . + O_D= 0.0000000 O_OD= 0.1458567 O_TOT= 12.6264534 <-- SPRD +``` which, for each iteration, reports the value of the diagonal and off-diagonal parts of the non-gauge-invariant spread, as well as the @@ -386,13 +402,16 @@ gauge-dependent part. Instead, one has $\Omega^{'} = \Omega_{\mathrm{IOD}} + \Omega_{\mathrm{D}}$, where $$ -\Omega^{'} = \sum_{n=1}^{J' | Keyword | Type | Description | |:-----------------:|:----:|:---------------------------------------------------------------------------------| | num_wann | I | Number of WF | @@ -74,6 +77,7 @@ For further examples see Section [Master input file: `seedname.win`](sample_inp | skip_B1_tests | L | Check the condition B1 of Ref [@marzari-prb97].  | | nnkpts | I | Explicit list of nearest-neighbour k-points. | | kmesh_tol | R | The tolerance to control if two kpoint belong to the same shell | + `seedname.win` file keywords defining the system. Argument types are represented by, I for a integer, R for a real number, P for a physical @@ -81,8 +85,9 @@ value, L for a logical value and S for a text string. \* `atoms_cart` and `atoms_frac` may not both be defined in the same input file. -### Job Control +### Job Control Parameters + | Keyword | Type | Description | |:--------------------:|:----:|:------------------------------------------------------------------------------------------------| | postproc_setup | L | To output the `seedname.nnkp` file | @@ -101,6 +106,7 @@ file. | write_xyz | L | To write atomic positions and final centres in xyz file format | | write_vdw_data | L | To write data for futher processing by w90vdw utility | | write_hr_diag | L | To write the diagonal elements of the Hamiltonian in the Wannier basis to `seedname.wout` (in eV) | + `seedname.win` file keywords defining job control. Argument types are represented by, I for a integer, R for a real number, P for a physical @@ -109,6 +115,7 @@ translate_home_cell only relevant if `write_xyz` is `.true.` ### Disentanglement Parameters + | Keyword | Type | Description | |:--------------------------:|:----:|:-----------------------------------------------------------------------| | dis_win_min | P | Bottom of the outer energy window | @@ -122,6 +129,7 @@ translate_home_cell only relevant if `write_xyz` is `.true.` | dis_spheres_num | I | Number of spheres in k-space where disentaglement is performed | | dis_spheres_first_wann | I | Index of the first band to be considered a Wannier function | | dis_spheres | R | List of centres and radii, for disentanglement only in spheres | + `seedname.win` file keywords controlling the disentanglement. Argument types are represented by, I for a integer, R for a real number, P for a @@ -129,6 +137,7 @@ physical value, L for a logical value and S for a text string. ### Wannierise Parameters + | Keyword | Type | Description | |:---------------------:|:----:|:-----------------------------------------------------------------------------------------------------------------| | num_iter | I | Number of iterations for the minimisation of $\Omega$ | @@ -153,6 +162,7 @@ physical value, L for a logical value and S for a text string. | slwf_constrain | L | Whether to constrain the centres of the objective WFs | | slwf_lambda | R | Value of the Lagrange multiplier for constraining the objective WFs | | slwf_centres | P | The centres to which the objective WFs are to be constrained | + `seedname.win` file keywords controlling the wannierisation. Argument types are represented by, I for a integer, R for a real number, P for a @@ -164,6 +174,7 @@ window. ### Plot Parameters + | Keyword | Type | Description | |:--------------------------:|:----:|:-------------------------------------------------------------| | wannier_plot | L | Plot the WF | @@ -202,6 +213,7 @@ window. | ws_distance_tol | R | Absolute tolerance for the distance to equivalent positions. | | ws_search_size | I | Maximum extension in each direction of the super-cell of the Born-von Karmann cell to search for points inside the Wigner-Seitz cell | | write_u_matrices | L | Write $U^{(\bm{k})}$ and $U^{dis(\bm{k})}$ matrices to files | + `seedname.win` file keywords controlling the plotting. Argument types are represented by, I for a integer, R for a real number, P for a @@ -210,6 +222,7 @@ applies when `wannier_plot_format` is `cube`. ### Transport Parameters + | Keyword | Type | Description | |:------------------------:|:----:|:----------------------------------------------------------| | transport | L | Calculate quantum conductance and density of states | @@ -236,6 +249,7 @@ applies when `wannier_plot_format` is `cube`. | dist_cutoff_mode | S | Dimension in which the distance between WF is calculated | | one_dim_axis | S | Extended direction for a one-dimensional system | | translation_centre_frac | R | Centre of the unit cell to which final WF are translated | + `seedname.win` file keywords controlling transport. Argument types are represented by, I for a integer, R for a real number, P for a physical @@ -259,7 +273,7 @@ Default `num_bands`=`num_wann` The cell lattice vectors should be specified in Cartesian coordinates. -``` +```vi title="Input file" begin unit_cell_cart [units] ``` @@ -270,7 +284,7 @@ A_{2x} & A_{2y} & A_{2z} \\ A_{3x} & A_{3y} & A_{3z} \end{array} -``` +```vi title="Input file" end unit_cell_cart ``` @@ -292,7 +306,7 @@ the input file. #### Cartesian coordinates -``` +```vi title="Input file" begin atoms_cart [units] ``` @@ -303,7 +317,7 @@ Q & R^{Q}_{x} & R^{Q}_{y} & R^{Q}_{z} \\ \vdots \end{array} -``` +```vi title="Input file" end atoms_cart ``` @@ -315,7 +329,7 @@ not present, the default is `ang`. #### Fractional coordinates -``` +```vi title="Input file" begin atoms_frac ``` @@ -325,7 +339,7 @@ Q & F^{Q}_{1} & F^{Q}_{2} & F^{Q}_{3} \\ \vdots \end{array} -``` +```vi title="Input file" end atoms_frac ``` @@ -339,7 +353,7 @@ the cell lattice vectors $\mathbf{A}_i$, $i\in [1,3]$. Dimensions of the regular (Monkhorst-Pack) k-point mesh. For example, for a $2\times2\times2$ grid: -``` +```vi title="Input file" mp_grid : 2 2 2 ``` @@ -354,7 +368,7 @@ primitive reciprocal lattice vectors $\mathbf{B}_{i}$, $i \in [1,3]$. The position of each k-point in this list assigns its numbering; the first k-point is k-point 1, the second is k-point 2, and so on. -``` +```vi title="Input file" begin kpoints ``` @@ -364,7 +378,7 @@ begin kpoints \vdots \end{array} -``` +```vi title="Input file" end kpoints ``` @@ -450,11 +464,13 @@ Specifies the nearest-neighbour k-points which are written to the `.nnkp` file. This can be used to explicitly specify which overlap matrices should be calculated. - begin nnkpts - 1 2 0 0 0 - . - . - end nnkpts +```vi title="Input file" +begin nnkpts +1 2 0 0 0 +. +. +end nnkpts +``` Each nearest neighbour $\mathbf{k + b}$ is given by a line of 5 integers. The first specifies the k-point number `nkp` of $\mathbf{k}$. @@ -484,7 +500,7 @@ generate an initial guess for the unitary transformations. This data will be written in the `seedname.nnkp` file to be used by a first-principles code. -``` +```vi title="Input file" begin projections . . @@ -802,7 +818,7 @@ radius $r_{i}$ in inverse angstrom (on the same line). The number of lines must be equal to `dis_spheres_num`. -``` +```vi title="Input file" begin dis_spheres ``` @@ -812,7 +828,7 @@ begin dis_spheres \vdots \end{array} -``` +```vi title="Input file" end dis_spheres ``` @@ -1011,7 +1027,8 @@ If `slwf_constrain=true`, then the centres of the objective Wannier functions are constrained to either the centres of the first `slwf_num` orbitals in the `projections` block or to new positions specified in the `slwf_centres` block (see -Sec. [Constraints on centres](#constraints-on-centres)). In this case, a modified spread +Sec. [Constraints on centres](#constraints-on-centres)). In this case, +a modified spread functional, $\Omega_c$, with the addition of a constraint term, as described in Ref. [@Marianetti]. @@ -1040,7 +1057,7 @@ functions. The block below shows an example of how to set the constraints: -``` +```vi title="Input file" begin slwf_centres 2 0.0 0.0 0.0 4 0.25 0.0 0.0 @@ -1088,7 +1105,7 @@ after the minimisation of the spread. The default behaviour is to plot all WF. For example, to plot WF 4, 5, 6 and 10: -``` +```vi title="Input file" wannier_plot_list : 4-6, 10 ``` @@ -1130,7 +1147,6 @@ of dealing with non-orthogonal lattice vectors is VESTA (). !!! note - It's worth noting that another visualisation program, VMD (), is able to deal with certain special cases of non-orthogonal lattice vectors; see @@ -1231,7 +1247,7 @@ Each line gives the start and end point (with labels) for a section of the path. Values are in fractional coordinates with respect to the primitive reciprocal lattice vectors. -``` +```vi title="Input file" begin kpoint_path ``` @@ -1241,7 +1257,7 @@ L & 0.0 & 0.0 & 1.0 & N & 0.0 & 1.0 & 1.0 \\ \vdots \end{array} -``` +```vi title="Input file" end kpoint_path ``` @@ -1278,7 +1294,7 @@ in the `seedname_band.dat` file, and a corresponding gnuplot script to For example, to project on to WFs 2, 6, 7, 8 and 12: -``` +```vi title="Input file" bands_plot_project : 2, 6-8, 12 ``` @@ -1331,12 +1347,19 @@ The default value for `fermi_surface_num_points` is 50. ### `real(kind=dp) :: fermi_energy` -The Fermi energy in eV. This parameter is written into the bxsf file. If -`fermi_energy` is specified, `fermi_energy_min`, `fermi_energy_max`, +The Fermi energy in eV. +If `fermi_energy` is specified, `fermi_energy_min`, `fermi_energy_max`, and `fermi_energy_step` should not be specified, and vice-versa. The default value is 0.0 +- For Fermi surface: + This parameter is written into the bxsf file. + +- For transport: + The energy axis of the quantum conductance and + density of states data will be shifted rigidly by this amount. + ### `real(kind=dp) :: fermi_energy_min` Instead of specifyfing a single Fermi energy, it is possible to scan the @@ -1345,7 +1368,6 @@ each $\varepsilon_F$. This is the minimum value in the range (in eV). !!! note - Scanning the Fermi level is currently supported only by the `postw90` module `berry`, for `berry_task=ahc,morb`. For all other functionalities that require a knowledge of $\varepsilon_F$, use @@ -1434,7 +1456,8 @@ must be provided by the five external files: `seedname_htL.dat, seedname_htLC.dat, seedname_htC.dat, seedname_htCR.dat, seedname_htR.dat`. If `tran_read_ht = false` then the Hamiltonian matrices are found automatically provided the supercell adheres to conditions -outlined in Section [Automated lcr Transport Calculations: The 2c2 Geometry](transport.md#sec:2c2). +outlined in Section +[Automated lcr Transport Calculations: The 2c2 Geometry](transport.md#automated-lcr-transport-calculations-the-2c2-geometry). The valid options for this parameter are: @@ -1463,13 +1486,6 @@ Sampling interval of the energy values from `tran_win_min` to The default value is 0.01. -### `real(kind=dp) :: fermi_energy` - -The Fermi energy in eV. The energy axis of the quantum conductance and -density of states data will be shifted rigidly by this amount. - -The default value is 0.0 - ### `integer :: tran_num_bb` Size of a bulk Hamiltonian matrix. This number is equal to the number of @@ -1562,7 +1578,8 @@ If `tran_write_ht = true`, then the Hamiltonian matrix formatted for the transport calculation will be read from a set of files described in the parameter `transport_mode`. Set `tran_write_ht = false` to perform automated lcr -calculations (see Section [Automated lcr Transport Calculations: The 2c2 Geometry](transport.md#sec:2c2)). +calculations (see Section +[Automated lcr Transport Calculations: The 2c2 Geometry](transport.md#automated-lcr-transport-calculations-the-2c2-geometry)). The default value is `false`. @@ -1614,7 +1631,8 @@ Tolerance when determining whether two values $\|\mathbf{d}_{ij\mathbf{R}} + \tilde{\mathbf{R}}_{nml} \|$ and $\|\mathbf{d}_{ij\mathbf{R}} + \tilde{\mathbf{R}}_{n'm'l'} \|$ (as defined in -chapter [Some notes on the interpolation](notes_interpolations.md)) for the shortest distance between two +chapter [Some notes on the interpolation](notes_interpolations.md)) +for the shortest distance between two Wannier functions are equivalent. If the difference in distance (in Angstrom) is less than `ws_distance_tol`, they are taken to be equivalent. @@ -1625,7 +1643,8 @@ The default value is $10^{-5}$. Maximum absolute value for the integers $n,m,l$ that identify the super-lattice vectors $\tilde{\mathbf{R}}_{nml}$ (see -chapter [Some notes on the interpolation](notes_interpolations.md)) when searching for points inside the +chapter [Some notes on the interpolation](notes_interpolations.md)) when +searching for points inside the Wigner-Seitz cell. If `ws_search_size` is provided as a single integer, then the number of repetitions of the Born-von Karman cell is the same along all three linear dimensions; otherwise, if three integers are diff --git a/docs/docs/user_guide/wannier90/postproc.md b/docs/docs/user_guide/wannier90/postproc.md index 78920177..e4e40922 100644 --- a/docs/docs/user_guide/wannier90/postproc.md +++ b/docs/docs/user_guide/wannier90/postproc.md @@ -44,35 +44,41 @@ The only logical keyword is `calc_only_A`, eg, ### `Real_lattice` block - begin real_lattice - 2.250000 0.000000 0.000000 - 0.000000 2.250000 0.000000 - 0.000000 0.000000 2.250000 - end real_lattice +```vi title="Input file" +begin real_lattice + 2.250000 0.000000 0.000000 + 0.000000 2.250000 0.000000 + 0.000000 0.000000 2.250000 +end real_lattice +``` The real lattice vectors in units of Angstrom. ### `Recip_lattice` block - begin recip_lattice - 2.792527 0.000000 0.000000 - 0.000000 2.792527 0.000000 - 0.000000 0.000000 2.792527 - end recip_lattice +```vi title="Input file" +begin recip_lattice + 2.792527 0.000000 0.000000 + 0.000000 2.792527 0.000000 + 0.000000 0.000000 2.792527 +end recip_lattice +``` The reciprocal lattice vectors in units of inverse Angstrom. ### `Kpoints` block - begin kpoints - 8 - 0.00000 0.00000 0.00000 - 0.00000 0.50000 0.00000 - . - . - . - 0.50000 0.50000 0.50000 - end kpoints +```vi title="Input file" +begin kpoints + 8 + 0.00000 0.00000 0.00000 + 0.00000 0.50000 0.00000 + . + . + . + 0.50000 0.50000 0.50000 +end kpoints +``` The first line in the block is the total number of k-points `num_kpts`. The subsequent `num_kpts` lines specify the k-points in crystallographic @@ -80,15 +86,17 @@ co-ordinates relative to the reciprocal lattice vectors. ### `Projections` block - begin projections - n_proj - centre l mr r - z-axis x-axis zona - centre l mr r - z-axis x-axis zona - . - . - end projections +```vi title="Input file" +begin projections + n_proj + centre l mr r + z-axis x-axis zona + centre l mr r + z-axis x-axis zona + . + . +end projections +``` Notes: @@ -101,7 +109,9 @@ crystallographic co-ordinates relative to the direct lattice vectors. `l mr r`: three integers; $l$ and $m_\mathrm{r}$ specify the angular part $\Theta_{lm_{\mathrm{r}}}(\theta,\varphi)$, and $\mathrm{r}$ specifies the radial part $R_{\mathrm{r}}(r)$ of the projection function -(see Tables [Angular functions](projections.md#angular-functions), [Hybrids](projections.md#hybrids) and [Radial functions](projections.md#radial-functions)). +(see Tables [Angular functions](projections.md#angular-functions), +[Hybrids](projections.md#hybrids) and +[Radial functions](projections.md#radial-functions)). `z-axis`: three real numbers; default is `0.0 0.0 1.0`; defines the axis from which the polar angle $\theta$ in spherical polar coordinates is @@ -117,17 +127,19 @@ radial part of the atomic orbital. Units are in reciprocal Angstrom. ### `spinor_projections` block - begin spinor_projections - n_proj - centre l mr r - z-axis x-axis zona - spin spn_quant - centre l mr r - z-axis x-axis zona - spin spn_quant - . - . - end spinor_projections +```vi title="Input file" +begin spinor_projections + n_proj + centre l mr r + z-axis x-axis zona + spin spn_quant + centre l mr r + z-axis x-axis zona + spin spn_quant + . + . +end spinor_projections +``` Notes: Only one of projections and spinor_projections should be defined. Variables are the same as the projections block with the addition of @@ -141,12 +153,14 @@ Cartesian coordinates. ### `nnkpts` block - begin nnkpts - 10 - 1 2 0 0 0 - . - . - end nnkpts +```vi title="Input file" +begin nnkpts + 10 + 1 2 0 0 0 + . + . +end nnkpts +``` First line: `nntot`, the number of nearest neighbours belonging to each k-point of the Monkhorst-Pack mesh @@ -164,13 +178,15 @@ the actual $\mathbf{k+b}$ that we need. ### `exclude_bands` block - begin exclude_bands - 8 - 1 - 2 - . - . - end exclude_bands +```vi title="Input file" +begin exclude_bands + 8 + 1 + 2 + . + . +end exclude_bands +``` To exclude bands (independent of k-point) from the calculation of the overlap and projection matrices, for example to ignore shallow-core @@ -179,10 +195,12 @@ lines give the states for be excluded. ### `auto_projections` block - begin auto_projections - 8 - 0 - end auto_projections +```vi title="Input file" +begin auto_projections + 8 + 0 +end auto_projections +``` This block is only printed if `auto_projections=true` in the input. The choice of an additional block has been made in order to maintain @@ -207,11 +225,13 @@ method [@LinLin-ArXiv2017] is one way of generating the initial $A_{mn}^{(\mathbf{k})}$ in an automatic way. This has been implemented in the `pw2wannier90` interface code (you need v6.3 with the files provided in the `pwscf` folder of Wannier90, or v6.4), see for instance -Tutorial [27](../../tutorials/tutorial_27.md) in the `wannier90` tutorial that shows how to use it. +Tutorial [27](../../tutorials/tutorial_27.md) in the `wannier90` tutorial +that shows how to use it. Moreover, also the automatic generation of initial projections with spinor WFs is implemented in the `pw2wannier90` interface. See Tutorial -[31](../../tutorials/tutorial_31.md) in the `wannier90` tutorial that shows how to use it. +[31](../../tutorials/tutorial_31.md) in the `wannier90` tutorial that shows +how to use it. Another automatic projection method is projectability-disentangled Wannier function (PDWF) [@Qiao2023-pdwf], which uses pseudo-atomic @@ -226,29 +246,34 @@ projection orbitals on, say, a carbon atom at (0.5,0.5,0.5) in fractional co-ordinates relative to the direct lattice vectors. In this case `seedname.win` will contain the following lines: - begin projections - C:l=-1 - end projections +```vi title="Input file" +begin projections + C:l=-1 +end projections +``` and `seedname.nnkp`, generated on the first pass of `wannier90` (with `postproc_setup=T`), will contain: - begin projections - 4 - 0.50000 0.50000 0.50000 -1 1 1 - 0.000 0.000 1.000 1.000 0.000 0.000 2.00 - 0.50000 0.50000 0.50000 -1 2 1 - 0.000 0.000 1.000 1.000 0.000 0.000 2.00 - 0.50000 0.50000 0.50000 -1 3 1 - 0.000 0.000 1.000 1.000 0.000 0.000 2.00 - 0.50000 0.50000 0.50000 -1 4 1 - 0.000 0.000 1.000 1.000 0.000 0.000 2.00 - end projections +```vi title="Input file" +begin projections + 4 + 0.50000 0.50000 0.50000 -1 1 1 + 0.000 0.000 1.000 1.000 0.000 0.000 2.00 + 0.50000 0.50000 0.50000 -1 2 1 + 0.000 0.000 1.000 1.000 0.000 0.000 2.00 + 0.50000 0.50000 0.50000 -1 3 1 + 0.000 0.000 1.000 1.000 0.000 0.000 2.00 + 0.50000 0.50000 0.50000 -1 4 1 + 0.000 0.000 1.000 1.000 0.000 0.000 2.00 +end projections +``` where the first line tells us that in total four projections are specified, and the subsequent lines provide the projection centre, the -angular and radial parts of the orbital (see -Section [Orbital Definitions](projections.md#orbital-definitions) for definitions), the $z$ and $x$ axes, +angular and radial parts of the orbital (see Section +[Orbital Definitions](projections.md#orbital-definitions) for definitions), +the $z$ and $x$ axes, and the diffusivity and cut-off radius for the projection orbital. `pwscf`, or any other *ab initio* electronic structure code, @@ -388,7 +413,7 @@ number is the eigenvalue. E.g., -``` +```vi title="Input file" 1 1 -6.43858831271328 2 1 19.3977795287297 3 1 19.3977795287297 @@ -456,9 +481,8 @@ A number of keywords may be specified in the `pw2wannier90` input file: relevant if `write_unk=.true.`) !!! note - Note that there is a small bug with this feature in v3.2 (and - subsequent patches) of ` quantum-espresso`. Please use a later + subsequent patches) of `quantum-espresso`. Please use a later version (if available) or the CVS version of `pw2wannier90.f90`, which has been fixed. @@ -556,10 +580,12 @@ Then: `nsymmetry` blocks of data. Each block (separated by a blank line) consists of four lines. The order of the data in each block is as follows: +```vi title="Input file" R(1,1) R(2,1) R(3,1) R(1,2) R(2,2) R(3,2) R(1,3) R(2,3) R(3,3) t(1) t(2) t(3) +``` Here, $R$ is the rotational part of symmetry operations ($3\times3$ matrix), and $\bf t$ is the fractional translation in the unit of @@ -580,9 +606,8 @@ the [website of symWannier](https://github.com/wannier-utils-dev/symWannier) and Ref. [@Koretsune2023]. !!! note - The `symWannier` package also has the ability to construct - symmetry-adapted Wannier functions only from the `.mmn, `.amn` and `.eig` + symmetry-adapted Wannier functions only from the `.mmn,`.amn` and `.eig` files in the IBZ and some symmetry information. The procedure is as follows. @@ -633,10 +658,10 @@ The procedure is as follows. INPUT The format is the same as `seedname.mmn`, except that the number of -kpoints is the number of k-points in the IBZ. See also [the section on the `seedname.mmn` file](#seednamemmn-file). +kpoints is the number of k-points in the IBZ. See also +[the section on the `seedname.mmn` file](#seednamemmn-file). -`seedname.iamn` file --------------------- +## `seedname.iamn` file INPUT @@ -644,8 +669,7 @@ The format is the same as `seedname.amn`, except that the number of kpoints is the number of k-points in the IBZ. See also See also [the section on the `seedname.amn` file](#seednameamn-file). -`seedname.ieig` file --------------------- +## `seedname.ieig` file INPUT @@ -653,8 +677,7 @@ The format is the same as `seedname.eig`, except that the number of kpoints is the number of k-points in the IBZ. See also See also [the section on the `seedname.eig` file](#seednameeig-file). -`seedname.isym` file --------------------- +## `seedname.isym` file INPUT @@ -674,30 +697,30 @@ case). The order of the data in each block is as follows: Non-spinor case: -``` - a comment - R(1,1) R(2,1) R(3,1) - R(1,2) R(2,2) R(3,2) - R(1,3) R(2,3) R(3,3) - t(1) t(2) t(3) - T - invs +```vi title="Input file" +a comment +R(1,1) R(2,1) R(3,1) +R(1,2) R(2,2) R(3,2) +R(1,3) R(2,3) R(3,3) + t(1) t(2) t(3) + T + invs ``` Spinor case: -``` - a comment - R(1,1) R(2,1) R(3,1) - R(1,2) R(2,2) R(3,2) - R(1,3) R(2,3) R(3,3) - t(1) t(2) t(3) - T - u(1,1).real u(1,1).imag - u(2,1).real u(2,1).imag - u(1,2).real u(1,2).imag - u(2,2).real u(2,2).imag - invs +```vi title="Input file" +a comment +R(1,1) R(2,1) R(3,1) +R(1,2) R(2,2) R(3,2) +R(1,3) R(2,3) R(3,3) + t(1) t(2) t(3) + T +u(1,1).real u(1,1).imag +u(2,1).real u(2,1).imag +u(1,2).real u(1,2).imag +u(2,2).real u(2,2).imag + invs ``` Here, $R$ is the rotational part of symmetry operations, ($3 \times 3$ diff --git a/docs/docs/user_guide/wannier90/projections.md b/docs/docs/user_guide/wannier90/projections.md index db367fa8..7e71cb67 100644 --- a/docs/docs/user_guide/wannier90/projections.md +++ b/docs/docs/user_guide/wannier90/projections.md @@ -37,7 +37,7 @@ projection orbitals for different $n$, $l$ and $m_{\mathrm{r}}$. We use the following format to specify projections in `.win`: -``` +```vi title="Input file" Begin Projections [units] site:ang_mtm:zaxis:xaxis:radial:zona @@ -45,7 +45,7 @@ site:ang_mtm:zaxis:xaxis:radial:zona End Projections ``` -Notes: +### Notes `units`: Optional. Either `Ang` or `Bohr` to specify whether the projection @@ -97,21 +97,21 @@ always in reciprocal Angstrom. Default is `zona=1.0`. ### Examples -1. CuO, s,p and d on all Cu; sp$^3$ hybrids on O: +- CuO, s,p and d on all Cu; sp$^3$ hybrids on O: `Cu:l=0;l=1;l=2` `O:l=-3` or `O:sp3` -2. A single projection onto a p$_z$ orbital orientated in the (1,1,1) +- A single projection onto a p$_z$ orbital orientated in the (1,1,1) direction: `c=0,0,0:l=1,mr=1:z=1,1,1` or `c=0,0,0:pz:z=1,1,1` -3. Project onto s, p and d (with no radial nodes), and s and p (with +- Project onto s, p and d (with no radial nodes), and s and p (with one radial node) in silicon: - ``` + ```vi title="Input file" Si:l=0;l=1;l=2 Si:l=0;l=1:r=2 ``` @@ -128,7 +128,7 @@ interface between the ab-initio code and Wannier90 (i.e., written after the release of the 2.0 version, in October 2013) supporting spinor projections. -``` +```vi title="Input file" Begin Projections [units] site:ang_mtm:zaxis:xaxis:radial:zona(spin)[quant_dir] @@ -146,7 +146,7 @@ Default is `u,d` `1,0,0` -- set the spin quantisation axis to be in the (1,0,0) direction. Default is `0,0,1` -### Examples +### Spinor Examples - 18 projections on an iron site @@ -170,7 +170,7 @@ direction. Default is `0,0,1` - 9 projections onto up-states and 3 on down - ``` + ```vi title="Input file" Fe:sp3d2;dxy;dxz;dyz(u) Fe:dxy;dxz;dyz(d) ``` @@ -178,7 +178,7 @@ direction. Default is `0,0,1` - projections onto alternate spin states for two lattice sites (Cr1, Cr2) - ``` + ```vi title="Input file" Cr1:d(u) Cr2:d(d) ``` @@ -189,7 +189,7 @@ direction. Default is `0,0,1` It is possible to specify the projections, for example, as follows: -``` +```vi title="Input file" Begin Projections random C:sp3 @@ -224,6 +224,7 @@ are given in Table [Radial functions](#radial-functions). ### Angular functions + | $l$ | $m_{\mathrm{r}}$ | Name | $\Theta_{lm_{\mathrm{r}}}(\theta,\varphi)$ | |:---:|:----------------:|:------------:|:-------------------------------------------------------------------------------------------:| | 0 | 1 | `s` | $\frac{1}{\sqrt{4\pi}}$ | @@ -242,34 +243,37 @@ are given in Table [Radial functions](#radial-functions). | 3 | 5 | `fxyz` | $\frac{\sqrt{105}}{4\sqrt{\pi}}\sin^{2}\theta\cos\theta\sin2\varphi$ | | 3 | 6 | `fx(x2-3y2)` | $\frac{\sqrt{35}}{4\sqrt{2\pi}}\sin^{3}\theta(\cos^{2}\varphi-3\sin^{2}\varphi)\cos\varphi$ | | 3 | 7 | `fy(3x2-y2)` | $\frac{\sqrt{35}}{4\sqrt{2\pi}}\sin^{3}\theta(3\cos^{2}\varphi-\sin^{2}\varphi)\sin\varphi$ | + Angular functions $\Theta_{lm_{\mathrm{r}}}(\theta,\varphi)$ associated with particular values of $l$ and $m_{\mathrm{r}}$ for $l\ge0$. ### Hybrids -| $l$ | $m_{\mathrm{r}}$ | Name | $\Theta_{lm_{\mathrm{r}}}(\theta,\varphi)$ | -|:------------:|:----------------:|:---------:|:---------------------------------------------------------------------------:| -| -1 | 1 | `sp-1` | $\frac{1}{\sqrt{2}}$`s` $+\frac{1}{\sqrt{2}}$`px` | -| -1 | 2 | `sp-2` | $\frac{1}{\sqrt{2}}$`s` $-\frac{1}{\sqrt{2}}$`px` | -| -2 | 1 | `sp2-1` | $\frac{1}{\sqrt{3}}$`s` $-\frac{1}{\sqrt{6}}$`px` $+\frac{1}{\sqrt{2}}$`py` | -| -2 | 2 | `sp2-2` | $\frac{1}{\sqrt{3}}$`s` $-\frac{1}{\sqrt{6}}$`px` $-\frac{1}{\sqrt{2}}$`py` | -| -2 | 3 | `sp2-3` | $\frac{1}{\sqrt{3}}$`s` $+\frac{2}{\sqrt{6}}$`px` | -| -3 | 1 | `sp3-1` | $\frac{1}{2}$(`s` $+$ `px` $+$ `py` | | | | -| -3 | 2 | `sp3-2` | $\frac{1}{2}$(`s` $+$ `px` $-$ `py` $-$ `pz`) | -| -3 | 3 | `sp3-3` | $\frac{1}{2}$(`s` $-$ `px` $+$ `py` $-$ `pz`) | -| -3 | 4 | `sp3-4` | $\frac{1}{2}$(`s` $-$ `px` $-$ `py` $+$ `pz`) | -| -4 | 1 | `sp3d-1` | $\frac{1}{\sqrt{3}}$`s` $-\frac{1}{\sqrt{6}}$`px` $+\frac{1}{\sqrt{2}}$`py` | -| -4 | 2 | `sp3d-2` | $\frac{1}{\sqrt{3}}$`s` $-\frac{1}{\sqrt{6}}$`px` $-\frac{1}{\sqrt{2}}$`py` | -| -4 | 3 | `sp3d-3` | $\frac{1}{\sqrt{3}}$`s` $+\frac{2}{\sqrt{6}}$`px` | -| -4 | 4 | `sp3d-4` | $\frac{1}{\sqrt{2}}$`pz` $+\frac{1}{\sqrt{2}}$`dz2` | -| -4 | 5 | `sp3d-5` | $-\frac{1}{\sqrt{2}}$`pz` $+\frac{1}{\sqrt{2}}$`dz2` | -| -5 | 1 | `sp3d2-1` | $\frac{1}{\sqrt{6}}$`s`-$\frac{1}{\sqrt{2}}$`px`-$\frac{1}{\sqrt{12}}$`dz2`+$\frac{1}{2}$`dx2-y2` | -| -5 | 2 | `sp3d2-2` | $\frac{1}{\sqrt{6}}$`s`+$\frac{1}{\sqrt{2}}$`px`-$\frac{1}{\sqrt{12}}$`dz2`+$\frac{1}{2}$`dx2-y2` | -| -5 | 3 | `sp3d2-3` | $\frac{1}{\sqrt{6}}$`s`-$\frac{1}{\sqrt{2}}$`py`-$\frac{1}{\sqrt{12}}$`dz2`-$\frac{1}{2}$`dx2-y2` | -| -5 | 4 | `sp3d2-4` | $\frac{1}{\sqrt{6}}$`s`+$\frac{1}{\sqrt{2}}$`py`-$\frac{1}{\sqrt{12}}$`dz2`-$\frac{1}{2}$`dx2-y2` | -| -5 | 5 | `sp3d2-5` | $\frac{1}{\sqrt{6}}$`s`-$\frac{1}{\sqrt{2}}$`pz`+$\frac{1}{\sqrt{3}}$`dz2` | -| -5 | 6 | `sp3d2-6` | $\frac{1}{\sqrt{6}}$`s`+$\frac{1}{\sqrt{2}}$`pz`+$\frac{1}{\sqrt{3}}$`dz2` | + +| $l$ | $m_{\mathrm{r}}$ | Name | $\Theta_{lm_{\mathrm{r}}}(\theta,\varphi)$ | +|:------------:|:----------------:|:---------:|:-------------------------------------------------------------------------------------------------:| +| -1 | 1 | `sp-1` | $\frac{1}{\sqrt{2}}$`s` $+\frac{1}{\sqrt{2}}$`px` | +| -1 | 2 | `sp-2` | $\frac{1}{\sqrt{2}}$`s` $-\frac{1}{\sqrt{2}}$`px` | +| -2 | 1 | `sp2-1` | $\frac{1}{\sqrt{3}}$`s` $-\frac{1}{\sqrt{6}}$`px` $+\frac{1}{\sqrt{2}}$`py` | +| -2 | 2 | `sp2-2` | $\frac{1}{\sqrt{3}}$`s` $-\frac{1}{\sqrt{6}}$`px` $-\frac{1}{\sqrt{2}}$`py` | +| -2 | 3 | `sp2-3` | $\frac{1}{\sqrt{3}}$`s` $+\frac{2}{\sqrt{6}}$`px` | +| -3 | 1 | `sp3-1` | $\frac{1}{2}$(`s` $+$ `px` $+$ `py` | +| -3 | 2 | `sp3-2` | $\frac{1}{2}$(`s` $+$ `px` $-$ `py` $-$ `pz`) | +| -3 | 3 | `sp3-3` | $\frac{1}{2}$(`s` $-$ `px` $+$ `py` $-$ `pz`) | +| -3 | 4 | `sp3-4` | $\frac{1}{2}$(`s` $-$ `px` $-$ `py` $+$ `pz`) | +| -4 | 1 | `sp3d-1` | $\frac{1}{\sqrt{3}}$`s` $-\frac{1}{\sqrt{6}}$`px` $+\frac{1}{\sqrt{2}}$`py` | +| -4 | 2 | `sp3d-2` | $\frac{1}{\sqrt{3}}$`s` $-\frac{1}{\sqrt{6}}$`px` $-\frac{1}{\sqrt{2}}$`py` | +| -4 | 3 | `sp3d-3` | $\frac{1}{\sqrt{3}}$`s` $+\frac{2}{\sqrt{6}}$`px` | +| -4 | 4 | `sp3d-4` | $\frac{1}{\sqrt{2}}$`pz` $+\frac{1}{\sqrt{2}}$`dz2` | +| -4 | 5 | `sp3d-5` | $-\frac{1}{\sqrt{2}}$`pz` $+\frac{1}{\sqrt{2}}$`dz2` | +| -5 | 1 | `sp3d2-1` | $\frac{1}{\sqrt{6}}$`s`-$\frac{1}{\sqrt{2}}$`px`-$\frac{1}{\sqrt{12}}$`dz2`+$\frac{1}{2}$`dx2-y2` | +| -5 | 2 | `sp3d2-2` | $\frac{1}{\sqrt{6}}$`s`+$\frac{1}{\sqrt{2}}$`px`-$\frac{1}{\sqrt{12}}$`dz2`+$\frac{1}{2}$`dx2-y2` | +| -5 | 3 | `sp3d2-3` | $\frac{1}{\sqrt{6}}$`s`-$\frac{1}{\sqrt{2}}$`py`-$\frac{1}{\sqrt{12}}$`dz2`-$\frac{1}{2}$`dx2-y2` | +| -5 | 4 | `sp3d2-4` | $\frac{1}{\sqrt{6}}$`s`+$\frac{1}{\sqrt{2}}$`py`-$\frac{1}{\sqrt{12}}$`dz2`-$\frac{1}{2}$`dx2-y2` | +| -5 | 5 | `sp3d2-5` | $\frac{1}{\sqrt{6}}$`s`-$\frac{1}{\sqrt{2}}$`pz`+$\frac{1}{\sqrt{3}}$`dz2` | +| -5 | 6 | `sp3d2-6` | $\frac{1}{\sqrt{6}}$`s`+$\frac{1}{\sqrt{2}}$`pz`+$\frac{1}{\sqrt{3}}$`dz2` | + Angular functions $\Theta_{lm_{\mathrm{r}}}(\theta,\varphi)$ associated with particular values of $l$ and $m_{\mathrm{r}}$ for $l<0$, in terms @@ -278,11 +282,13 @@ Table [Angular functions](#angular-functions). ### Radial functions -|   $r$    | $R_{\mathrm{r}}(r)$ | -|:--------:|:------------------------------------------:| -| 1 | $2 \alpha^{3/2}\exp(-\alpha r)$ | -| 2 | $\frac{1}{2\sqrt{2}}\alpha^{3/2}(2-\alpha r)\exp(-\alpha r/2)$ | + +|   $r$    | $R_{\mathrm{r}}(r)$ | +|:--------:|:--------------------------------------------------------------------------------------:| +| 1 | $2 \alpha^{3/2}\exp(-\alpha r)$ | +| 2 | $\frac{1}{2\sqrt{2}}\alpha^{3/2}(2-\alpha r)\exp(-\alpha r/2)$ | | 3 | $\sqrt{\frac{4}{27}}\alpha^{3/2}(1-2\alpha r/3+2\alpha^{2}r^{2}/27)\exp(-\alpha r/3)$ | + One possible choice for the radial functions $R_{\mathrm{r}}(r)$ associated with different values of $r$: the set of solutions to the @@ -326,7 +332,7 @@ spin-noncollinear systems. The SCDM-**k** can operate in two modes: The following keywords need to be specified in the `pw2wannier90.x` input file `.pw2wan`: -``` +```vi title="Input file" scdm_proj scdm_entanglement scdm_mu @@ -363,7 +369,7 @@ Wannierisation, for such cases, one can inspect the stdout of `pw2wannier90`, which will print the orbitals used for computing `amn`, e.g., -``` +```vi title="Output file" ------------------------------------- *** Compute A with atomic projectors ------------------------------------- @@ -385,17 +391,21 @@ three $p$ orbitals. If one wants to exclude specific orbital(s), there is an additional input `atom_proj_exclude`, which accept a list of integers, e.g., -`atom_proj_exclude = 1 5` +```vi title="Input file" +atom_proj_exclude = 1 5 +``` which will exclude the two $s$ orbitals from computing `amn`. -#### Advanced usage +### Advanced usage If the pseudopotential orbitals are not enough, one could also generate a custom set of orbitals, and ask `pw2wannier90` to use them for computing `amn`. This can be done by setting -`atom_proj_dir = ’./ext_proj’` +```vi title="Input file" +atom_proj_dir = './ext_proj'` +``` where the directory `ext_proj` contains the orbitals for all the atomic species used in the calculation. For example, for a silicon calculation, @@ -405,7 +415,9 @@ format of the file is: 1. The first line contains two integers: the number of radial grid points ($n_g$) and the number of projectors ($n_p$), e.g., - 1141 2 + ```vi title="Input file" + 1141 2 + ``` which means the radial grid has $n_g = 1141$ points, and there are $n_p = 3$ projectors. @@ -413,7 +425,9 @@ format of the file is: 2. The second line contains $n_p$ integers specifying the angular momentums of all the projectors, e.g., - 0 1 + ```vi title="Input file" + 0 1 + ``` standing for the two projectors having $s$ and $p$ characters, respectively. @@ -424,7 +438,7 @@ format of the file is: they are related by $r = \exp(x)$. The rest are $n_p$ columns of the radial wavefunctions of the projectors, - ``` + ```vi title="Input file" -9.639057329615259 0.000065134426111 3.32211124436945e-05 1.86840239681223e-09 -9.626557329615258 0.000065953716334 3.363898259696903e-05 1.915701228607072e-09 -9.614057329615258 0.000066783311958 3.406210890972733e-05 1.964197436025957e-09 diff --git a/docs/docs/user_guide/wannier90/sample_inputs.md b/docs/docs/user_guide/wannier90/sample_inputs.md index 980d81d7..b9211ded 100644 --- a/docs/docs/user_guide/wannier90/sample_inputs.md +++ b/docs/docs/user_guide/wannier90/sample_inputs.md @@ -2,141 +2,145 @@ ## Master input file: `seedname.win` - num_wann : 4 - mp_grid : 4 4 4 - num_iter : 100 - postproc_setup : true - - begin unit_cell_cart - ang - -1.61 0.00 1.61 - 0.00 1.61 1.61 - -1.61 1.61 0.00 - end unit_cell_cart - - begin atoms_frac - C -0.125 -0.125 -0.125 - C 0.125 0.125 0.125 - end atoms_frac - - bands_plot : true - bands_num_points : 100 - bands_plot_format : gnuplot - - begin kpoint_path - L 0.50000 0.50000 0.50000 G 0.00000 0.00000 0.00000 - G 0.00000 0.00000 0.00000 X 0.50000 0.00000 0.50000 - X 0.50000 0.00000 0.50000 K 0.62500 0.25000 0.62500 - end kpoint_path - - begin projections - C:l=0,l=1 - end projections - - begin kpoints - 0.00 0.00 0.00 - 0.00 0.00 0.25 - 0.00 0.50 0.50 - . - . - . - 0.75 0.75 0.50 - 0.75 0.75 0.75 - end kpoints +```vi title="Input file" +num_wann : 4 +mp_grid : 4 4 4 +num_iter : 100 +postproc_setup : true + +begin unit_cell_cart +ang +-1.61 0.00 1.61 + 0.00 1.61 1.61 +-1.61 1.61 0.00 +end unit_cell_cart + +begin atoms_frac +C -0.125 -0.125 -0.125 +C 0.125 0.125 0.125 +end atoms_frac + +bands_plot : true +bands_num_points : 100 +bands_plot_format : gnuplot + +begin kpoint_path +L 0.50000 0.50000 0.50000 G 0.00000 0.00000 0.00000 +G 0.00000 0.00000 0.00000 X 0.50000 0.00000 0.50000 +X 0.50000 0.00000 0.50000 K 0.62500 0.25000 0.62500 +end kpoint_path + +begin projections +C:l=0,l=1 +end projections + +begin kpoints +0.00 0.00 0.00 +0.00 0.00 0.25 +0.00 0.50 0.50 + . + . + . +0.75 0.75 0.50 +0.75 0.75 0.75 +end kpoints +``` ## `seedname.nnkp` Running `wannier90` on the above input file would generate the following `nnkp` file: - File written on 9Feb2006 at 15:13: 9 - - calc_only_A : F - - begin real_lattice - -1.612340 0.000000 1.612340 - 0.000000 1.612340 1.612340 - -1.612340 1.612340 0.000000 - end real_lattice - - begin recip_lattice - -1.951300 -1.951300 1.951300 - 1.951300 1.951300 1.951300 - -1.951300 1.951300 -1.951300 - end recip_lattice - - begin kpoints - 64 - 0.00000 0.00000 0.00000 - 0.00000 0.25000 0.00000 - 0.00000 0.50000 0.00000 - 0.00000 0.75000 0.00000 - 0.25000 0.00000 0.00000 - . - . - . - 0.50000 0.75000 0.75000 - 0.75000 0.00000 0.75000 - 0.75000 0.25000 0.75000 - 0.75000 0.50000 0.75000 - 0.75000 0.75000 0.75000 - end kpoints - - begin projections - 8 - -0.12500 -0.12500 -0.12500 0 1 1 - 0.000 0.000 1.000 1.000 0.000 0.000 2.00 - -0.12500 -0.12500 -0.12500 1 1 1 - 0.000 0.000 1.000 1.000 0.000 0.000 2.00 - -0.12500 -0.12500 -0.12500 1 2 1 - 0.000 0.000 1.000 1.000 0.000 0.000 2.00 - -0.12500 -0.12500 -0.12500 1 3 1 - 0.000 0.000 1.000 1.000 0.000 0.000 2.00 - 0.12500 0.12500 0.12500 0 1 1 - 0.000 0.000 1.000 1.000 0.000 0.000 2.00 - 0.12500 0.12500 0.12500 1 1 1 - 0.000 0.000 1.000 1.000 0.000 0.000 2.00 - 0.12500 0.12500 0.12500 1 2 1 - 0.000 0.000 1.000 1.000 0.000 0.000 2.00 - 0.12500 0.12500 0.12500 1 3 1 - 0.000 0.000 1.000 1.000 0.000 0.000 2.00 - end projections - - begin nnkpts - 8 - 1 2 0 0 0 - 1 4 0 -1 0 - 1 5 0 0 0 - 1 13 -1 0 0 - 1 17 0 0 0 - 1 22 0 0 0 - 1 49 0 0 -1 - 1 64 -1 -1 -1 - 2 1 0 0 0 - 2 3 0 0 0 - 2 6 0 0 0 - 2 14 -1 0 0 - 2 18 0 0 0 - 2 23 0 0 0 - 2 50 0 0 -1 - 2 61 -1 0 -1 - . - . - . - 64 1 1 1 1 - 64 16 0 0 1 - 64 43 0 0 0 - 64 48 0 0 0 - 64 52 1 0 0 - 64 60 0 0 0 - 64 61 0 1 0 - 64 63 0 0 0 - end nnkpts - - begin exclude_bands - 4 - 1 - 2 - 3 - 4 - end exclude_bands +```vi title="Output file" +File written on 9Feb2006 at 15:13: 9 + +calc_only_A : F + +begin real_lattice + -1.612340 0.000000 1.612340 + 0.000000 1.612340 1.612340 + -1.612340 1.612340 0.000000 +end real_lattice + +begin recip_lattice + -1.951300 -1.951300 1.951300 + 1.951300 1.951300 1.951300 + -1.951300 1.951300 -1.951300 +end recip_lattice + +begin kpoints + 64 + 0.00000 0.00000 0.00000 + 0.00000 0.25000 0.00000 + 0.00000 0.50000 0.00000 + 0.00000 0.75000 0.00000 + 0.25000 0.00000 0.00000 + . + . + . + 0.50000 0.75000 0.75000 + 0.75000 0.00000 0.75000 + 0.75000 0.25000 0.75000 + 0.75000 0.50000 0.75000 + 0.75000 0.75000 0.75000 +end kpoints + +begin projections + 8 + -0.12500 -0.12500 -0.12500 0 1 1 + 0.000 0.000 1.000 1.000 0.000 0.000 2.00 + -0.12500 -0.12500 -0.12500 1 1 1 + 0.000 0.000 1.000 1.000 0.000 0.000 2.00 + -0.12500 -0.12500 -0.12500 1 2 1 + 0.000 0.000 1.000 1.000 0.000 0.000 2.00 + -0.12500 -0.12500 -0.12500 1 3 1 + 0.000 0.000 1.000 1.000 0.000 0.000 2.00 + 0.12500 0.12500 0.12500 0 1 1 + 0.000 0.000 1.000 1.000 0.000 0.000 2.00 + 0.12500 0.12500 0.12500 1 1 1 + 0.000 0.000 1.000 1.000 0.000 0.000 2.00 + 0.12500 0.12500 0.12500 1 2 1 + 0.000 0.000 1.000 1.000 0.000 0.000 2.00 + 0.12500 0.12500 0.12500 1 3 1 + 0.000 0.000 1.000 1.000 0.000 0.000 2.00 +end projections + +begin nnkpts + 8 + 1 2 0 0 0 + 1 4 0 -1 0 + 1 5 0 0 0 + 1 13 -1 0 0 + 1 17 0 0 0 + 1 22 0 0 0 + 1 49 0 0 -1 + 1 64 -1 -1 -1 + 2 1 0 0 0 + 2 3 0 0 0 + 2 6 0 0 0 + 2 14 -1 0 0 + 2 18 0 0 0 + 2 23 0 0 0 + 2 50 0 0 -1 + 2 61 -1 0 -1 + . + . + . + 64 1 1 1 1 + 64 16 0 0 1 + 64 43 0 0 0 + 64 48 0 0 0 + 64 52 1 0 0 + 64 60 0 0 0 + 64 61 0 1 0 + 64 63 0 0 0 +end nnkpts + +begin exclude_bands + 4 + 1 + 2 + 3 + 4 +end exclude_bands +``` diff --git a/docs/docs/user_guide/wannier90/transport.md b/docs/docs/user_guide/wannier90/transport.md index 64067050..41d1d28f 100644 --- a/docs/docs/user_guide/wannier90/transport.md +++ b/docs/docs/user_guide/wannier90/transport.md @@ -8,7 +8,7 @@ system. The results will be written to files `seedname_qc.dat` and The system for which transport properties are calculated is determined by the keyword `transport_mode`. -### `transport_mode = bulk` +## `transport_mode = bulk` Quantum conductance and density of states are calculated for a perfectly periodic one-dimensional conductor. If @@ -20,7 +20,7 @@ allows the user to provide an external Hamiltonian matrix file Section [Post-Processing](parameters.md#post-processing) for more details of the keywords required for such calculations. -### `transport_mode = lcr` +## `transport_mode = lcr` Quantum conductance and density of states are calculated for a system where semi-infinite, left and right leads are connected through a @@ -35,10 +35,10 @@ In `wannier90` two options exist for performing such calculations: - If `tran_read_ht = FALSE`, then the transport calculation is performed automatically using the Wannier functions - as a basis and the 2c2 geometry described in - Section [Automated lcr Transport Calculations: The 2c2 Geometry](#sec:2c2). + as a basis and the 2c2 geometry described in Section + [Automated lcr Transport Calculations: The 2c2 Geometry](#automated-lcr-transport-calculations-the-2c2-geometry). -### Automated lcr Transport Calculations: The 2c2 Geometry {#sec:2c2} +## Automated lcr Transport Calculations: The 2c2 Geometry Calculations using the 2c2 geometry provide a method to calculate the transport properties of an lcr system from a single @@ -135,5 +135,5 @@ file: A further parameter related to these calculations is `tran_group_threshold`. -Tutorial of [how 2c2 calculations are preformed](../../tutorials/tutorial_14.md) can be found in the -`wannier90` Tutorial. +Tutorial of [how 2c2 calculations are preformed](../../tutorials/tutorial_14.md) +can be found in the `wannier90` Tutorial. diff --git a/docs/logos/README.md b/docs/logos/README.md index 6d926386..0bf209f3 100644 --- a/docs/logos/README.md +++ b/docs/logos/README.md @@ -1,3 +1,3 @@ -These are the Wannier90 official logos in plain svg and png formats. -The source Inkscape files used to generate the logos are also provided, -these contain both the outlined and the original lato font. +These are the Wannier90 official logos in plain svg and png formats. +The source Inkscape files used to generate the logos are also provided, +these contain both the outlined and the original lato font.