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.
-
Set the correct lattice constant in
pmdini
file. -
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, andconf.elast.yaml
file that stores some options. -
Then run pmd in each directories.
$ for d in elast_*; do echo $d ; cd $d; ln -s ../in.p* .; pmd > out.pmd ; cd ..; done
-
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