Change Log#

Nov-7-2026: Version 0.20.0#

  • phonopy 4.10.0 or later and phono3py 4.10.0 or later are required.

  • get_shortest_g_points of phelel.base.fourier_series calls relocate_BZ_grid_address of phonopy. The selected g-points are the same as before, but the g-points with the same source can come in a different order.

  • The force constants computed by finite differences are symmetrized by the symfc projector, as phonopy.load does. With magnetic moments, the operations of the magnetic space group are used, and their time reversal is not applied. With is_symmetry=False, only the translational and permutation symmetries are imposed. Before, the force constants were not symmetrized. Therefore force_constants in phelel_params.hdf5 differ from those written by earlier versions. With -v, velph phelel differentiate prints the drift of the force constants after the symmetrization and the log of symfc.

  • --no-fc-symmetry of phelel and velph phelel differentiate, FC_SYMMETRY in the configuration file of phelel, and symmetrize_fc of Phelel and phelel.load() are added. They turn off the symmetrization of the force constants above. See --no-fc-symmetry.

Nov-4-2026: Version 0.19.0#

  • phonors 0.8.0 or later and earlier than 0.9 is required.

  • With spin, the check that the symmetry operations leave the PAW strengths Dij of the perfect supercell unchanged is faster. Dij is rotated once for each pair of rotation and time reversal, instead of once for each symmetry operation. The results are unchanged.

  • The finite-difference derivative of the local potential is faster. The element-wise steps, which ran on one core, run in parallel in phonors. The results differ from before by rounding errors only.

  • With --dv-evaluation-method shortest (the default), the derivative of the local potential is faster, in particular when the FFT mesh of the supercell has the symmetry of the supercell. The results differ from before by rounding errors only.

  • LocalPotentialInterpolationNUFFT of phelel.base.local_potential is renamed DLocalPotentialFit, after DDijQijFit. NUFFT is no longer used by default.

  • In phelel.base.fourier_series, the parameter representatives of FourierSeriesOnGrid is renamed g_point_selection, and get_shortest_representatives is renamed get_shortest_g_points, which returns (g, source_offsets) instead of (g, source, weight). rotation and translation of FourierSeriesOnGrid.evaluate and FourierSeriesOnGrid.get_phi have no default. For the function itself, give the identity and zero.

Nov-2-2026: Version 0.18.1#

  • Maintenance release

Nov-2-2026: Version 0.18.0#

  • --dv-evaluation-method of phelel and velph phelel differentiate, DV_EVALUATION_METHOD in the configuration file of phelel, and dv_evaluation_method of Phelel and phelel.load() are added. They choose how the change of the local potential is computed at the points of --fft-mesh, which are in general not on the FFT mesh of the supercell. The choices are shortest (the default), box and finufft. They differ in the reciprocal lattice vectors at which the Fourier coefficients are placed, and shortest and box compute the values without the approximation of finufft. shortest keeps the symmetry of the crystal and the reality of the potential between the points of the FFT mesh of the supercell. box gives the values that finufft computes, without the error of finufft. See --dv-evaluation-method.

  • The default is shortest. Before, finufft was always used. When the points given by --fft-mesh are not on the FFT mesh of the supercell, dV/du differs from that of the earlier versions: it has no imaginary part, which finufft gives. To get dV/du of the earlier versions, use --dv-evaluation-method finufft, or --dv-evaluation-method box, which differs from it only by the error of finufft.

  • finufft is no longer a dependency of phelel. It is needed only with --dv-evaluation-method finufft. Install it by conda install -c conda-forge finufft or pip install finufft.

  • phonors 0.7.0 or later is required. shortest chooses the shortest reciprocal lattice vectors with bz_grid_addresses of phonors, which is parallelized: for an FFT mesh of 300x300x300 points of the supercell, the choice takes 0.25 s on 18 cores instead of 30 s. shortest and box add up the Fourier coefficients with bin_supercell_fourier_coefficients of phonors and compute the inverse FFTs with scipy.fft, both in parallel.

