Calculation of dynamical matrix from single q-point after mrgddb

Hi everyone.

I hope this will be a simple question but I cannot find anything on the forum about it.

How does one calculate all of the mode frequencies/the dynamical matrix (with either anaddb or abinit) from a single q-vector when you did the calculation in parts? I.e, the cell was so large that a single q-point DFPT calculation required you to merge several DDBs with mrgddb.

You get a truncated version of the frequencies and the dynamical matrix at the end of each (truncated) run, but this warns you that it is not the full dynamical matrix:

chkph3 : WARNING -
The dynamical matrix was incomplete : phonon frequencies may be wrong …

In Anaddb, I cannot find how to specify only a single q-point rather than a grid (unless of course it’s at Gamma and ngkpt can be set to 1 1 1)

So, how do I get the frequencies in this case?

Best,

JSB

How does one calculate all of the mode frequencies/the dynamical matrix (with either anaddb or abinit) from a single q-vector when you did the calculation in parts? I.e, the cell was so large that a single q-point DFPT calculation required you to merge several DDBs with mrgddb.

In this case, one should use mrgddb to merge all the independent perturbations computed in the different runs and then use anaddb to fill by symmetry all the entries of the dynamical matrix for a given q.

In Anaddb, I cannot find how to specify only a single q-point rather than a grid (unless of course it’s at Gamma and ngkpt can be set to 1 1 1)

Use ifcflag 0 to disable the Fourier interpolation and provide the list of q-points
where phonons should be computed via nph1l and qph1l.
In this case, the q-points must be in the DDB file:

ifcflag 0
asr 2
nph1l 1
qph1l
    0.0    0.0    0.0. 1.0       # Frac_coords weight