Skip to content

Interpolation differences between different q-grid #95

@yw-fang

Description

@yw-fang

version of CellConstructor: 1.4.1

This is an issue noticed by myself and @ionerrea. I just copy the email between us and @mesonepigreco to leave a record in Github for easier examination for developers and other uses.

@ionerrea mentioned that previously in very early versions, he has used a condition in the interpolation: if one q point ass been included in the q_sscha, then D_sscha(q_sscha) will be used directly instead of the interpolated one. I am wondering if the present implementation considers this condition.

I quickly went through the code and couldn't find any of this condition being implemented.

To test this, I interpolated to different grids and compared the resulting dyn files (phonon frequencies) at the Gamma point (dyn1). The frequencies from the interpolated 666 grid show imaginary modes, whereas Gamma from SSCHA and the interpolated 888 grid do not. This seems to confirm that this interpolation method indeed didn't consider the mentioned condition.

Based on this, I believe the Gamma point from the interpolated 666 grid is not correctly interpolated. It should be corrected by replacing this dyn file using the one from SSCHA at the Gamma point. Could you please share your opinion on this matter? Thank you very much!

# interpolated-fine666-sscha: grep THz sscha_fine_dyn1
   freq (    1) =    -0.43914598 [THz] =   -14.64833115 [cm-1]
   freq (    2) =    -0.43914598 [THz] =   -14.64833115 [cm-1]
   freq (    3) =    -0.43914598 [THz] =   -14.64833115 [cm-1]
   freq (    4) =     7.08108081 [THz] =   236.19939770 [cm-1]
   freq (    5) =     7.08108081 [THz] =   236.19939770 [cm-1]
   freq (    6) =     7.08108081 [THz] =   236.19939770 [cm-1]
   freq (    7) =     7.64238359 [THz] =   254.92244020 [cm-1]
   freq (    8) =     7.64238359 [THz] =   254.92244020 [cm-1]
   freq (    9) =     7.64238359 [THz] =   254.92244020 [cm-1]
   freq (   10) =    13.96638121 [THz] =   465.86826455 [cm-1]
   freq (   11) =    13.96638121 [THz] =   465.86826455 [cm-1]
   freq (   12) =    13.96638121 [THz] =   465.86826455 [cm-1]
   freq (   13) =    15.73845565 [THz] =   524.97829686 [cm-1]
   freq (   14) =    15.73845565 [THz] =   524.97829686 [cm-1]
   freq (   15) =    15.73845565 [THz] =   524.97829686 [cm-1]
   freq (   16) =    15.98122774 [THz] =   533.07630081 [cm-1]
   freq (   17) =    15.98122774 [THz] =   533.07630081 [cm-1]
   freq (   18) =    15.98122774 [THz] =   533.07630081 [cm-1]
   freq (   19) =    20.63119262 [THz] =   688.18241151 [cm-1]
   freq (   20) =    20.63119262 [THz] =   688.18241151 [cm-1]
   freq (   21) =    20.63119262 [THz] =   688.18241151 [cm-1]
   freq (   22) =    28.59589113 [THz] =   953.85611872 [cm-1]
   freq (   23) =    28.59589113 [THz] =   953.85611872 [cm-1]
   freq (   24) =    36.87981587 [THz] =  1230.17806502 [cm-1]
   freq (   25) =    37.51754410 [THz] =  1251.45038610 [cm-1]
   freq (   26) =    37.51754410 [THz] =  1251.45038610 [cm-1]
   freq (   27) =    37.51754410 [THz] =  1251.45038610 [cm-1]

