I was trying to make phonon dispersion using the foundational MLIPs using ASE. I wanted to see how the LO-TO splitting occurs at the GM point with these potentials.
But I find the “Current Implementation of the LO-TO splitting is currently depreciated“ in the source code. Is this issue fixed? What is the current way to get the Non-analytic corrections in the phonon dispersion?
Also, what should be the format of the json file with the Born effective charge and the dielectric tensor information?
Hi, Dominic
From what I’ve read. ASE still says the non-analytic correction for LO–TO splitting is not included in the present implementation, and read_born_charges() is still marked deprecated / likely incorrect. However, For the current workflow. I’d recommend you to use Phonopy NAC instea.d, the BORN file has 1st line = unit conversion factor, 2nd line = 3×3 dielectric tensor, then 3×3 Born charge tensors for each independent atom in the primitive cell. It just a recommendation, you should’ve tried other workflows
Using the phonopy Python API you can get displaced structures and provide forces from whatever calculator you like.
general docs:
A few friendlier frontends/interfaces are available as well:
The Calorine package is primarily intended for use with GPUMD/NEP potentials but includes a useful generic ASE/phonopy wrapper function:
If you are using one of the (many) supported ML potentials then janus-core provides a command-line wrapper; probably the easiest way to get MLIP phonons from a structure is janus phonons --fmax=1e-5 --arch=mace_mp --struct some_file.cif
fhi-vibes presents a framework for various phonon workflows. It uses text files for configuration but lets you point to whatever ASE calculator you like, including MLIP.
With any of those tools you’ll need to do a little bit of Phonopy-wrangling to combine the MLIP force constants with Born charge data from electronic structure calculations.