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