Elastic make

Elastic make#

Step 1. The DeformedStructureSet module in pymatgen.analysis.elasticity.strain is used to generate a set of independently deformed structures. equi.stress.out file is written to record the equilibrium stress in the Elastic directory. For the example in the previous section, equi.stress.out should be in confs/mp-*/elastic_00.

Step 2. If there are init_from_suffix and output_suffix parameter in the properties part, the refine process follows. Else, the deformed structure (POSCAR) and strain information (strain.out) are written in the task directory, for example, in confs/mp-*/elastic_00/task.000000.

Step 3. When doing elastic by VASP, ISIF=2. When doing by LAMMPS, the following in.lammps would be written.

units 	metal
dimension	3
boundary	p	p    p
atom_style	atomic
box             tilt large
read_data       conf.lmp
mass            1 1
mass            2 1
neigh_modify    every 1 delay 0 check no
pair_style deepmd frozen_model.pb
pair_coeff
compute         mype all pe
thermo          100
thermo_style    custom step pe pxx pyy pzz pxy pxz pyz lx ly lz vol c_mype
dump            1 all custom 100 dump.relax id type xs ys zs fx fy fz
min_style       cg
minimize        0 1.000000e-10 5000 500000
variable        N equal count(all)
variable        V equal vol
variable        E equal "c_mype"
variable        Pxx equal pxx
variable        Pyy equal pyy
variable        Pzz equal pzz
variable        Pxy equal pxy
variable        Pxz equal pxz
variable        Pyz equal pyz
variable        Epa equal ${E}/${N}
variable        Vpa equal ${V}/${N}
print "All done"
print "Total number of atoms = ${N}"
print "Final energy per atoms = ${Epa}"
print "Final volume per atoms = ${Vpa}"
print "Final Stress (xx yy zz xy xz yz) = ${Pxx} ${Pyy} ${Pzz} ${Pxy} ${Pxz} ${Pyz}"