Skip to content

Elastic constants

By applying cell deformations which correspond to the elastic constants you want to calculate, you can obtain elastic constants by calculating potential energy for each deformed structure. (Note that this script works only for cubic systems.)

Here, it is assumed that the minimum energy lattice constant is already determined via Lattice constant section.

  1. Set the correct lattice constant in pmdini file.

  2. Run the elasticity.py script for preparation of several pmd computations as,

    $ python /path/to/nap/nappy/elasticity prepaer prepare pmdini
    

    This will create elast_## directories which contain pmdini file, and conf.elast.yaml file that stores some options.

  3. Then run pmd in each directories.

    $ for d in elast_*; do echo $d ; cd $d; ln -s ../in.p* .; pmd > out.pmd ; cd ..; done
    
  4. Finally, run the elasticity.py script again to compute elastic constants.

    $ python /path/to/nap/nappy/elasticity.py analyze pmdini strs.pmd
     C_ij [GPa]:
        108.338     74.200     74.115      0.096      0.000      0.019
         74.200    108.263     74.061      0.071     -0.001      0.013
         74.115     74.061    108.275      0.039     -0.002      0.005
          0.096      0.071      0.039    108.211     -0.039      0.055
          0.000     -0.001     -0.002     -0.039    108.211      0.057
          0.019      0.013      0.005      0.055      0.057    108.211
    Spacegroup number =  1  ==> Triclinic
     C_ij [GPa]:
        108.338     74.200     74.115      0.096      0.000      0.019
         74.200    108.263     74.061      0.071     -0.001      0.013
         74.115     74.061    108.275      0.039     -0.002      0.005
          0.096      0.071      0.039    108.211     -0.039      0.055
          0.000     -0.001     -0.002     -0.039    108.211      0.057
          0.019      0.013      0.005      0.055      0.057    108.211
    
     Bulk modulus (K)      =     85.514 GPa
     shear modulus (G)     =     53.145 GPa
     Poisson's ratio (nu) =      0.243
    
     Definition of elastic moduli, see https://materialsproject.org/wiki/index.php/Elasticity_calculations
       c123 = c11 +c22 +c33  =    324.876
       c231 = c12 +c13 +c23  =    222.376
       c456 = c44 +c55 +c66  =    324.633
       s123 = s11 +s22 +s33  =      0.062
       s231 = s12 +s13 +s23  =     -0.025
       s456 = s44 +s55 +s66  =      0.028
       Kv   = (c123 +2*c231)/9  =     85.514
       Kr   = 1.0 /(s123 +2*s231)  =     85.514
       Gv   = (c123 -c231 +3*c456)/15  =     71.760
       Gr   = 15.0 /(4.0*s123 -4.0*s231 +3.0*s456)  =     34.531
       K    = (Kv +Kr)/2
       G    = (Gv +Gr)/2
       nu   = (3*K -2*G)/(6*K +2*G)
    
     elasticity.py analyze done