Parameters¶
Introduction¶
The wannier90.x
code described in
Part wannier90.x calculates the
maximally-localized Wannier functions.
The postw90.x
executable contains instead a series of modules that
take the Wannier functions calculated by wannier90.x
and use them to
calculate different properties. This executable is parallel (by means of
MPI libraries), so it can be run on multiple CPUs. The information on
the calculated Wannier functions is read from the checkpoint
seedname.chk
file. Note that this is written in an unformatted
machine-dependent format. If you need to use this file on a different
machine, or you want to use a version of postw90.x
compiled with a
different compiler, refer to
Sec. w90chk2chk
in the Appendices for a description of how
to export/import this file.
Usage¶
postw90.x
can be run in parallel using MPI libraries to reduce the
computation time.
For serial execution use: postw90.x [seedname]
seedname
: If a seedname string is given the code will read its input from a fileseedname.win
. The default value iswannier
. One can also equivalently provide the stringseedname.win
instead ofseedname
.
For parallel execution use: mpirun -np NUMPROCS postw90.x [seedname]
NUMPROCS
: substitute with the number of processors that you want to use.
Note that the mpirun
command and command-line flags may be different
in your MPI implementation: read your MPI manual or ask your computer
administrator.
Note also that this requires that the postw90.x
executable has been
compiled in its parallel version (follow the instructions in the file
README.install
in the main directory of the wannier90 distribution)
and that the MPI libraries and binaries are installed and correctly
configured on your machine.
seedname.win
File¶
The postw90.x
uses the same seedname.win
input file of
wannier90.x
. The input keywords of postw90.x
must thus be added to
this file, using the same syntax described in
Sec. wannier90.x.
Note that wannier90.x
checks if the syntax of the input file is
correct, but then ignores the value of the flags that refer only to
modules of postw90.x
, so one can safely run wannier90.x
on a file
that contains also postw90.x
flags.
Similarly, postw90.x
ignores flags that refer only to wannier90.x
(as number of iterations, restart flags, ...). However, some parts of
the input file must be there, as for instance the number of Wannier
functions, etc.
The easiest thing to do is therefore to simply add the postw90
input
keywords to the seedname.win
file that was used to obtain the Wannier
functions.
List of available modules¶
The currently available modules in postw90.x
are:
-
dos
: Calculation of the density of states (DOS), projected density of states (PDOS), net spin etc. -
kpath
: Calculation of \(k\)-space quantities such as energy bands, Berry curvature and Berry curvature-like term of spin Hall conductivity along a piecewise linear path in the BZ (see tutorials 17, 18 and 29 of the tutorial). -
kslice
: Calculation of \(k\)-space quantities on a planar slice of the BZ (see tutorials 17, 18 and 29 of the tutorial). -
berry
: Calculation of properties related to the BZ integral of the Berry curvature, Berry connection and Berry curvature-like term of spin Hall conductivity, including anomalous Hall conductivity, orbital magnetisation, optical conductivity, nonlinear shift current and spin Hall conductivity (see Chap. Berry and tutorials 18, 19, 25, 29 and 30 of the tutorial). It also includes an option to compute \(k\cdot p\) expansion coefficients (see Sec. kdotp and tutorial 33 of the tutorial). -
gyrotropic
: Calculation of gyrotropic properties, including natural and current0induced optical rotation, and the current-induced magnetization (see Chap. Gyrotropic and tutorial 24 of the tutorial). -
BoltzWann
: Calculation of electronic transport properties for bulk materials using the semiclassical Boltzmann transport equation (see Chap. BoltzWann and tutorial 16 of the tutorial). -
geninterp
(Generic Band Interpolation): Calculation band energies (and band derivatives) on a generic list of \(k\) points (see Chap. Geninterp).
Keyword List¶
On the next pages the list of available input keywords is reported. In
particular,
Table Global Parameters of postw90
reports
keywords that affect the
generic behavior of all modules of . Often, these are "global" variables
that can be overridden by module-specific keywords (as for instance the
kmesh
flag). The subsequent tables describe the input parameters for
each specific module.
A description of the behaviour of the global flags is described
Sec. Global variables; the description of the flags
specific to the modules can be found in the following sections.
Global Parameters of postw90
¶
Keyword | Type | Description |
---|---|---|
kmesh | I | Dimensions of the uniform interpolation \(k\)-mesh (one or three integers) |
kmesh_spacing | R | Minimum spacing between \(k\) points in Å\(^{-1}\) |
adpt_smr | L | Use adaptive smearing |
adpt_smr_fac | R | Adaptive smearing prefactor |
adpt_smr_max | P | Maximum allowed value for the adaptive energy smearing (eV) |
smr_type | S | Analytical form used for the broadened delta function |
smr_fixed_en_width | P | Energy smearing (if non-adaptive) |
num_elec_per_state | I | Number of electrons per state |
scissors_shift | P | Scissors shift applied to the conduction bands (eV) (deprecated) |
num_valence_bands | I | Number of valence bands |
spin_decomp | L | Decompose various properties into up-spin, down-spin, and possibly spin-flip parts |
spin_axis_polar | P | Polar angle of the spin quantization axis (deg) |
spin_axis_azimuth | P | Azimuthal angle of the spin quantization axis (deg) |
spin_moment\(^*\) | L | Determines whether to evaluate the spin magnetic moment per cell |
uHu_formatted | L | Read a formatted seedname.uHu file |
spn_formatted | L | Read a formatted seedname.spn file |
berry_curv_unit | S | Unit of Berry curvature |
seedname.win
file keywords controlling the general behaviour of
the modules in postw90
. Argument types are represented by, I for a integer, R
for a real number, P for a physical value, L for a logical value and S
for a text string.
* The keyword spin_moment
does not affect the behavior of the modules
in , and does not really belong to any of them. It is listed here for
lack of a better place.
berry
Parameters¶
Keyword | Type | Description |
---|---|---|
berry | L | Calculate Berry-type quantities |
berry_task | S | List of properties to compute |
[berry_]kmesh | I | Dimensions of the uniform interpolation \(k\)-mesh (one or three integers) |
[berry_]kmesh_spacing | R | Minimum spacing between \(k\) points in Å\(^{-1}\) |
berry_curv_adpt_kmesh | I | Linear dimension of the adaptively refined \(k\)-mesh used to compute the anomalous/spin Hall conductivity |
berry_curv_adpt_kmesh_thresh | P | Threshold magnitude of the Berry curvature for adaptive refinement |
kubo_freq_min | P | Lower limit of the frequency range for optical spectra, JDOS, shift current and spin Hall conductivity (eV) |
kubo_freq_max | P | Upper limit of the frequency range for optical spectra, JDOS, shift current and spin Hall conductivity (eV) |
kubo_freq_step | R | Step for increasing the optical frequency in the specified range |
kubo_eigval_max | P | Maximum energy eigenvalue included when evaluating the Kubo-Greenwood conductivity, JDOS, shift current and spin Hall conductivity |
[kubo_]adpt_smr | L | Use adaptive energy smearing for the optical conductivity, JDOS, shift current and spin Hall conductivity |
[kubo_]adpt_smr_fac | R | Adaptive smearing prefactor |
[kubo_]adpt_smr_max | P | Maximum allowed value for the adaptive energy smearing (eV) |
[kubo_]smr_type | S | Analytical form used for the broadened delta function when computing the optical conductivity, JDOS, shift current and spin Hall conductivity |
[kubo_]smr_fixed_en_width | P | Energy smearing (if non-adaptive) for the optical conductivity, JDOS, shift current and spin Hall conductivity (eV) |
sc_eta | R | Energy broadening of energy differences in the sum over virtual states when computing shift current |
sc_phase_conv | I | Convention for phase factor of Bloch states when computing shift current |
sc_w_thr | R | Frequency threshold for speeding up delta function integration when computing shift current |
sc_use_eta_corr | L | Use finite-eta correction for computing shift current |
shc_freq_scan | L | Calculate Fermi energy scan or frequency scan of spin Hall conductivity |
shc_method | S | How to obtain the spin current matrix elements for SHC |
shc_alpha | I | The spin current direction of spin Hall conductivity |
shc_beta | I | The direction of applied electrical field of spin Hall conductivity |
shc_gamma | I | The spin direction of the spin current of spin Hall conductivity |
shc_bandshift | L | Rigid bandshift of the conduction bands |
shc_bandshift_firstband | I | Index of the first band to shift |
shc_bandshift_energyshift | P | Energy shift of the conduction bands (eV) |
kdotp_kpoint | R | \(k\) point for \(k\cdot p\) expansion (\(2\pi/a\), with \(a\) lattice constant in Å) |
kdotp_num_bands | I | Number of bands for \(k\cdot p\) expansion |
kdotp_bands | I | Band indexes corresponding to the \(k\cdot p\) bands |
seedname.win
file keywords controlling the berry
module.
Argument types are represented by, I for a integer, R for a real
number, P for a physical value, L for a logical value and S for a text
string.
dos
Parameters¶
Keyword | Type | Description |
---|---|---|
dos | L | Calculate the density of states and related properties |
dos_task | S | List of properties to compute |
dos_energy_min | P | Lower limit of the energy range for computing the DOS (eV) |
dos_energy_max | P | Upper limit of the energy range for computing the DOS (eV) |
dos_energy_step | R | Step for increasing the energy in the specified range (eV) |
dos_project | I | List of WFs onto which the DOS is projected |
[dos_]kmesh | I | Dimensions of the uniform interpolation \(k\)-mesh (one or three integers) |
[dos_]kmesh_spacing | R | Minimum spacing between \(k\) points in Å\(^{-1}\) |
[dos_]adpt_smr | L | Use adaptive smearing for the DOS |
[dos_]adpt_smr_fac | R | Adaptive smearing prefactor |
[dos_]adpt_smr_max | P | Maximum allowed value for the adaptive energy smearing (eV) |
[dos_]smr_fixed_en_width | P | Energy smearing (if non-adaptive) for the DOS (eV) |
[dos_]smr_type | S | Analytical form used for the broadened delta function when computing the DOS. |
seedname.win
file keywords controlling the dos
module.
Argument types are represented by, I for a integer, R for a real number,
P for a physical value, L for a logical value and S for a text string.
kpath
Parameters¶
Keyword | Type | Description |
---|---|---|
kpath | L | Calculate properties along a piecewise linear path in the BZ |
kpath_task | L | List of properties to evaluate |
kpath_num_points | I | Number of points in the first kpath segment |
kpath_bands_colour | S | Property used to colour the energy bands along the path |
seedname.win
file keywords controlling the kpath
module.
Argument types are represented by, I for a integer, R for a real
number, P for a physical value, L for a logical value and S for a text
string.
kslice
Parameters¶
Keyword | Type | Description |
---|---|---|
kslice | L | Calculate properties on a slice in the BZ |
kslice_task | S | List of properties to evaluate |
kslice_corner | R | Position of the corner of the slice |
kslice_b1 | R | First vector defining the slice |
kslice_b2 | R | Second vector defining the slice |
kslice_2dkmesh | I | Dimensions of the uniform interpolation \(k\)-mesh on the slice (one or two integers) |
kslice_fermi_level | P | This parameter is not used anymore. Use fermi_energy instead. |
kslice_fermi_lines_colour | S | Property used to colour the Fermi lines |
seedname.win
file keywords controlling the kslice
module. Argument types
are represented by, I for a integer, R for a real number, P for a physical
value, L for a logical value and S for a text string.
gyrotropic
Parameters¶
Keyword | Type | Description |
---|---|---|
gyrotropic | L | Calculate gyrotropic quantities |
gyrotropic_task | L | List of properties to compute |
[gyrotropic_]kmesh | I | Dimensions of the uniform interpolation \(k\)-mesh (one or three integers) |
[gyrotropic_]kmesh_spacing | R | Minimum spacing between \(k\) points in Å\(^{-1}\) |
gyrotropic_freq_min | P | Lower limit of the frequency range for optical rotation (eV) |
gyrotropic_freq_max | P | Upper limit of the frequency range for optical rotation (eV) |
gyrotropic_freq_step | P | Step for increasing the optical frequency in the specified range |
gyrotropic_eigval_max | P | Maximum energy eigenvalue included when evaluating the interband natural optical activity |
gyrotropic_degen_thresh | P | threshold to exclude degenerate bands from the calculation |
[gyrotropic_]smr_type | S | Analytical form used for the broadened delta function |
[gyrotropic_]smr_fixed_en_width | P | Energy smearing (eV) |
[gyrotropic_]band_list | I | list of bands used in the calculation |
gyrotropic_box_center gyrotropic_box_b1 gyrotropic_box_b2 gyrotropic_box_b3 |
R R R R |
The center and three basis vectors, defining the box for integration (in reduced coordinates, three real numbers for each vector) |
seedname.win
file keywords controlling the gyrotropic
module.
Argument types are represented by, I for a integer, R for a real
number, P for a physical value, L for a logical value and S for a text
string.
BoltzWann
Parameters¶
Keyword | Type | Description |
---|---|---|
boltzwann | L | Calculate Boltzmann transport coefficients |
[boltz_]kmesh | I | Dimensions of the uniform interpolation \(k\)-mesh (one or three integers) |
[boltz_]kmesh_spacing | R | Minimum spacing between \(k\) points in Å\(^{-1}\) |
boltz_2d_dir | S | Non-periodic direction (for 2D systems only) |
boltz_relax_time | P | Relaxation time in fs |
boltz_mu_min | P | Minimum value of the chemical potential \(\mu\) in eV |
boltz_mu_max | P | Maximum value of the chemical potential \(\mu\) in eV |
boltz_mu_step | R | Step for \(\mu\) in eV |
boltz_temp_min | P | Minimum value of the temperature \(T\) in Kelvin |
boltz_temp_max | P | Maximum value of the temperature \(T\) in Kelvin |
boltz_temp_step | R | Step for \(T\) in Kelvin |
boltz_tdf_energy_step | R | Energy step for the TDF (eV) |
boltz_tdf_smr_fixed_en_width | P | Energy smearing for the TDF (eV) |
boltz_tdf_smr_type | S | Smearing type for the TDF |
boltz_calc_also_dos | L | Calculate also DOS while calculating the TDF |
boltz_dos_energy_min | P | Minimum value of the energy for the DOS in eV |
boltz_dos_energy_max | P | Maximum value of the energy for the DOS in eV |
boltz_dos_energy_step | R | Step for the DOS in eV |
[boltz_]smr_type | S | Smearing type for the DOS |
[boltz_]adpt_smr | L | Use adaptive smearing for the DOS |
[boltz_]adpt_smr_fac | R | Adaptive smearing prefactor |
[boltz_]adpt_smr_max | P | Maximum allowed value for the adaptive energy smearing (eV) |
[boltz_]fixed_en_width | P | Energy smearing (if non-adaptive) for the DOS (eV) |
boltz_bandshift | L | Rigid bandshift of the conduction bands |
boltz_bandshift_firstband | I | Index of the first band to shift |
boltz_bandshift_energyshift | P | Energy shift of the conduction bands (eV) |
seedname.win
file keywords controlling the BoltzWann
module (calculation of
the Boltzmann transport coefficients in the Wannier basis). Argument
types are represented by, I for a integer, R for a real number, P for
a physical value, L for a logical value and S for a text string.
geninterp
Parameters¶
Keyword | Type | Description |
---|---|---|
geninterp | L | Calculate bands for given set of \(k\) points |
geninterp_alsofirstder | L | Calculate also first derivatives |
geninterp_single_file | L | Write a single file or one for each process |
seedname.win
file keywords controlling the Generic Band Interpolation
(geninterp
) module. Argument types are represented by, I for a integer,
R for a real number, P for a physical value, L for a logical value and S for
a text string.
Global variables¶
integer :: kmesh(:)
¶
Dimensions of the interpolation grid used in postw90.x
.
Not to be confused with the mp_grid
input flag, which instead
specifies the Monkhorst--Pack grid used in the ab-initio calculation!
If three integers \(l\) \(m\) \(n\) are given, the reciprocal-space cell subtended by the three primitive translations is sampled on a uniform \(l\times m\times n\) grid (including \(\Gamma\)). If only one integer \(m\) is given, an \(m\times m\times m\) grid is used.
If you use a module which needs a k-mesh, either kmesh_spacing
or
kmesh
must be defined.
real(kind=dp) :: kmesh_spacing
¶
An alternative way of specifying the interpolation grid. This flag defines the minimum distance for neighboring \(k\) points along each of the three directions in \(k\) space.
The units are Å\(^{-1}\).
If you use a module which needs a k-mesh, either kmesh_spacing
or
kmesh
must be defined.
logical :: adpt_smr
¶
Determines whether to use an adaptive scheme for broadening the DOS and
similar quantities defined on the energy axis. If true
, the values for
the smearing widths are controlled by the flag adpt_smr_fac
.
The default value is true
.
real(kind=dp) :: adpt_smr_fac
¶
The width \(\eta_{n{\bf k}}\) of the broadened delta function used to
determine the contribution to the spectral property (DOS, ...) from
band \(n\) at point \({\bf k}\) is calculated as
\(\eta_{n{\bf k}}=\alpha\vert \nabla_{\bf k}
\varepsilon_{n{\bf k}}\vert \Delta k,\) where \(\varepsilon_{n{\bf k}}\)
is the energy eigenvalue and the dimensionless factor \(\alpha\) is given
by adpt_smr_fac
. \(\Delta k\) is taken to be the largest of the mesh
spacings along the three reciprocal lattice vectors \({\bf b_1}\), \({\bf
b_2}\), and \({\bf b_3}\). If the calculated value of \(\eta_{n{\bf
k}}\) exceeds adpt_smr_max
, the latter value is used.
The default value is \(\sqrt{2}\).
real(kind=dp) :: adpt_smr_max
¶
See description given immediately above.
The units are eV. The default value is 1.0.
character(len=120) :: smr_type
¶
Defines the analytical form used for the broadened delta function in the computation of the DOS and similar quantities defined on the energy axis.
-
gauss
: Gaussian smearing -
m-pN
: derivative of the \(N\)-th order Methfessel-Paxton function (\(N\geq 0\)). Example:m-p2
for the second-order Methfessel-Paxton function. If onlym-p
is provided, the first-order function is used, i.e., it is equivalent tom-p1
. -
m-v
orcold
: derivative of the Marzari--Vanderbilt cold-smearing function -
f-d
: derivative of the Fermi-Dirac distribution function
The default value is gauss
.
logical :: smr_fixed_en_width
¶
Energy width for the smearing function for the DOS. Used only if
adpt_smr
is false
.
The units are eV. The default value is 0 eV. Note that if the width is
smaller than twice the energy step (e.g. dos_energy_step
for the dos
module), the DOS will be unsmeared (thus the default is to have an
unsmeared properties when adpt_smr
is set to false
.).
integer :: num_elec_per_state
¶
Number of electrons per state. It can only take the values one or two.
The default value is 1 if spinors=true
, 2 otherwise.
real(kind=dp) :: scissors_shift
¶
Scissors shift applied to the conduction bands.
Note
This variable is deprecated and will be removed in future
versions of the code. This applies the scissors shift only to the
Hamiltonian, but also other matrices might need to be updated if a
scissors shift is applied. If you are using BoltzWann, consider using
boltz_bandshift
instead. If you are calculating spin Hall
conductivity, consider using shc_bandshift
instead.
The units are eV. The default value is 0 eV (i.e., no scissors shift applied).
integer :: num_valence_bands
¶
Number of valence bands of the system. Used in different modules and for the scissors shift.
No default value.
logical :: spin_decomp
¶
If true
, extra columns are added to some output files (such as
seedname-dos.dat
for the dos
module, and analogously for the berry
and BoltzWann
modules).
For the dos
and BoltzWann
modules, two further columns are
generated, which contain the decomposition of the required property
(e.g., total or orbital-projected DOS) of a spinor calculation into
up-spin and down-spin parts (relative to the quantization axis defined
by the input variables spin_axis_polar
and spin_axis_azimuth
). For
the berry
module with berry_task = kubo
, three extra columns are
added to seedname-jdos.dat
, containing the decomposition of the JDOS
into up \(\rightarrow\) up, down \(\rightarrow\) down, and spin-flip
transitions. In the same way, six extra columns are added to the data
files seedname-kubo*.dat
where the complex optical conductivity is
stored.
The file seedname.spn
must be present at input. Furthermore, if this
variable is set to true
it requires num_elec_per_state = 1
.
The default value is false
.
real(kind=dp) :: spin_axis_polar
¶
Polar angle of the spin quantization axis.
The units are degrees. The default value is 0.
real(kind=dp) :: spin_axis_azimuth
¶
Azimuthal angle of the spin quantization axis.
The units are degrees. The default value is 0.
logical :: spin_moment
¶
Determines whether to evaluate the spin moment.
The default value is false
.
logical :: uHu_formatted
¶
If uHu_formatted
=true
, then the uHu matrix elements will be read
from disk as formatted (ie ASCII) files; otherwise they will be read as
unformatted files.
The default value of this parameter is false
.
logical :: spn_formatted
¶
If spn_formatted
=true
, then the spin matrix elements will be read
from disk as formatted (ie ASCII) files; otherwise they will be read as
unformatted files. Unformatted is generally preferable as the files will
take less disk space and I/O is significantly faster. However such files
will not be transferable between all machine architectures and formatted
files should be used if transferability is required (i.e., for test
cases).
The default value is false
.
character(len=20) :: berry_curv_unit
¶
Unit in which the Berry curvature is specified at input (in
berry_curv_adpt_kmesh_thresh
) or written to file (when
kpath_task=curv
or kpath_task=shc
or kslice_task=curv
or
kslice_task=shc
).
-
ang2
: Angstrom\(^2\) -
bohr2
: Bohr\(^2\) (atomic units)
The default value is ang2
.
logical :: sc_use_eta_corr
¶
If sc_use_eta_corr=true
, apply the finite-eta correction of the shift
current (Eq. (19) of Ref. 1). Without the
correction, the convention of the Bloch sum (determined by
sc_phase_conv
) can affect the computed shift-current spectra. See Ref.
1 for details.
The default value is true
.
DOS¶
Note that the behavior of the dos
module is also influenced by the
value of some global flags (listed in
Table Global Parameters of postw90),
as spin_decomp
,
spin_axis_polar
, spin_axis_azimuth
, scissors_shift
, etc. Some of
the global flags can be possibly overridden by local flags of the DOS
module, listed below, which have the same name of the global flag but
are prefixed by dos_
.
logical :: dos
¶
Determines whether to enter the DOS routines.
The default value is false
.
character(len=20) :: dos_task
¶
The quantity to compute when dos=true
The valid options for this parameter are:
dos_plot
Density of states. An output data fileseedname-dos.dat
is created, containing the energy values in eV in the first column, and the total DOS per unit cell and unit energy range (in eV\(^{-1}\)) in the second. Two additional columns are present ifspin_decomp=true
The default value is dos_plot
.
real(kind=dp) :: dos_energy_min
¶
Lower limit of the energy range for computing the DOS. Units are eV.
The default value is the minimum value of the energy eigenvalues stored
in seedname.eig
, minus 0.6667.
real(kind=dp) :: dos_energy_max
¶
Upper limit of the energy range for computing the DOS. Units are eV.
If an inner energy window was specified, the default value is the upper
bound of the innter energy window, plus 0.6667. Otherwise it is the
maximum value of the energy eigenvalues stored in seedname.eig
, plus
0.6667.
real(kind=dp) :: dos_energy_step
¶
Energy step for the grid of energies used to plot the dos. Units are eV.
The default value is 0.01 eV.
integer :: dos_project(:)
¶
If present postw90
computes, instead of the total DOS, the partial DOS
projected onto the WFs listed. The WFs are numbered according to the
file seedname.wout
.
For example, to project onto WFs 2, 6, 7, 8, and 12:
dos_project : 2, 6-8, 12
The DOS projected onto a set \({\cal S}\) of orbitals is calculated as
where \(N_k\) is the number of mesh points used to sample the BZ, and the superscript (H) and (W) refer to Hamiltonian gauge and Wannier gauge 2.
integer :: dos_kmesh(:)
¶
Overrides the kmesh
global variable (see
Sec. Global variables).
real(kind=dp) :: dos_kmesh_spacing
¶
Overrides the kmesh_spacing
global variable (see
Sec. Global variables).
logical :: dos_adpt_smr
¶
Overrides the adpt_smr
global variable (see
Sec. Global variables).
real(kind=dp) :: dos_adpt_smr_fac
¶
Overrides the adpt_smr_fac
global variable (see
Sec. Global variables).
real(kind=dp) :: dos_adpt_smr_max
¶
Overrides the adpt_smr_max
global variable (see
Sec. Global variables).
logical :: dos_smr_fixed_en_width
¶
Overrides the smr_fixed_en_width
global variable (see
Sec. Global variables).
Note that if the width is smaller than twice the energy step
dos_energy_step
, the DOS will be unsmeared (thus the default is to
have an unsmeared DOS).
character(len=20) :: dos_smr_type
¶
Overrides the smr_type
global variable (see
Sec. Global variables).
kpath¶
logical :: kpath
¶
Determines whether to enter the kpath routines.
The default value is false
.
character(len=20) :: kpath_task
¶
The quantities to plot when kpath=true
The valid options for this parameter are:
-
bands
Energy bands, in eV. The following files are created:-
seedname-bands.dat
(data file) -
seedname-bands.gnu
(gnuplot
script) -
seedname-bands.py
(python
script) -
seedname-path.kpt
(list of \(k\)-points along the path, written in thepwscf
format)
-
-
curv
Minus the Berry curvature given by Berry Eq. [anomalous Hall Conductivity] of Ch. Berry, in units ofberry_curv_unit
. The following files are created:-
seedname-curv.dat
(data file) -
seedname-curv_{x,y,z}.gnu
(gnuplot
scripts) -
seedname-curv_{x,y,z}.py
(python
scripts)
-
-
morb
The integrand of the \(k\)-space orbital magnetization formula [Berry Eq. [orbital magnetization] of Ch. Berry] in eV\(\cdot\)Å\(^2\). Four output files are created:-
seedname-morb.dat
(data file) -
seedname-morb_{x,y,z}.gnu
(gnuplot
scripts) -
seedname-morb_{x,y,z}.py
(python
scripts)
-
-
shc
The band-projected Berry curvature-like term of spin Hall conductivity given by Berry Eq. [spin Hall conductivity] of Ch. Berry, in units ofberry_curv_unit
. The following files are created:-
seedname-shc.dat
(data file) -
seedname-shc.gnu
(gnuplot
scripts) -
seedname-shc.py
(python
scripts)
-
-
Any combination of the above. The following combinations are of special interest
-
kpath_task = bands+curv
-
kpath_task = bands+morb
-
kpath_task = bands+shc
They generate the following files:
-
seedname-bands.dat
(data file) -
seedname-{curv,morb,shc}.dat
(data file) -
seedname-bands+{curv,morb}_{x,y,z}.py
orseedname-bands+shc.py
(python
scripts)
Two-panel figures are produced, with the energy bands within \(\pm 0.65\) eV of the Fermi level in the top panel, and the Berry curvature (or \(k\)-space orbital magnetization, or \(k\)-resolved Berry curvature-like term of spin Hall conductivity) in the bottom panel.
-
The default value is bands
.
integer :: kpath_num_points
¶
If kpath
=true
, then the number of points along the first
section of the bandstructure plot given by kpoint_path
. Other sections
will have the same density of \(k\)-points.
The default value is 100.
character(len=20) :: kpath_bands_colour
¶
When kpath_task=bands
, colour code the energy bands according to the
specified quantity.
The valid options for this parameter are:
-
spin
Spin projection (in units of \(\hbar/2\)) along the quantization axis defined by the variablesspin_axis_polar
andspin_axis_azimuth
, for a spinor calculation -
shc
Band-projected Berry curvature-like term of spin Hall conductivity (in units ofberry_curv_unit
) defined by the variablesshc_alpha
,shc_beta
andshc_gamma
, for a spinor calculation -
none
no colour coding
The default value is none
.
kslice¶
logical :: kslice
¶
Determines whether to enter the kslice routines.
The default value is false
.
character(len=20) :: kslice_task
¶
The quantity to plot when kslice=true
The valid options for this parameter are:
-
fermi_lines
Lines of intersection between constant-energy surfaces and the slice. The energy level is specified by the keywordfermi_energy
. Output files:-
seedname-kslice-fermi-spn.dat
(data file whenkslice_fermi_lines_colour = spin
) -
seedname-bnd_n.dat
(gnuplot
data files whenkslice_fermi_lines_colour = none
) -
seedname-kslice-coord.dat
(python
data files whenkslice_fermi_lines_colour = none
) -
seedname-kslice-bands.dat
(python
data file whenkslice_fermi_lines_colour = none
) -
seedname-kslice-fermi_lines.gnu
(gnuplot
script) -
seedname-kslice-fermi_lines.py
(python
script)
-
-
curv
[+fermi_lines
] Heatmap of the Berry curvature of the occupied states [together with the constant-energy contours]. The unit of Berry curvature isberry_curv_unit
.Output files:
-
seedname-kslice-coord.dat
(data files) -
seedname-kslice-curv.dat
(data file) -
[seedname-kslice-bands.dat]
(data file) -
seedname-kslice-curv_{x,y,z}[+fermi_lines].py
(python
scripts)
-
-
morb
[+fermi_lines
] Heatmap of the \(k\)-space orbital magnetization in eV\(\cdot\)Å\(^2\) [together with the constant-energy contours]. Output files:-
seedname-kslice-coord.dat
(data files) -
seedname-kslice-morb.dat
(data file) -
[seedname-kslice-bands.dat]
(data file) -
seedname-kslice-morb_{x,y,z}[+fermi_lines].py
(python
scripts)
-
-
shc
[+fermi_lines
] Heatmap of the Berry curvature-like term of the occupied states [together with the constant-energy contours]. The unit of Berry curvature-like term isberry_curv_unit
.Output files:
-
seedname-kslice-coord.dat
(data files) -
seedname-kslice-shc.dat
(data file) -
[seedname-kslice-bands.dat]
(data file) -
seedname-kslice-shc[+fermi_lines].py
(python
scripts)
-
The default value is fermi_lines
.
Note
When kslice_fermi_lines_colour = none
the gnuplot
scripts draw
the \(k\)-slices with a square shape, even when kslice_b1
and
kslice_b2
below are not at right angles, or do not have equal lengths.
(The python
scripts draw the slices with the correct parallelogram
shape.)
real(kind=dp) :: kslice_corner(3)
¶
Reduced coordinates of the lower-left corner of the slice in k-space.
The default value is \((0.0,0.0,0.0)\)
real(kind=dp) :: kslice_b1(3)
¶
Reduced coordinates of the first reciprocal-space vector defining the slice.
The default value is \((1.0,0.0,0.0)\).
real(kind=dp) :: kslice_b2(3)
¶
Reduced coordinates of the second reciprocal-space vector defining the slice.
The default value is \((0.0,1.0,0.0)\).
integer :: kslice_2dkmesh(2)
¶
Dimensions of the \(k\)-point grid covering the slice. If two integers \(m\) \(n\) are given, the slice is sampled on a uniform \(m\times n\) grid. If only one integer \(m\) is given, an \(m\times m\) grid is used.
The default value for kslice_kmesh
is 50.
character(len=20) :: kslice_fermi_lines_colour
¶
When kslice_task=fermi_lines
(but not when combined with curv
or
morb
), colour code the Fermi lines according to the specified
quantity.
The valid options for this parameter are:
-
spin
Spin projection (in units of \(\hbar/2\)) along the quantization axis defined by the variablesspin_axis_polar
andspin_axis_azimuth
, for a spinor calculation -
none
no colour coding
The default value is none
.
berry¶
logical :: berry
¶
Determines whether to enter the berry routines.
The default value is false
.
character(len=120) :: berry_task
¶
The quantity to compute when berry=true
The valid options for this parameter are:
-
kubo
Complex optical conductivity and joint density of states.Output files:
-
seedname-kubo-S_{xx,yy,zz,xy,xz,yz}.dat
(data files). First column: optical frequency \(\hbar\omega\) in eV. Second and third columns: real and imaginary parts of the symmetric conductivity \(\sigma^{\rm S}_{\alpha\beta}(\hbar\omega)=\sigma^{\rm S}_{\beta\alpha}(\hbar\omega)\) in S/cm. Six additional columns are present ifspin_decomp = true
. -
seedname-kubo-A_{yz,zx,xy}.dat
(data files). First column: optical frequency \(\hbar\omega\) in eV. Second and third columns: real and imaginary parts of the antisymmetric conductivity \(\sigma^{\rm A}_{\alpha\beta}(\hbar\omega)=-\sigma^{\rm A}_{\beta\alpha}(\hbar\omega)\) in S/cm. Six additional columns are present ifspin_decomp = true
. -
seedname-jdos.dat
(data file). First column: energy difference \(\hbar\omega\) in eV between conduction (\(c\)) and valence (\(v\)) states with the same crystal momentum \({\bf k}\). Second column: joint density of states \(\rho_{cv}(\hbar\omega)\) (number of states per unit cell per unit energy range, in eV\(^{-1}\)). Three additional columns are present ifspin_decomp = true
.
-
-
ahc
Anomalous Hall conductivity, in S/cm. The three independent components \(\sigma_x=\sigma_{yz}\), \(\sigma_y=\sigma_{zx}\), and \(\sigma_z=\sigma_{xy}\) are computed.Output files:
seedname-ahc-fermiscan.dat
(data file). The first column contains the Fermi level \(\varepsilon_F\) in eV, and the following three column the values of \(\sigma_{x,y,z}(\varepsilon_F)\). This file is written if a range of Fermi energies is specified viafermi_energy_min
andfermi_energy_max
. If a single Fermi energy is given, the AHC is printed inseedname.wpout
only.
-
morb
Orbital magnetisation, in bohr magnetons per cell.Output files:
seedname-morb-fermiscan.dat
(data file). The first column contains the Fermi level \(\varepsilon_F\) in eV, and the following three column the values of \(M^{\rm orb}_{x,y,z}(\varepsilon_F)\). This file is written if a range of Fermi energies is specified viafermi_energy_min
andfermi_energy_max
. If a single Fermi energy is given, \({\bf M}^{\rm orb}\) is printed inseedname.wpout
only.
-
sc
Nonlinear shift current.Output files:
seedname-sc_{xxx,xxy,xxz,...}.dat
(data files). The shift current is described by a \(3\times3\times3\) tensor \(\sigma^{abc}\). The program outputs a set of 18 files, and the 9 remaining components can be obtained by taking into account that \(\sigma^{abc}\) is symmetric under \(b\leftrightarrow c\) index exchange. First column: optical frequency \(\hbar\omega\) in eV. Second column: nonlinear shift current \(\sigma^{abc}(\hbar\omega)\) in A/V\(^{2}\).
-
shc
Spin Hall conductivity (SHC), in \((\hbar/e)\)S/cm.Output files:
-
seedname-shc-fermiscan.dat
(data file). The first column is the number of entries in the list, the second column contains the Fermi level \(\varepsilon_F\) in eV, and the last column contains the values of \(\sigma_{\alpha\beta}^{\text{spin}\gamma}(\varepsilon_F)\). This file is written if a range of Fermi energies is specified viafermi_energy_min
andfermi_energy_max
. If a single Fermi energy is given, the file will contain SHC at this specific energy. -
seedname-shc-freqscan.dat
(data file). The first column is the number of the entry in the list, the second column contains the frequency \(\hbar\omega\) in eV, and the following two columns contain the values of the real part \(\Re[\sigma_{\alpha\beta}^{\text{spin}\gamma}(\omega)]\) and imaginary part \(\Im[\sigma_{\alpha\beta}^{\text{spin}\gamma}(\omega)]\) of ac SHC. This file is written if a range of frequencies is specified viakubo_freq_min
andkubo_freq_max
.
-
-
kdotp
\(k\cdot p\) expansion coefficients.Output files:
seedname-kdotp_{0,1,2}.dat
(data files); respectively, the zeroth, first and second order \(k\cdot p\) expansion coefficients, in units of eV, eV\(\cdot\)Å, and eV\(\cdot\)Å\(^{2}\).
There is no default value.
integer :: berry_kmesh(:)
¶
Overrides the kmesh
global variable (see
Sec. Global variables).
real(kind=dp) :: berry_kmesh_spacing
¶
Overrides the kmesh_spacing
global variable (see
Sec. Global variables).
integer :: berry_curv_adpt_kmesh
¶
If a positive integer \(n\) is given and berry_task=ahc
[or
berry_task=shc
], an \(n\times n\times n\) mesh is placed around points
on the uniform mesh (defined by either berry_kmesh
or
berry_kmesh_spacing
) where the magnitude of the \(k\)-space Berry
curvature[\(k\)-space Berry curvature-like term of SHC] exceeds the
threshold value specified in berry_curv_adpt_kmesh_thresh
. This can
be used to densify the BZ integration mesh around spikes in the Berry
curvature[Berry curvature-like term of SHC].
The default value is 1.
real(kind=dp) :: berry_curv_adpt_kmesh_thresh
¶
Magnitude of the Berry curvature[Berry curvature-like term of SHC] (in
units of berry_curv_unit
) that triggers adaptive mesh refinement when
berry_task=ahc
[berry_task=shc
].
The default value is 100.0.
real(kind=dp) :: kubo_freq_min
¶
Lower limit of the frequency range for computing the optical conductivity, JDOS and ac SHC. Units are eV.
The default value 0.0.
real(kind=dp) :: kubo_freq_max
¶
Upper limit of the frequency range for computing the optical conductivity, JDOS and ac SHC. Units are eV.
If an inner energy window was specified, the default value is
dis_froz_max
-fermi_energy
+0.6667. Otherwise it is the difference
between the maximum and the minimum energy eigenvalue stored in
seedname.eig
, plus 0.6667.
real(kind=dp) :: kubo_freq_step
¶
Difference between consecutive values of the optical frequency between
kubo_freq_min
and kubo_freq_max
. Units are eV.
The default value is 0.01.
real(kind=dp) :: kubo_eigval_max
¶
Maximum energy eigenvalue of the eigenstates to be included in the evaluation of the optical conductivity, JDOS and ac SHC. Units are eV.
If an inner energy window was specified, the default value is the upper
bound of the inner energy window plus 0.6667. Otherwise it is the
maximum energy eigenvalue stored in seedname.eig
plus 0.6667.
logical :: kubo_adpt_smr
¶
Overrides the adpt_smr
global variable (see
Sec. Global variables).
real(kind=dp) :: kubo_adpt_smr_fac
¶
Overrides the adpt_smr_fac
global variable (see
Sec. Global variables).
real(kind=dp) :: kubo_adpt_smr_max
¶
Overrides the adpt_smr_max
global variable (see
Sec. Global variables).
logical :: kubo_smr_fixed_en_width
¶
Overrides the smr_fixed_en_width
global variable (see
Sec. Global variables).
character(len=120) :: kubo_smr_type
¶
Overrides the smr_type
global variable (see
Sec. Global variables).
logical :: shc_freq_scan
¶
Determines whether to calculate the frequency scan (i.e. the ac SHC) or the Fermi energy scan (i.e. the dc SHC) of the spin Hall conductivity.
The default value is false
, which means dc SHC is calculated.
character(len=120) :: shc_method
¶
If it is qiao/ryoo
, the ac or dc SHC is calculated using Junfeng
Qiao's/Jihoon Ryoo's method. To calculate the Kubo formula, the spin
current matrix elements are required, and the two methods differ in the
degree of approximation. For details, see the section
shc.
integer :: shc_alpha
¶
The \(\alpha\) index of spin Hall conductivity
\(\sigma_{\alpha\beta}^{\text{spin}\gamma}\), i.e. the direction of spin
current. Possible values are 1
, 2
and 3
, representing the x
, y
and z
directions respectively.
The default value is 1
.
integer :: shc_beta
¶
The \(\beta\) index of spin Hall conductivity
\(\sigma_{\alpha\beta}^{\text{spin}\gamma}\), i.e. the direction of
applied electric field. Possible values are 1
, 2
and 3
,
representing the x
, y
and z
directions respectively.
The default value is 2
.
integer :: shc_gamma
¶
The \(\gamma\) index of spin Hall conductivity
\(\sigma_{\alpha\beta}^{\text{spin}\gamma}\), i.e. the spin direction of
spin current. Possible values are 1
, 2
and 3
, representing the
x
, y
and z
directions respectively.
The default value is 3
.
If all the shc_alpha
, shc_beta
and shc_gamma
are set as default
values, the \(\sigma_{xy}^{\text{spin}z}\) is computed.
logical :: shc_bandshift
¶
Shift all conduction bands by a given amount (defined by
shc_bandshift_energyshift
).
Note
this flag slightly differs from the global scissors_shift
flag:
with shc_bandshift
, an exact rigid shift is applied after
interpolation; scissors_shift
applies instead the shift before
interpolation. As a consequence, results may slightly differ (and this
is why we provide both possibilities). Note also that with
scissors_shift
you have to provide the number of valence bands
num_valence_bands
, while with shc_bandshift
you should provide the
first band to shift shc_bandshift_firstband
= num_valence_bands
\(+1\).
The default value is false
.
integer :: shc_bandshift_firstband
¶
Index of the first conduction band to shift.
That means that all bands with index
\(i\ge {\tt shc\_bandshift\_firstband}\) will be shifted by
shc_bandshift_energyshift
, if shc_bandshift
is true
.
The units are eV. No default value; if shc_bandshift
is true
, this
flag must be provided.
real(kind=dp) :: shc_bandshift_energyshift
¶
Energy shift of the conduction bands.
The units are eV. No default value; if shc_bandshift
is true
, this
flag must be provided.
real(kind=dp) :: sc_eta
¶
The width \(\eta\) used to broaden energy differences in denominators of the form
The above is needed in shift-current calculations in order to avoid numerical problems caused by near-degeneracies in the sum over virtual states.
The units are eV. The default value is 0.4.
integer :: sc_phase_conv
¶
Convention for the expansion of the Bloch states in shift-current calculations. It can only take the values one or two. We follow the convention of Ref. 3:
-
1: Include Wannier centre \({\bm \tau}_{n}=\langle w_{n{\bf 0}}|{\bf r}| w_{n{\bf 0}} \rangle\) in the phase factor (so-called tight-binding convention):
\[ \begin{equation} |u_{n\bf{k}}\rangle = \sum_{\bf{R}} e^{-i{\bf k}({\bf r}-{\bf R} -{\bm \tau}_{n})}| w_{n\bf{R}} \rangle \end{equation} \] -
2: Do not include Wannier centre in the phase factor (usual
Wannier90
convention):\[ \begin{equation} |u_{n\bf{k}}\rangle = \sum_{\bf{R}} e^{-i\bf{k}(\bf{r}-\bf{R})}| w_{n\bf{R}} \rangle \end{equation} \]
If sc_use_eta_corr=true
, the convention does not affect the full
shift-current matrix element, but it does affect the weights of the
internal components that compose it (see Ref.
4). If sc_use_eta_corr=false
, the convention
can affect the full shift-current matrix element (see Ref.
1).
The default value is 1.
real(kind=dp) :: sc_w_thr
¶
Parameter \(\alpha_{t}\) for speeding up the frequency integration in shift-current calculations. It settles the frequency threshold \(\omega_{t}=\alpha_{t}\eta_{n{\bf k}}\) (a factor times the broadening) beyond which the delta functions are taken as zero.
The default value is 5.0.
real(kind=dp) :: kdotp_kpoint(3)
¶
Defines the \(k\) point around which the \(k\cdot p\) expansion is performed.
The default value is 0.0 0.0 0.0 (\(\Gamma\)).
integer :: kdotp_num_bands
¶
Number of bands forming the \(k\cdot p\) basis set.
No default value.
integer :: kdotp_bands(kdotp_num_bands)
¶
Band indexes of bands belonging to \(k\cdot p\) basis. Number of entries
must be equal to the integer defined in kdotp_num_bands
. The band
labelling follows that of "wannierised" bands.
No default value.
Gyrotropic¶
logical :: gyrotropic
¶
Determines whether to enter the gyrotropic routines.
The default value is false
.
character(len=120) :: gyrotropic_task
¶
The quantity to compute when gyrotropic=true
May contain one or more of the following valid options (note that each option starts with a '-'):
-
-D0
The Berry-curvature dipole tensor (dimensionless)Output file:
seedname-gyrotropic-D.dat
( see Sec. output data format for file format description) -
-Dw
The finite-frequency Berry-curvature dipole tensor (dimensionless)Output file:
seedname-gyrotropic-tildeD.dat
( see Sec. output data format for file format description) -
-C
The ohmic conductivity tensor (Ampere/cm)Output file:
seedname-gyrotropic-C.dat
( see Sec. output data format for file format description) -
-K
The orbital contribution to the kME tensor (Ampere)Output file:
seedname-gyrotropic-K_orb.dat
( see Sec. output data format for file format description)-
-spin
: if this task is present, compute also the spin contribution.Output file:
seedname-gyrotropic-K_spin.dat
-
-
-NOA
The orbital contribution to the NOA (Å)Output file:
seedname-gyrotropic-NOA_orb.dat
( see Sec. output data format for file format description)-
-spin
: if this task is present, compute also the spin contribution.Output file:
seedname-gyrotropic-NOA_spin.dat
-
-
-dos
the density of statesOutput file:
seedname-gyrotropic-DOS.dat
. First column - energy (eV), second column - DOS (\(1/(\mathrm{eV}\times\mathring{A}^3)\))
There is no default value.
output data format¶
The calculated tensors are written as functions of Fermi level \(E_F\) (first column) and frequency \(\omega\) (second column). If the tensor does not denend on \(\omega\), the second column is filled by zeros. Data is grouped in blocks of the same \(\omega\) separated by two blank lines. In case of natural optical activity the columns 3 to 11 contain the independent components of \(\gamma_{abc}\) (antisymmetric in \(ab\)): \(yzx\), \(zxy\) ,\(xyz\), \(yzy\), \(yzz\), \(zxz\), \(xyy\), \(yzz\) and \(zxx\). For tensors \(C_{ab}\), \(D_{ab}\), \(\widetilde D_{ab}\), \(K_{ab}\) the symmetric and antisymmetric components are writted. Thus, the columns 3 to 11 are marked as \(xx\), \(yy\), \(zz\), \(xy\), \(xz\), \(yz\), \(x\), \(y\), \(z\), wich correspond ,e.g., for \(D_{ab}\) to \(D_{xx}\), \(D_{yy}\), \(D_{zz}\), \((D_{xy}+D_{yx})/2\), \((D_{xz}+D_{zx})/2\), \((D_{yz}+D_{zy})/2\), \((D_{yz}-D_{zy})/2\), \((D_{zx}-D_{xz})/2\), \((D_{xy}-D_{yx})/2\)
integer :: gyrotropic_kmesh(:)
¶
Overrides the kmesh
global variable (see
Sec. Global variables).
real(kind=dp) :: gyrotropic_kmesh_spacing
¶
Overrides the kmesh_spacing
global variable (see
Sec. Global variables).
real(kind=dp) :: gyrotropic_freq_min
¶
Lower limit of the frequency range for computing the optical activity.
Units are eV. The default value 0.0.
real(kind=dp) :: gyrotropic_freq_max
¶
Upper limit of the frequency range for computing the optical activity. Units are eV.
If an inner energy window was specified, the default value is
dis_froz_max
-fermi_energy
+0.6667. Otherwise it is the difference
between the maximum and the minimum energy eigenvalue stored in
seedname.eig
, plus 0.6667.
real(kind=dp) :: gyrotropic_freq_step
¶
Difference between consecutive values of the optical frequency between
gyrotropic_freq_min
and gyrotropic_freq_max
.
Units are eV. The default value is 0.01.
real(kind=dp) :: gyrotropic_eigval_max
¶
Maximum energy eigenvalue of the eigenstates to be included in the evaluation of the Natural optical activity. Units are eV.
If an inner energy window was specified, the default value is the upper
bound of the inner energy window plus 0.6667. Otherwise it is the
maximum energy eigenvalue stored in seedname.eig
plus 0.6667.
logical :: gyrotropic_smr_fixed_en_width
¶
Overrides the smr_fixed_en_width
global variable (see
Sec. Global variables).
character(len=120) :: gyrotropic_smr_type
¶
Overrides the smr_type
global variable (see
Sec. Global variables).
character(len=120) :: gyrotropic_degen_thresh
¶
The threshould to eliminate degenerate bands from the calculation in order to avoid divergences.
Units are eV. The dfault value is 0.
character(len=120) :: gyrotropic_box_center
¶
- three real numbers. Optionally the integration may be restricted to a
parallelogram, centered at gyrotropic_box_center
and defined by
vectors gyrotropic_box_b{1,2,3}
In reduced coordinates. Default value is 0.5 0.5 0.5
character(len=120) :: gyrotropic_box_b1
¶
- three real numbers. In reduced coordinates. Default value is 1.0 0.0 0.0
character(len=120) :: gyrotropic_box_b2
¶
- three real numbers. In reduced coordinates. Default value is 0.0 1.0 0.0
character(len=120) :: gyrotropic_box_b3
¶
- three real numbers. In reduced coordinates. Default value is 0.0 0.0 1.0
BoltzWann¶
logical :: boltzwann
¶
Determines whether to enter the routines.
The default value is false
.
integer :: boltz_kmesh(:)
¶
It determines the interpolation \(k\) mesh used to calculate the TDF (from
which the transport coefficient are calculated). If
boltz_calc_also_dos
is true
, the same \(k\) mesh is used also for the
DOS. Overrides the kmesh
global variable (see
Sec. Global variables).
real(kind=dp) :: boltz_kmesh_spacing
¶
Overrides the kmesh_spacing
global variable (see
Sec. Global variables).
character(len=4) :: boltz_2d_dir
¶
For two-dimensional systems, the direction along which the system is
non-periodic. It can assume the following values: x
for a 2D system on
the \(yz\) plane, y
for a 2D system on the \(xz\) plane, z
for a 2D
system on the \(xy\) plane, or no
for a 3D system with periodicity along
all threee directions.
This value is used when calculating the Seebeck coefficient, where the electrical conductivity tensor needs to be inverted. If the value is different from zero, only the relevant \(2\times 2\) sub-block of the electrical conductivity is inverted.
The default value is no
.
real(kind=dp) :: boltz_relax_time
¶
The relaxation time to be used for the calculation of the TDF and the transport coefficients.
The units are fs. The default value is 10 fs.
real(kind=dp) :: boltz_mu_min
¶
Minimum value for the chemical potential \(\mu\) for which we want to calculate the transport coefficients.
The units are eV. No default value.
real(kind=dp) :: boltz_mu_max
¶
Maximum value for the chemical potential \(\mu\) for which we want to calculate the transport coefficients.
The units are eV. No default value.
real(kind=dp) :: boltz_mu_step
¶
Energy step for the grid of chemical potentials \(\mu\) for which we want to calculate the transport coefficients.
The units are eV. No default value.
real(kind=dp) :: boltz_temp_min
¶
Minimum value for the temperature \(T\) for which we want to calculate the transport coefficients.
The units are K. No default value.
real(kind=dp) :: boltz_temp_max
¶
Maximum value for the temperature \(T\) for which we want to calculate the transport coefficients.
The units are K. No default value.
real(kind=dp) :: boltz_temp_step
¶
Energy step for the grid of temperatures \(T\) for which we want to calculate the transport coefficients.
The units are K. No default value.
real(kind=dp) :: boltz_tdf_energy_step
¶
Energy step for the grid of energies for the TDF.
The units are eV. The default value is 0.001 eV.
character(len=120) :: boltz_tdf_smr_type
¶
The type of smearing function to be used for the TDF. The available
strings are the same of the global smr_type
input flag.
The default value is the one given via the smr_type
input flag (if
defined).
real(kind=dp) :: boltz_tdf_smr_fixed_en_width
¶
Energy width for the smearing function. Note that for the TDF, a standard (non-adaptive) smearing scheme is used.
The units are eV. The default value is 0 eV. Note that if the width is
smaller than twice the energy step boltz_tdf_energy_step
, the TDF will
be unsmeared (thus the default is to have an unsmeared TDF).
logical :: boltz_calc_also_dos
¶
Whether to calculate also the DOS while calculating the TDF.
If one needs also the DOS, it is faster to calculate the DOS using this
flag instead of using independently the routines of the dos
module,
since in this way the interpolation on the \(k\) points will be performed
only once.
The default value is false
.
real(kind=dp) :: boltz_dos_energy_min
¶
The minimum value for the energy grid for the calculation of the DOS.
The units are eV. The default value is minval(eigval)-0.6667
, where
minval(eigval)
i s the minimum eigenvalue returned by the ab-initio
code on the ab-initio \(q\) me sh.
real(kind=dp) :: boltz_dos_energy_max
¶
The maximum value for the energy grid for the calculation of the DOS.
The units are eV. The default value is maxval(eigval)+0.6667
, where
maxval(eigval)
i s the maximum eigenvalue returned by the ab-initio
code on the ab-initio \(q\) me sh.
real(kind=dp) :: boltz_dos_energy_step
¶
Energy step for the grid of energies for the DOS.
The units are eV. The default value is 0.001 eV.
character(len=120) :: boltz_dos_smr_type
¶
Overrides the smr_type
global variable (see
Sec. Global variables).
logical :: boltz_dos_adpt_smr
¶
Overrides the adpt_smr
global variable (see
Sec. Global variables).
real(kind=dp) :: boltz_dos_adpt_smr_fac
¶
Overrides the adpt_smr_fac
global variable (see
Sec. Global variables).
real(kind=dp) :: boltz_dos_adpt_smr_max
¶
Overrides the adpt_smr_max
global variable (see
Sec. Global variables).
logical :: boltz_dos_smr_fixed_en_width
¶
Overrides the smr_fixed_en_width
global variable (see
Sec. Global variables).
logical :: boltz_bandshift
¶
Shift all conduction bands by a given amount (defined by
boltz_bandshift_energyshift
).
Note
this flag slightly differs from the global scissors_shift
flag:
with boltz_bandshift
, an exact rigid shift is applied after
interpolation; scissors_shift
applies instead the shift before
interpolation. As a consequence, results may slightly differ (and this
is why we provide both possibilities). Note also that with
scissors_shift
you have to provide the number of valence bands
num_valence_bands
, while with boltz_bandshift
you should provide the
first band to shift boltz_bandshift_firstband
=
num_valence_bands
\(+1\).
The default value is false
.
integer :: boltz_bandshift_firstband
¶
Index of the first conduction band to shift.
That means that all bands with index
\(i\ge {\tt boltz\_bandshift\_firstband}\) will be shifted by
boltz_bandshift_energyshift
, if boltz_bandshift
is true
.
The units are eV. No default value; if boltz_bandshift
is true
, this
flag must be provided.
real(kind=dp) :: boltz_bandshift_energyshift
¶
Energy shift of the conduction bands.
The units are eV. No default value; if boltz_bandshift
is true
, this
flag must be provided.
Generic Band Interpolation¶
logical :: geninterp
¶
Determines whether to enter the Generic Band Interpolation routines.
The default value is false
.
logical :: geninterp_alsofirstder
¶
Whether to calculate also the first derivatives of the bands at the given \(k\) points.
The default value is false
.
logical :: geninterp_single_file
¶
Whether to write a single seedname_geninterp.dat
file (all I/O is done
by the root node); or instead multiple files (one for each node) with
names seedname_geninterp_NNNNN.dat
, where NNNNN
is the node number.
See also the discussion in
Sec. seedname_geninterp.dat
or seedname_geninterp_NNNNN.dat
.
The default value is true
.
-
Jae-Mo Lihm. Comment on “ab initio calculation of the shift photocurrent by wannier interpolation”. Phys. Rev. B, 103:247101, Jun 2021. URL: https://link.aps.org/doi/10.1103/PhysRevB.103.247101, doi:10.1103/PhysRevB.103.247101. ↩↩↩
-
X. Wang, J. R. Yates, I. Souza, and D. Vanderbilt. Ab initio calculation of the anomalous hall conductivity by wannier interpolation. Phys. Rev. B, 74:195118, 2006. ↩
-
T. Yusufaly, D. Vanderbilt, and S. Coh. Tight-Binding Formalism in the Context of the PythTB Package. \url http://physics.rutgers.edu/pythtb/formalism.html. ↩
-
Julen Ibañez-Azpiroz, Stepan S. Tsirkin, and Ivo Souza. Ab initio calculation of the shift photocurrent by wannier interpolation. Phys. Rev. B, 97:245143, Jun 2018. URL: https://link.aps.org/doi/10.1103/PhysRevB.97.245143, doi:10.1103/PhysRevB.97.245143. ↩