Skip to content

Relaxation: make

Tongqi Wen edited this page Jun 20, 2020 · 5 revisions

Let's say the directories storing structures are confs/mp-*. For single element system, if POSCAR doesn't exist in the directories: mp-fcc, mp-hcp, mp-dhcp, mp-bcc, mp-diamond, and mp-sc, the package will automatically generate the standard crystal structures fcc, hcp, dhcp, bcc, diamond, and sc in the directories above, respectively. In other conditions and for multi-component system (more than 1), if POSCAR doesn't exist, the package will terminate and print the error no configuration for autotest.

VASP relaxation

Take the input example of AlMg in the previous section, when we do make, the following files would be generated:

POSCAR: After ensuring POSCAR file exists in every confs/mp-*, the confs/mp-*/relaxation directory would be built and when we do

ls confs/mp-*/relaxation/POSCAR

the output should be

POSCAR -> ../POSCAR

indicating the confs/mp-*/relaxation/POSCAR links to confs/mp-*/POSCAR.

POTCAR: confs/mp-*/relaxation/POTCAR should contain sequentially the content of vasp/input/POTCAR.al and vasp/input/POTCAR.mg. Please pay attention to the element sequence in POTCAR.

INCAR: The initial INCAR file needs to be provided by the user and KSPACING parameter must be provided to help generate KPOINTS file. Besides, users can also apply the parameter in the relaxation part to make the final changes on INCAR.

LAMMPS relaxation

Take the deepmd example of AlMg in the previous section, when we do make, the following files would be generated:

conf.lmp: the input configuration for lammps converted from poscar would exist as confs/mp-*/relaxation/conf.lmp.

in.lammps: the package would generate the following confs/mp-*/relaxation/in.lammps and we refer the user to the further information of fix box/relax function in lammps:

clear
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
fix             1 all box/relax iso 0.0
minimize        1.000000e-12 1.000000e-06 5000 500000
fix             1 all box/relax aniso 0.0
minimize        1.000000e-12 1.000000e-06 5000 500000
variable        N equal count(all)
variable        V equal vol
variable        E equal "c_mype"
variable        tmplx equal lx
variable        tmply equal ly
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}
variable        AA equal (${tmplx}*${tmply})
print "All done"
print "Total number of atoms = ${N}"
print "Final energy per atoms = ${Epa}"
print "Final volume per atoms = ${Vpa}"
print "Final Base area = ${AA}"
print "Final Stress (xx yy zz xy xz yz) = ${Pxx} ${Pyy} ${Pzz} ${Pxy} ${Pxz} ${Pyz}"

interatomic potential model: the frozen_model.pb in confs/mp-*/relaxation would link to the frozen_model.pb file given in the input.

Clone this wiki locally