jochym / Elastic

A module for ASE for elastic constants calculation.
GNU General Public License v3.0
35 stars 23 forks source link

Wrong coefficients in `hexagonal` #65

Closed yuzie007 closed 5 months ago

yuzie007 commented 5 months ago

Apart from #64, I would also like to report wrong coefficients in hexagonal.

Here, we have unnecessary coefficients of 2. This is inconsistent with the Elastic document itself as well as my own derivation (main.pdf).

To demonstrate this is really an issue, I have conducted a test calculation for graphite (graphite_gaussian.zip). In experiments (Ref. 11 in this):

Fo DFT (PBE-D3(BJ)), using VASP IBRION=6, I obtain (without ionic-relaxation contribution)

Using Elastic with get_elastic_tensor (which calls hexagonal) I get

Which is substantially deviated from the IBRION=6 values for C11 and C12, because of the coefficient error in hexagonal.

If we use the one-axis approach (i.e., without hexagonal) (with solving the issue in #64), I get

Which is consistent with IBRION=6.

If we will fix the coefficients in hexagonal, then get_elastic_tensor gives

which is consistent with IBRION=6.

jochym commented 5 months ago

Thanks again @yuzie007 ! I will review the change and get back to you.

jochym commented 5 months ago

@yuzie007: It seems you are right. Thanks. I will merge your change as a first one after update of the build tool chain - which I am doing right now.

yuzie007 commented 5 months ago

@jochym Thank you so much also for cross-checking the coefficients. I fully agree on your suggested procedure, and it's really helpful to have new Elastic release with the fixed coefficients!