This module contains the definitions of all input parameters for INTW as well as subroutines for reading and checking the input.
&input
outdir = 'directory'
prefix = 'prefix'
nk1 = integer
nk2 = integer
nk3 = integer
tr_symmetry = T or F (Default: T)
chemical_potential = real (Default: 0.0 eV)
use_exclude_bands = 'none', 'wannier' or 'custom'
include_bands_initial = integer
include_bands_final = integer
/
&intw2W
intw2w_fullzone = T or F (Default: F)
intw2w_method = 'CONVOLUTION' or 'FFT' (Default: 'CONVOLUTION')
compute_amn = T or F (Default: T)
compute_mmn = T or F (Default: T)
/
&ph
qlist = 'file' (Default: 'qlist.txt')
read_for_dynmat = 'fc' or 'dynq' (Default: 'dynq')
fc_mat = 'file'
nq1 = integer
nq2 = integer
nq3 = integer
nqirr = integer
apply_asr = T or F (Default: T)
/
&DOS
nk1_dos = integer (Default: 20)
nk2_dos = integer (Default: 20)
nk3_dos = integer (Default: 20)
ne_dos = integer (Default: 100)
eini_dos = real (Default: -10.0 eV)
efin_dos = real (Default: 10.0 eV)
esmear_dos = real (Default: 0.05 eV)
ktsmear = real (Default: 0.01 eV)
/
&DOS_ph
nq1_dosph = integer (Default: 20)
nq2_dosph = integer (Default: 20)
nq3_dosph = integer (Default: 20)
nomega = integer (Default: 100)
omega_ini = real (Default: 0.0 Ry)
omega_fin = real (Default: 0.005 Ry)
osmear_q = real (Default: 0.000075 Ry)
omega_cut = real (Default: 0.0 Ry)
/
&elphon
ep_mat_file = 'file' (Default: 'ep_mat.dat')
ep_bands = 'intw' or 'custom' (Default: 'intw')
ep_bands_initial = integer
ep_bands_final = integer
ep_interp_method = 'wannier' or 'dV_interpolate'
ep_interp_bands = 'intw_bands' or 'ef_crossing' (Default: 'intw_bands')
nfs_sheets_initial = integer
nfs_sheets_final = integer
nscf_code = 'QE' or 'SIESTA'
command_pw = 'command'
command_pw2intw = 'command'
file_pw = 'file'
command_siesta2intw = 'command'
file_siesta2intw = 'file'
/
K_PATH
nkpath nkspecial
label(1) kspecial_x(1) kspecial_y(1) kspecial_z(1)
label(2) kspecial_x(2) kspecial_y(2) kspecial_z(2)
...
label(nkspecial) kspecial_x(nkspecial) kspecial_y(nkspecial) kspecial_z(nkspecial)
Q_PATH
nqpath nqspecial
label(1) qspecial_x(1) qspecial_y(1) qspecial_z(1)
label(2) qspecial_x(2) qspecial_y(2) qspecial_z(2)
...
label(nqspecial) qspecial_x(nqspecial) qspecial_y(nqspecial) qspecial_z(nqspecial)
K_PATH and Q_PATH cards are used to generate the path along the Brilloin zone
to plot electron band structure and phonon frequency dispersion, respectively.
Variables without default values must be explicitly set in the input file; otherwise, an error will be raised.
| Type | Visibility | Attributes | Name | Initial | |||
|---|---|---|---|---|---|---|---|
| character(len=256), | public | :: | outdir | = | 'unassigned' |
The directory where the DFT calculations are stored |
|
| character(len=256), | public | :: | prefix | = | 'unassigned' |
The prefix of the DFT calculation |
|
| integer, | public | :: | nk1 | = | -1 |
Monkhorst-Pack mesh indices for the coarse k-mesh |
|
| integer, | public | :: | nk2 | = | -1 |
Monkhorst-Pack mesh indices for the coarse k-mesh |
|
| integer, | public | :: | nk3 | = | -1 |
Monkhorst-Pack mesh indices for the coarse k-mesh |
|
| real(kind=dp), | public | :: | chemical_potential | = | 0.0_dp |
The value which determines the occupation factors (Units: eV) |
|
| logical, | public | :: | TR_symmetry | = | .true. |
If TR symmetry is present TR_symmetry = .true. |
|
| character(len=256), | public | :: | use_exclude_bands | = | "unassigned" |
Three options to select the bands used in various utilities:
|
|
| integer, | public | :: | include_bands_initial | = | 0 |
The initial and final band indices for |
|
| integer, | public | :: | include_bands_final | = | 0 |
The initial and final band indices for |
|
| logical, | public | :: | intw2W_fullzone | = | .false. |
If True, the code wil assume that a full zone DFT calculation has been performed and that wavefunctions for every k-point are available. This is mostly for testing and directly comparing the results of intw2W90 and pw2wannier |
|
| character(len=256), | public | :: | intw2W_method | = | 'CONVOLUTION' |
Two options to select which method use to compute matrix elements:
|
|
| logical, | public | :: | compute_mmn | = | .true. |
If True, the code produces the $prefix.mmn and $prefix.eig files |
|
| logical, | public | :: | compute_amn | = | .true. |
If True, the code produces the $prefix.amn file |
|
| character(len=256), | public | :: | qlist | = | 'qlist.txt' |
Name of the file containing the irreducible q-points list (relative to outdir) |
|
| character(len=256), | public | :: | fc_mat | = | '--.fc' |
Name of the force constants matrix (relative to outdir) |
|
| character(len=256), | public | :: | read_for_dynmat | = | 'dynq' |
Two options to choose:
|
|
| logical, | public | :: | apply_asr | = | .true. |
Whether apply Acoustic Sum Rule or not |
|
| integer, | public | :: | nq1 | = | -1 |
Monkhorst-Pack mesh indices for the coarse q-mesh |
|
| integer, | public | :: | nq2 | = | -1 |
Monkhorst-Pack mesh indices for the coarse q-mesh |
|
| integer, | public | :: | nq3 | = | -1 |
Monkhorst-Pack mesh indices for the coarse q-mesh |
|
| integer, | public | :: | nqirr | = | -1 |
Number of irreducible q-points |
|
| integer, | public | :: | nk1_dos | = | 20 |
Interpolation k-grid for DOS plot |
|
| integer, | public | :: | nk2_dos | = | 20 |
Interpolation k-grid for DOS plot |
|
| integer, | public | :: | nk3_dos | = | 20 |
Interpolation k-grid for DOS plot |
|
| integer, | public | :: | ne_dos | = | 100 |
Number of energy points in DOS plot |
|
| real(kind=dp), | public | :: | eini_dos | = | -10.0_dp |
Energy range for electron DOS plot (Units: eV) |
|
| real(kind=dp), | public | :: | efin_dos | = | 10.0_dp |
Energy range for electron DOS plot (Units: eV) |
|
| real(kind=dp), | public | :: | esmear_dos | = | 0.05_dp |
Smearing width for electron DOS plot (Units: eV) |
|
| real(kind=dp), | public | :: | ktsmear | = | 0.01_dp |
Smearing (kT) for Fermi level electron DOS calculation (Units: eV) |
|
| integer, | public | :: | nq1_dosph | = | 20 |
Interpolation q-grid for phonon DOS plot |
|
| integer, | public | :: | nq2_dosph | = | 20 |
Interpolation q-grid for phonon DOS plot |
|
| integer, | public | :: | nq3_dosph | = | 20 |
Interpolation q-grid for phonon DOS plot |
|
| integer, | public | :: | nomega | = | 100 |
Number of energy points in DOS plot |
|
| real(kind=dp), | public | :: | omega_ini | = | 0.0_dp |
Energy range for phonon DOS plot (Units: Ry) |
|
| real(kind=dp), | public | :: | omega_fin | = | 0.005_dp |
Energy range for phonon DOS plot (Units: Ry) |
|
| real(kind=dp), | public | :: | osmear_q | = | 0.000075 |
Smearing width for phonon DOS plot (Units: Ry) |
|
| real(kind=dp), | public | :: | omega_cut | = | -1.0_dp |
Phonon frequency cut-off for removing w -> 0 peak in a2F (Units: Ry) |
|
| character(len=256), | public | :: | ep_mat_file | = | "ep_mat.dat" |
Name of the electron-phonon matrix elements file |
|
| character(len=256), | public | :: | ep_bands | = | 'intw' |
Two options to select the subset of bands for computing the electron-phonon matrix elements:
|
|
| integer, | public | :: | ep_bands_initial | = | 0 |
The initial and final band indices for |
|
| integer, | public | :: | ep_bands_final | = | 0 |
The initial and final band indices for |
|
| character(len=256), | public | :: | ep_interp_method | = | 'unassigned' |
Two options to choose the interpolation method:
|
|
| character(len=256), | public | :: | ep_interp_bands | = | 'intw_bands' |
Two options to select the subset of bands to interpolate electron-phonon matrix elements:
|
|
| integer, | public | :: | nfs_sheets_initial | = | 0 |
The initial band index for |
|
| integer, | public | :: | nfs_sheets_final | = | 0 |
The final band index for |
|
| character(len=256), | public | :: | nscf_code | = | 'unassigned' |
The DFT code used for running the nscf calculation (only needed if
|
|
| character(len=256), | public | :: | command_pw | = | 'unassigned' |
pw.x executable, with optional running options that go ahead of the executable like 'mpirun -np N', 'nice', etc. |
|
| character(len=256), | public | :: | command_pw2intw | = | 'unassigned' |
pw2intw.x executable, with optional running options that go ahead of the executable like 'mpirun -np N', 'nice', etc. |
|
| character(len=256), | public | :: | file_pw | = | 'unassigned' |
The input file for pw.x. |
|
| character(len=256), | public | :: | command_siesta2intw | = | 'unassigned' |
siesta2intw.x executable, with optional running options that go ahead of the executable like 'mpirun -np N', 'nice', etc. |
|
| character(len=256), | public | :: | file_siesta2intw | = | 'unassigned' |
The input file for siesta2intw.x. |
|
| logical, | public | :: | exist_kpath | ||||
| integer, | public | :: | nkpath |
Number of total k-points in the path |
|||
| integer, | public | :: | nkspecial |
Number of special k-points in the path |
|||
| real(kind=dp), | public, | allocatable | :: | kspecial(:,:) |
List of special k-points in crystal coordinates |
||
| logical, | public | :: | exist_qpath | ||||
| integer, | public | :: | nqpath |
Number of total q-points in the path |
|||
| integer, | public | :: | nqspecial |
Number of special q-points in the path |
|||
| real(kind=dp), | public, | allocatable | :: | qspecial(:,:) |
List of special q-points in crystal coordinates |
This subroutine reads all namelists from standard input, and checks their validity and consistency.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| logical | :: | read_status |
This subroutine reads K_PATH and Q_PATH cards from standard input if present.