# interpolated-fine888-sscha: grep THz sscha_fine_dyn1
   freq (    1) =    -0.00000028 [THz] =    -0.00000920 [cm-1]
   freq (    2) =    -0.00000020 [THz] =    -0.00000663 [cm-1]
   freq (    3) =     0.00000027 [THz] =     0.00000898 [cm-1]
   freq (    4) =     7.14745993 [THz] =   238.41356643 [cm-1]
   freq (    5) =     7.14745993 [THz] =   238.41356643 [cm-1]
   freq (    6) =     7.14745993 [THz] =   238.41356643 [cm-1]
   freq (    7) =     7.72867916 [THz] =   257.80095032 [cm-1]
   freq (    8) =     7.72867916 [THz] =   257.80095032 [cm-1]
   freq (    9) =     7.72867916 [THz] =   257.80095032 [cm-1]
   freq (   10) =    14.06565800 [THz] =   469.17978141 [cm-1]
   freq (   11) =    14.06565800 [THz] =   469.17978141 [cm-1]
   freq (   12) =    14.06565800 [THz] =   469.17978141 [cm-1]
   freq (   13) =    15.65151791 [THz] =   522.07836627 [cm-1]
   freq (   14) =    15.65151791 [THz] =   522.07836627 [cm-1]
   freq (   15) =    15.65151791 [THz] =   522.07836627 [cm-1]
   freq (   16) =    16.60451514 [THz] =   553.86692780 [cm-1]
   freq (   17) =    16.60451514 [THz] =   553.86692780 [cm-1]
   freq (   18) =    16.60451514 [THz] =   553.86692780 [cm-1]
   freq (   19) =    20.62507175 [THz] =   687.97824119 [cm-1]
   freq (   20) =    20.62507175 [THz] =   687.97824119 [cm-1]
   freq (   21) =    20.62507175 [THz] =   687.97824119 [cm-1]
   freq (   22) =    29.78501686 [THz] =   993.52107769 [cm-1]
   freq (   23) =    29.78501686 [THz] =   993.52107769 [cm-1]
   freq (   24) =    36.91342221 [THz] =  1231.29905190 [cm-1]
   freq (   25) =    37.49951768 [THz] =  1250.84908956 [cm-1]
   freq (   26) =    37.49951768 [THz] =  1250.84908956 [cm-1]
   freq (   27) =    37.49951768 [THz] =  1250.84908956 [cm-1]

# hessian222 from SSCHA: grep THz dyn_hessian_1
   freq (    1) =    -0.00000058 [THz] =    -0.00001920 [cm-1]
   freq (    2) =    -0.00000031 [THz] =    -0.00001033 [cm-1]
   freq (    3) =     0.00000032 [THz] =     0.00001056 [cm-1]
   freq (    4) =     7.14745993 [THz] =   238.41356643 [cm-1]
   freq (    5) =     7.14745993 [THz] =   238.41356643 [cm-1]
   freq (    6) =     7.14745993 [THz] =   238.41356643 [cm-1]
   freq (    7) =     7.72867916 [THz] =   257.80095032 [cm-1]
   freq (    8) =     7.72867916 [THz] =   257.80095032 [cm-1]
   freq (    9) =     7.72867916 [THz] =   257.80095032 [cm-1]
   freq (   10) =    14.06565800 [THz] =   469.17978141 [cm-1]
   freq (   11) =    14.06565800 [THz] =   469.17978141 [cm-1]
   freq (   12) =    14.06565800 [THz] =   469.17978141 [cm-1]
   freq (   13) =    15.65151791 [THz] =   522.07836627 [cm-1]
   freq (   14) =    15.65151791 [THz] =   522.07836627 [cm-1]
   freq (   15) =    15.65151791 [THz] =   522.07836627 [cm-1]
   freq (   16) =    16.60451514 [THz] =   553.86692780 [cm-1]
   freq (   17) =    16.60451514 [THz] =   553.86692780 [cm-1]
   freq (   18) =    16.60451514 [THz] =   553.86692780 [cm-1]
   freq (   19) =    20.62507175 [THz] =   687.97824119 [cm-1]
   freq (   20) =    20.62507175 [THz] =   687.97824119 [cm-1]
   freq (   21) =    20.62507175 [THz] =   687.97824119 [cm-1]
   freq (   22) =    29.78501686 [THz] =   993.52107769 [cm-1]
   freq (   23) =    29.78501686 [THz] =   993.52107769 [cm-1]
   freq (   24) =    36.91342221 [THz] =  1231.29905190 [cm-1]
   freq (   25) =    37.49951768 [THz] =  1250.84908956 [cm-1]
   freq (   26) =    37.49951768 [THz] =  1250.84908956 [cm-1]
   freq (   27) =    37.49951768 [THz] =  1250.84908956 [cm-1]

The major python code of interpolation for reproducing this difference:

 sscha_fine_dyn = sscha_coarse_dyn.Interpolate((2,2,2),
                                              (8,8,8),
                                              dfpt_coarse_dyn,
                                              dfpt_fine_dyn,) 

where dfpt_coarse_dyn and dfpt_fine_dyn are obtained from standard DFPT of Quantum Espresso on coarse and fine q grid.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions