velph subcommands#

The velph subcommands, except for velph init and velph hints, are explained on this page.

The following subcommands must be executed in the directory containing the velph.toml file. This ensures that the directories and files generated are properly organized relative to the current directory where velph.toml is located.

velph relax#

It is recommended to create a project directory secific for relaxation calculation, e.g., as

% ls
POSCAR-unitcell  POTCAR  velph-tmpl.toml
% velph init --template-toml velph-tmpl.toml POSCAR-unitcell relax
...
% cd relax
% ls
POTCAR  velph.toml
% velph relax generate
...

velph relax generate#

This subcommand generates VASP input files and a job script for crystal structure relaxation. Initially, these files are created in the iter1 directory. The process supports multiple relaxation steps, where the CONTCAR file from the previous iteration is used as the POSCAR for the next step once the preceding VASP calculation is complete. Each subsequent set of input files is generated in directories named iter2, iter3, and so on.

% ls
POTCAR  velph.toml
% velph relax generate
VASP input files were made in "relax/iter1".
...
# Run VASP calculation in relax/iter1
...
% ls
POTCAR  relax/  velph.toml
% velph relax generate
"relax/iter1" exists.
"relax/iter1/CONTCAR" will be as new "POSCAR".
VASP input files were made in "relax/iter2".
...

velph nac#

This subcommand is used to prepare VASP input files for calculating the dielectric constant and Born effective charges. These quantities are required for the non-analytical term correction in phonon calculations and for handling the long-range terms in electron-phonon interaction calculations.

velph nac generate#

After the VASP calculation is complete, the dielectric constant and Born effective charges are extracted from the vasprun.xml file during the execution of velph phelel init, velph phono3py init, or velph phonopy init. The extracted values are then written to phelel_disp.yaml, phono3py_disp.yaml, or phonopy_disp.yaml, respectively.

% velph nac generate
VASP input files were made in "nac".

velph el_bands#

This subcommand is used to prepare VASP input files for electronic band structure and density of states calculations, and to plot the resulting data.

velph el_bands generate#

The VASP input files have been prepared so that the calculation results will be stored in vaspout.h5.

% velph el_bands generate
VASP input files were made in "el_bands/bands".
VASP input files were made in "el_bands/dos".

velph el_bands plot#

The electronic band structure and density of states are plotted and saved in the el_bands.pdf file. The energy range must be specified using the --windows option, with the first and second arguments representing the range below and above the Fermi energy in eV, respectively.

% velph el_bands plot --window -5 9
Electronic band structure plot was saved in "el_bands/el_bands.pdf".

velph phelel#

This subcommand calculates the derivatives of local potentials and PAW strengths with respect to displacement, performing similar operations as steps 1 and 3 carried out by the phelel command in the workflow.

The subcommands below should be executed in the following order:

  1. velph phelel init

  2. velph phelel generate

  3. velph phelel differentiate

  4. velph phelel phonopy (optional)

Certain configurations for phelel can be specified directly in the velph.toml file:

[phelel]
supercell_dimension = [2, 2, 2]
amplitude = 0.03
diagonal = false
plusminus = true

velph phelel init#

This subcommand generates the phelel_disp.yaml file, which contains information about the supercell structure and displacements. It is recommended to generate phelel_disp.yaml after performing the NAC calculation (see velph nac). At this stage, the dielectric constant and Born effective charges are written to phelel_disp.yaml, and these values are ultimately stored in phelel_params.hdf5 through the phelel_disp.yaml file.

% velph phelel init
Found "nac" directory. Read NAC params.
"phelel/phelel_disp.yaml" was generated.
VASP input files will be generated by "velph phelel generate".

velph phelel generate#

VASP input files and job scripts are generated.

% velph phelel generate
VASP input files were generated in "phelel/disp-000".
VASP input files were generated in "phelel/disp-001".
VASP input files were generated in "phelel/disp-002".
VASP input files were generated in "phelel/disp-003".
VASP input files were generated in "phelel/disp-004".

velph phelel differentiate#

The derivatives of local potentials and PAW strengths with respect to displacement are calculated and stored in phelel_params.hdf5.

% velph phelel differentiate
FFT mesh: [30 30 30].
Running finufft (eps=1.000e-06)...
Running finufft (eps=1.000e-06)...
"phelel/phelel_params.hdf5" has been made.

velph phelel phonopy#

Note

This subcommand is similar to velph ph_bands, but the phonon band structure is calculated using the phonopy code. While the phonon calculation routines of VASP and phonopy are expected to yield similar results, they are not entirely equivalent. However, for electron-phonon calculations, the VASP routine is utilized.

phonopy_params.yaml that contains information necessary for phonon calculation by the phonopy code is generated from phelel_disp.yaml and the results of the VASP inputs generated by velph phelel generate.

% velph phelel phonopy
"phelel/phonopy_params.yaml" has been made.
% phonopy-load phelel/phonopy_params.yaml --band auto -p

