Changes in velph 0.15#
velph 0.15 changes the format of velph.toml and of the velph init template,
and some subcommands. This page lists the changes from velph 0.14.
Note
To write a velph.toml of velph 0.14 in the format of velph 0.15, run
velph convert. See Converting velph.toml with velph convert.
Project folders made by velph 0.14#
A project folder made by velph init of velph 0.14 has velph.toml and the
directories of the calculations. This section describes how velph 0.15 uses
such a folder.
Converting velph.toml with velph convert#
velph convert writes a velph.toml of velph 0.14 in the format of velph 0.15.
It does not change the original file, and it does not overwrite an existing
file. It prints the settings that were removed and the k-point blocks whose
kspacing was replaced by mesh:
% velph convert velph.toml velph-new.toml
fft_mesh of [phelel] was removed.
"velph-new.toml" was written from "velph.toml".
To use the new file, rename velph-new.toml to velph.toml.
The velph subcommands also read a velph.toml of velph 0.14 without
velph convert. They convert the settings to those of velph 0.15 when they
read the file, and they do not change the file. In both cases, kspacing in a
k-point block is converted to mesh in the same way as velph 0.14 does.
[vasp.el_bands] of velph 0.10 and earlier#
velph convert and the subcommands also convert [vasp.el_bands] of velph
0.10 and earlier. In these versions, [vasp.el_bands] is one input set with
both kpoints_opt and kpoints_dense. velph el_bands generate of these
versions writes the band structure with kpoints_opt and the INCAR tags
without lorbit and nedos, and the DOS with kpoints_dense and all the
INCAR tags. In the same way, [vasp.el_bands] is converted to two input sets:
[vasp.el_bands]withoutkpoints_dense, and withoutlorbitandnedosin[vasp.el_bands.incar].[vasp.el_dos]withoutkpoints_opt. It is written only when[vasp.el_bands]haskpoints_dense.
velph convert prints these changes:
% velph convert velph.toml velph-new.toml
fft_mesh of [phelel] was removed.
[vasp.el_bands] was split into [vasp.el_bands] with kpoints_opt and [vasp.el_dos] with kpoints_dense.
lorbit and nedos were removed from [vasp.el_bands.incar].
"velph-new.toml" was written from "velph.toml".
Settings that velph 0.15 does not use#
The following settings of velph 0.14 have no place in velph 0.15.
velph convert removes them, and the subcommands do not use them:
fft_meshof[phelel].velph phelel differentiatecomputes the FFT mesh (see Subcommands).phonon_supercell_dimensionandphonon_supercell_matrixof[phelel]and[phono3py], and[vasp.phelel.phonon]and[vasp.phono3py.phonon].velph phelel initwritesphelel/phelel_disp.yamlwithout the phonon supercell and prints no message about it. To use a phonon supercell, see Phonon supercells.[vasp.incar].
A key that velph 0.15 does not know is an error, also in a velph.toml of
velph 0.14. velph 0.14 did not use such a key and printed no message.
scheduler_name in [scheduler] or in [vasp.<input set>.scheduler] of a
velph.toml of velph 0.14 is replaced by scheduler_template, so that the job
scripts are those that velph 0.14 writes (see
Job scripts of scheduler_name). velph convert and the subcommands do
this in the same way, and velph convert prints it:
% velph convert velph.toml velph-new.toml
fft_mesh of [phelel] was removed.
scheduler_name = "sge" of [scheduler] was removed.
scheduler_template was written to give the job scripts that velph 0.14 writes for scheduler_name.
"velph-new.toml" was written from "velph.toml".
scheduler_name in a velph.toml of velph 0.15 is an error.
Directories with new names#
The results of velph 0.14 in the following directories are not read by velph 0.15, because the directories have new names (see Subcommands):
el_bands/bandsandel_bands/dos, which are nowel_bandsandel_dos.ph_bands/bands, which is nowph_bands.phelel/ph-disp-*, the calculations of the phonon supercell. Whenphelel/phelel_disp.yamlhas the phonon supercell,velph phelel differentiatereads these calculations fromphonopy/disp-*, and it stops whenphonopy/phonopy_disp.yamldoes not exist.
velph.toml#
See velph.toml file for the format of velph 0.15.
[velph] versionreplacesversionof[phelel]. Avelph.tomlwithout[velph] versionis read as a file of velph 0.14.[vasp.el_bands.bands]and[vasp.el_bands.dos]are now[vasp.el_bands]and[vasp.el_dos].fft_meshof[phelel]is removed.phonon_supercell_dimensionandphonon_supercell_matrixof[phelel]and[phono3py], and[vasp.phelel.phonon]and[vasp.phono3py.phonon], are removed.[vasp.incar]andincar_unsetare settings of a template only. Each input set ofvelph.tomlhas all of its INCAR tags, andvelph.tomlwith[vasp.incar]orincar_unsetis an error.kspacingin a k-point block is an error.velph initconverts it tomesh.velph initwritesnosymin[phelel],[phonopy]and[phono3py].velph phono3py initusesnumber_of_snapshotsof[phono3py]when--rdis not given.scheduler_nameof[scheduler]and[vasp.<input set>.scheduler]is removed. The job script is written fromscheduler_templateonly (see Job scripts of scheduler_name).A key that velph does not know is an error.
velph init template#
See velph init template for the template of velph 0.15. velph init
stops with an error for a template of velph 0.14, and the error lists the
changes that concern the file.
[init.options]is now[init]. The keys of[init]are those of the command-line options ofvelph init(see [init]).amplitude,diagonal,plusminus,nosymand the supercell keys in[init]are used for all the codes incodes.phelel_nosymof[init.options]is nownosymof[init].An INCAR tag set to an empty table
{}is not used. To exclude a tag of[vasp.incar]from an input set, list it inincar_unsetof the input set (see [vasp.incar] and incar_unset).kspacingcan be given in everykpointsandkpoints_denseblock, including[vasp.ph_bands.kpoints].scheduler_nameis removed, as invelph.toml.
Job scripts of scheduler_name#
With scheduler_name = "sge" or "slurm", velph 0.14 wrote a job script of SGE
or Slurm that was written in velph, and it did not use scheduler_template.
velph 0.15 writes the job script from scheduler_template only. For a
velph.toml of velph 0.14, velph convert and the subcommands replace
scheduler_name by the following scheduler_template, which gives the job
script that velph 0.14 wrote (see Converting velph.toml with velph convert). In a
template of velph init, remove scheduler_name and give this
scheduler_template.
For scheduler_name = "sge",
scheduler_template = '''#!/bin/bash
#$ -cwd
#$ -S /bin/bash
#$ -m n
#$ -N {job_name}
#$ -V
#$ -o _scheduler-stdout.txt
#$ -e _scheduler-stderr.txt
#$ -pe {pe}
#$ -l h_rt={walltime}
{prepend_text}
{mpirun_command} {vasp_binary}
{append_text}
'''
velph 0.14 wrote the line of -pe only when pe was given, and the line of
-l h_rt only when walltime was given. Remove the line of a key that is not
given. velph init of velph 0.14 wrote walltime = "96:00:00" by default.
When pe is given only in some [vasp.<input set>.scheduler], give
scheduler_template with the line of -pe in those sections.
For scheduler_name = "slurm",
scheduler_template = '''#!/bin/bash
#SBATCH --job-name={job_name}
#SBATCH --partition={partition}
#SBATCH --nodes={nodes}
#SBATCH --ntasks={ntasks}
#SBATCH --time=96:00:00 # Time limit hrs:min:sec
#SBATCH --output=ci_%j.log # Standard output and error log
{prepend_text}
{mpirun_command} {vasp_binary}
{append_text}
'''
velph 0.14 wrote --time=96:00:00 and did not use walltime. To use
walltime, write --time={walltime}.
Subcommands#
See velph init and velph subcommands for the subcommands of velph 0.15.
velph convert#
velph convert is a new subcommand, which writes a velph.toml of velph 0.14
in the format of velph 0.15 (see Converting velph.toml with velph convert).
velph init#
--codechooses the codes whose sections are written. Repeat it for more than one code.--nosymreplaces--phelel-nosym, and it is used for all the chosen codes.When
velph initstops with an error, the exit code is 1. velph 0.14 gave 0.With
--symmetrize-cell, the k-point meshes of the input sets on the unit cell are computed with the symmetry of the unit cell. velph 0.14 used the symmetry of the input cell. For example, for a rhombohedral input cell, the mesh on the hexagonal unit cell can differ along the c axis.With
--max-num-atoms, the supercell has at most that number of atoms, also with--no-find-primitive. With a primitive cell as input, velph 0.14 could give a larger supercell.When a supercell has fewer rotations than the unit cell,
velph initprints a warning.velph initwrites[scheduler]only when its template has[scheduler], and it writes the[scheduler]of the template as it is. velph 0.14 wrote a default[scheduler]with a job script of Slurm, which[scheduler]of a template updated key by key. See velph.toml-[scheduler] section.
velph el_bands, velph el_dos and velph ph_bands#
velph el_bands generatewrites the input files inel_bandsonly, in place ofel_bands/bandsandel_bands/dos.velph el_dos generateis a new subcommand, which writes the input files of the DOS calculation inel_dos.velph el_dos plotis a new subcommand, which plots the DOS.velph el_bands plot_eigenvaluesis nowvelph el_dos plot_eigenvalues.velph ph_bands generatewrites the input files inph_bands, in place ofph_bands/bands.The band paths that seekpath gives are written in the basis of
[primitive_cell]. velph 0.14 wrote the coordinates in the basis that seekpath chose, which put the points in wrong places when the two bases differ, for example for a body-centred tetragonal cell with--primitive-cell-choice reduced.
Phonon supercells#
The phonon supercells of phelel and phono3py are taken from phonopy:
velph phonopy initandvelph phonopy generatemake the phonon supercells inphonopy.velph phelel init --phonon-from-phonopyandvelph phono3py init --phonon-from-phonopytake the phonon supercells fromphonopy/phonopy_disp.yaml.velph phelel differentiatereads the calculations of the phonon supercells fromphonopy/disp-*.
velph phelel generate and velph phono3py generate no longer write
ph-disp-*. See velph phelel init.
velph phelel differentiate#
The FFT mesh written in phelel/phelel_params.hdf5 is computed from encut and
prec in the INCAR tags of the electron-phonon input sets, or from --encut
(see velph phelel differentiate). velph 0.14 read fft_mesh
of [phelel]. A missing prec is taken as Normal, the default of VASP.
Other subcommands#
velph generatetakes the file name ofvelph.tomlby--toml-filename, as the other subcommands do.-fof velph 0.14 is removed.check-fftofvelph selfenergyandvelph transportis removed.When
CONTCARof the previous step does not exist,velph relax generatestops with an error and does not make the next directory. velph 0.14 made the next directory empty.