Oct-26-2026: Version 0.17.0#

  • phonopy 4.8.6 or later is required, for the magnetic moments in the form n*value and for the GR-grid with zero magnetic moments. phonors 0.6.0 or later is required. phonopy 4.8.6 already depends on it, and phelel uses its snf3x3 directly.

  • Bug fix: time reversal in the symmetry operations was not applied to dV/du and dDij/du of collinear and non-collinear magnetic calculations with magnetic moments in phelel_disp.yaml. Without magnetic moments, the results are unchanged. (#288)

  • phelel-init --magmom is added. The magnetic moments are given as one value per atom (collinear) or three values per atom (non-collinear), and they are stored in phelel_disp.yaml. The form n*value of the MAGMOM tag of VASP can be used, such as "4*1 4*-1". See phelel-init and phelel commands.

  • phelel --cd reads LOCAL-POTENTIAL.bin, PAW-STRENGTH.bin, PAW-OVERLAP.bin and inwap.yaml, which VASP writes with LWAP = .TRUE., in place of vaspout.h5 when every directory has LOCAL-POTENTIAL.bin. Before, vaspout.h5 was read when every directory had it. LWAP = .TRUE. is for collinear and non-collinear magnetic calculations by VASP 6.6.1 or older, whose local potential in vaspout.h5 gives wrong derivatives. Otherwise, vaspout.h5 is recommended.

  • velph init writes lwap = true in [vasp.phelel.incar] when its tags have ispin = 2, lnoncollinear = true or lsorbit = true, and no lwap.

  • Phelel.atom_indices_in_derivatives is removed. Use Phelel.primitive.p2s_map.

Oct-23-2026: Version 0.16.0#

  • phonopy 4.8.4 or later is required.

  • The phelel-init command is added, as phonopy-init in phonopy. Supercells with displacements are generated by phelel-init -d in place of phelel -d. phelel stops with an error when it is given -d, -c, --dim, --dim-phonon, --amplitude, --pm or --nodiag, and the error tells to use phelel-init. See phelel-init and phelel commands.

  • phelel --cd needs --fft-mesh. Before, without --fft-mesh, phelel --cd wrote nothing.

  • phelel reads the crystal structure and the displacements from phelel_disp.yaml, or from the phelel_disp.yaml-like file given as its argument. A crystal structure in a POSCAR-like file given by -c is no longer read.

  • phelel-load is deprecated. Use phelel, which works as phelel-load did.

  • phelel reads a configuration file given by --config, as phonopy --config in phonopy. Before, --config of phelel-load did nothing. DIM and DIM_PHONON in the file do not replace the supercell matrices in phelel_disp.yaml.

  • The options --qpoints and --read-qpoints, which did nothing, are removed.

  • With --dim-phonon and without --amplitude, the phonon supercells are displaced by the same default distance as the supercells, 0.03 Angstrom for VASP. Before, they were displaced by 0.01 Angstrom.

  • velph init shows the number of atoms and the matrix of the supercell of each code, and velph phelel init shows the number of displacements. velph.toml is written without blank lines inside an input set or a cell, and without -0.0.

Oct-21-2026: Version 0.15.0#

  • velph is redesigned, and the format of velph.toml and of the velph init template changes. See Changes in velph 0.15 for the changes from velph 0.14.

  • velph convert writes a velph.toml of velph 0.14 in the format of velph 0.15.

  • The job script _job.sh is written differently from velph 0.14. velph writes it from scheduler_template only, and scheduler_name in velph.toml or in the velph init template is an error. velph init writes [scheduler] only when its template has [scheduler], and without it no _job.sh is written. See Job scripts of scheduler_name for the scheduler_template that gives the job script of velph 0.14.

  • An INCAR tag set to an empty table {} in the velph init template stops velph init with an error. To keep a tag of [vasp.incar] out of an input set, list the tag in incar_unset of that input set.

  • The DOS calculation has its own input set el_dos, written by velph el_dos generate. Before, it was el_bands/dos of velph el_bands generate.

  • velph el_dos plot plots the electronic DOS of el_dos/vaspout.h5.

  • The calculations of the phonon supercell of phelel are read from phonopy/disp-*, in place of phelel/ph-disp-*.

  • velph phelel generate, velph phonopy generate and velph phono3py generate read only <code>/<code>_disp.yaml. Before, they also read files in the current directory, such as BORN, FORCE_SETS, fc3.hdf5 and phelel_params.hdf5, and stopped with an error when such a file could not be read.

  • velph phelel phonopy reads vaspout.h5 as well as vasprun.xml.

  • tomli is no longer required. TOML files are read by tomllib of the Python standard library.

Oct-9-2026: Version 0.14.0#

  • Python 3.10 is no longer supported. Python 3.11 or later is required.

  • phonopy 4.8.2 or later and phono3py 4.8.0 or later are required.

  • Major refactoring of velph.

  • velph computes a k-point mesh from kspacing by rounding up, as VASP KSPACING does, so the mesh can be larger than before.

  • velph init writes amplitude = 0.01 in [phonopy] instead of 0.03 by default.

May-13-2026: Version 0.13.3#

  • Fix import errors.

May-13-2026: Version 0.13.2#

  • Update following the change of phonopy and phono3py.

Mar-8-2026: Version 0.13.1#

  • Rename cmd_root.py to velph_cmd_root.py for safer module import when calling velph command.

Mar-6-2026: Version 0.13.0#

  • Maintenance release

Feb-16-2026: Version 0.12.0#

  • Maintenance release

Oct-24-2025: Version 0.11.0#

  • Default INCAR tags are removed by setting empty table {} in velph template toml.

  • Use generalized regular grid when k-point grid symmetry is broken.

Jun-27-2025: Version 0.10.0#

  • Update following the change of phonopy.

May-1-2025: Version 0.9.1#

  • Update following the change of phonopy.

Mar-23-2025: Version 0.9.0#

  • Numpy arraies of dtype='long' were changed to those of dtype='int64'.

  • Collection of updates in velph commands.

Mar-1-2025: Version 0.8.3#

  • --save option was implemented for velph-el_bands-plot and velph-ph_bands-plot. Without this option, the plot is shown on display.

Jan-10-2025: Version 0.8.2#

  • Collection of small updates of velph command

Jan-8-2025: Version 0.8.1#

  • Fix minor bugs in velph command

Jan-5-2025: Version 0.8.0#

  • Refactoring of Phelel class

  • Major update of documentation

Dec-31-2024: Version 0.7.0#

  • Maintenance release to follow the change of phonopy.

  • elph_selfen_band_stop is estimated from el-DOS instead of elph_nbands for transport mode in velph.

Dec-9-2024: Version 0.6.6#

  • Collection of minor updates of velph command.