deepmodeling / abacus-develop

An electronic structure package based on either plane wave basis or numerical atomic orbitals.
http://abacus.ustc.edu.cn
GNU Lesser General Public License v3.0
174 stars 136 forks source link

Feature: Support to calculate second derivatives, Hessian matrix, and phonon frequencies #3663

Closed WHUweiqingzhou closed 6 months ago

WHUweiqingzhou commented 9 months ago

Background

In calculations involving molecules such as catalysis/adsorption, the calculation of zero-point energy and molecular vibrational frequencies is very important for thermodynamic corrections. Unfortunately, ABACUS does not support them.

VASP calculate them by IBRION=5 and 6:

When IBRION=5 or IBRION=6 are set VASP computes the second-order derivatives of the total energy with respect to the position of the ions using a finite differences approach, the dynamical matrix is constructed and diagonalized and the phonon modes and frequencies of the system are reported in the OUTCAR file. For precise results, it is necessary to set EDIFF to values less or equal 1E-6. Using the default (EDIFF=1E-4) often results in unacceptably large errors. IBRION=5 does not apply symmetry, whereas IBRION=6 uses symmetry to reduce the number of displacements. If IBRION=6 and ISIF>=3 the elastic tensors and internal strain tensors are computed as well. Born effective charges, piezoelectric constants, and the ionic contribution to the dielectric tensor can be calculated additionally by specifying LEPSILON=.TRUE. (linear response theory) or LCALCEPS=.TRUE. (finite external field).

Describe the solution you'd like

Support to calculate second derivatives, Hessian matrix, and phonon frequencies, just like IBRION=5 and 6 in vasp.

Task list only for developers

Notice Possible Changes of Behavior (Reminder only for developers)

No response

Notice any changes of core modules (Reminder only for developers)

No response

Notice Possible Changes of Core Modules (Reminder only for developers)

No response

Additional Context

No response

Task list for Issue attackers (only for developers)

QuantumMisaka commented 9 months ago

For now, one can use ASE to do this vibrational and thermodynamic analysis easily by using the finite displacement method (likely in VASP) by using ABACUS as calculator, also one can use phonopy to do the likely thing. If we want to implement it in ABACUS, the method in ASE and phonopy need to be looked through.

WHUweiqingzhou commented 6 months ago

One can realize these calculations by using ASE. You can see more details in Notebook.