velph transport#

This subcommand is used to prepare VASP input files for calculating transport properties based on electron-phonon interactions.

velph transport generate#

The VASP input files are prepared for transport property calculations. Users should review the generated INCAR tags and modify them as necessary for the target material. If results from el_bands/dos calculations are available, the maximum band index for the self-energy calculation is estimated and written into the INCAR file.

% velph transport generate
Found "el_bands/dos" directory. Estimate elph_selfen_band_stop.
  "elph_selfen_band_stop=5" in INCAR is set.
VASP input files were generated in "transport".

velph transport plot#

velph transport plot transport#

The following command opens a graphical window that contains plots of transport properties. By default, it uses the transport/vaspout.h5 file unless a different file is specified as the first argument.

% velph transport plot transport

velph transport plot eigenvalues#

The following command opens a graphical window to display eigenvalues in the Brillouin zone with occupations that are neither zero nor one. By default, these eigenvalues are extracted from the transport/vaspout.h5 file unless a different file is specified as the first argument. Their occupations are determined based on the temperature and Fermi level set through the command-line options.

% velph transport plot eigenvalues
mu: 4.837002 eV
temperature: 300.000000 K
No eigenvalues to plot.
% velph transport plot eigenvalues --mu 4

This subcommand requires pre-calculated eigenvalues, Fermi levels, and input parameters such as temperatures. However, electron-phonon calculation results are not necessary. If the goal is to visualize Fermi surface pockets on a k-point grid, it is recommended to run the electron-phonon calculation using ELPH_SCATTERING_APPROX=CRTA to generate the required vaspout.h5 file efficiently.

velph transport plot selfenergy#

The following command opens a graphical window to display Fan self-energies. By default, it uses the transport/vaspout.h5 file unless a different file is specified as the first argument.

% velph transport plot selfenergy

velph ph_bands#

This subcommand is used to prepare VASP input files for phonon band structure calculation using the supercell force constants stored in phelel_params.hdf5, and to plot the resulting data.

velph ph_bands generate#

The VASP input files including QPOINTS are prepared so that the calculation results will be stored in vaspout.h5.

% velph ph_bands generate
VASP input files were made in "ph_bands/bands".

velph ph_bands plot#

The phonon band structure is plotted and saved in the ph_bands.pdf file.

% velph ph_bands plot
Phonon band structure plot was saved in "ph_bands/ph_bands.pdf".

velph phono3py#

This subcommand facilitates anharmonic phonon calculation including lattice thermal conductivity calculation using the phono3py code. Certain configurations for supercell and displacements can be specified directly in the velph.toml file:

[phono3py]
supercell_dimension = [2, 2, 2]
amplitude = 0.03
diagonal = false
plusminus = true

velph phono3py init#

The phono3py_disp.yaml file, which contains displacement information, is generated by this subcommand. It is recommended to use the --rd option with a sufficiently large argument to create supercells with random directional displacements. Note that it is not necessary to calculate forces for all supercells to ultimately generate the phono3py_params.yaml file.

% velph phono3py init --rd 2000
Displacement distance: 0.03
Number of displacements: 2000
Found "nac" directory. Read NAC params.
"phono3py/phono3py_disp.yaml" was generated.
VASP input files will be generated by "velph phono3py generate".

velph phono3py generate#

VASP input files for supercell force calculations are generated, with each directory corresponding to a specific supercell displacement configuration. The perfect supercell (i.e., without displacements) is labeled as disp-00000.

For example:

% velph phono3py generate
VASP input files were generated in "phono3py/disp-0000".
VASP input files were generated in "phono3py/disp-0001".
...

After completing supercell force calculations using the VASP code, the phono3py_params.yaml file can be created with the following command:

% cd phono3py
% phono3py --cfz disp-00000/vasprun.xml --cf3 disp-{00001..00120}/vasprun.xml --sp

In this step, forces from 120 supercells are collected, and the corresponding data are stored in the phono3py_params.yaml file.

velph phonopy#

This subcommand facilitates phonon calculation using the phonopy code. Certain configurations for supercell and displacements can be specified directly in the velph.toml file:

[phonopy]
supercell_dimension = [2, 2, 2]
amplitude = 0.03
diagonal = false
plusminus = true

velph phonopy init#

% velph phonopy init --rd 10
Displacement distance: 0.03
Number of displacements: 10
Found "nac" directory. Read NAC params.
"phonopy/phonopy_disp.yaml" was generated.
VASP input files will be generated by "velph phonopy generate".

velph phonopy generate#

% velph phonopy generate
VASP input files were generated in "phonopy/disp-000".
VASP input files were generated in "phonopy/disp-001".
...

After completing supercell force calculations using the VASP code, the phonopy_params.yaml file can be created with the following command:

% cd phonopy
% phonopy --fz disp-{00000..00010}/vasprun.xml --sp