"frequencies" is affected by fixing atoms

Bug #1265934 reported by Ali Sadeghi
8
This bug affects 1 person
Affects Status Importance Assigned to Milestone
BigDFT
Fix Released
Medium
Thierry Deutsch

Bug Description

Hello everybody,

Playing around with the "frequencies" executable, I noticed a number of potential confusing issues.

1) if you fix some atomic coordinates in posinp.xyz, then the corresponding rows of the Hessian matrix would not be calculated, resulting in absolutely erroneous frequencies.
Although modifying the code should not be very difficult, however if it is supposed to be kept as it is, maybe it is enough to give a warning message and/or mention in the manual that all fixings should be removed from posinp.xyz in the case of frequency calculations.

2) If the file frequencies.xyz was really in the xyz format, it would be both much less confusing and more convenient to apply the atomic displacements, I believe. For instance, instead of putting x,y,z components corresponding to some atom O on separate lines:
O -8.9199946402E-02
O -1.9105165830E-01
O -1.1862861046E-01
I prefer to have it like this:
O -8.9199946402E-02 -1.9105165830E-01 -1.1862861046E-01

(I'm not sure (and could not find in its manual) that what is the acceptable format by v_sim in this case.)

3) Why *imaginary* part of the Hessian eigenvalues is written in the output while all the eigenvalues should be in principle real-valued.

4) Looking at the code, I see that imaginary frequencies (square root of negative eigenvalues) are output as *negative* values:
 if (eigen_r(i)<0.0_dp) eigen_r(i)=-sqrt(-eigen_r(i))
 Why not note this in the manual?
  Also, what is output as the file hessian.dat is indeed the *mass weighted Hessian* as it should be. This is not said in the manual.

I suggest to add this to the manual:
The mass-weighted Hessian matrix (which is output in the file 'hessian.dat') is diagonalized: the eigenvalues are printed out as the frequencies (imaginary frequencies are indicated by minus sign) while the corresponding eigenvectors are output in the file 'frequencies.xyz'.

Best regards,
Ali.

Changed in bigdft:
assignee: nobody → Thierry Deutsch (thierry-deutsch)
status: New → Invalid
status: Invalid → Triaged
Revision history for this message
Thierry Deutsch (thierry-deutsch) wrote :

Dear Ali,

 Thanks for you bug report.
1) Frozen atoms are used to move only some specific atoms. You're right, we need all atomic forces.
The posinp file is correctly reads and the frozen positions are only used by frequencies.
The routine call_bigdft has now no information about the frozen atoms.

2) Good suggestion. I changed the format in order to use the same as v_sim can handle.
For each mode, there are the number of atoms, the mode id, the frequency into 3 flavors and the atomic positions + the components of the given mode.

3) This is mainly for checking. I think we should remove soon.

4) You'r right. I will add some explanations on the wiki.
Frequencies will create two files: dynamical.dat and hessian.dat.

Changed in bigdft:
status: Triaged → Fix Committed
milestone: none → 1.7.1
Changed in bigdft:
status: Fix Committed → Fix Released
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.