87 lines
2.0 KiB
Plaintext
87 lines
2.0 KiB
Plaintext
units metal
|
|
atom_style atomic
|
|
atom_modify map array sort 0 0.0
|
|
neigh_modify every 2 delay 10 check yes page 1000000 one 100000
|
|
|
|
## read in path data using fix property/atom- here 4th image of a NEB
|
|
fix pa all property/atom d_nx d_ny d_nz d_dnx d_dny d_dnz d_ddnx d_ddny d_ddnz
|
|
read_data pafipath.4.data fix pa NULL PafiPath
|
|
|
|
## EAM potential
|
|
pair_style eam/fs
|
|
pair_coeff * * Fe_mm.eam.fs Fe
|
|
|
|
mass * 55.85
|
|
thermo 100
|
|
min_style fire
|
|
|
|
|
|
compute pe all pe
|
|
variable pe equal pe
|
|
run 0
|
|
print "energy=${pe}"
|
|
|
|
## compute property/atom to access relevant fields
|
|
compute pa all property/atom d_nx d_ny d_nz d_dnx d_dny d_dnz d_ddnx d_ddny d_ddnz
|
|
run 0
|
|
|
|
## fix name group-id pafi compute-id temperature tdamp seed overdamped 0/1 com 0/1
|
|
fix hp all pafi pa 500.0 0.01 434 overdamped no com yes
|
|
|
|
run 0
|
|
minimize 0 0 1000 1000 # best if using NEB path
|
|
compute dx all displace/atom
|
|
compute dmag all reduce max c_dx[4]
|
|
variable maxjump equal sqrt(c_dmag)
|
|
|
|
thermo_style custom step pe temp v_maxjump
|
|
|
|
|
|
variable dn equal f_hp[4]*f_hp[4] # should be zero to float precision
|
|
|
|
|
|
fix af all ave/time 1 1000 1000 f_hp[1] f_hp[2] f_hp[3] v_dn
|
|
|
|
variable adn equal sqrt(f_af[4]) # should be very small (approx. 1e-6 A)
|
|
variable apf equal f_af[1]
|
|
|
|
|
|
run 1000
|
|
minimize 0 0 1000 1000
|
|
|
|
variable s_pe equal ${pe}
|
|
variable s_apf equal ${apf}
|
|
variable s_adn equal ${adn}
|
|
variable s_maxjump equal ${maxjump}
|
|
|
|
unfix hp
|
|
unfix pa
|
|
unfix af
|
|
minimize 0 0 1000 1000
|
|
|
|
|
|
print """
|
|
---------- PAFI RESULTS --------
|
|
|
|
During run:
|
|
Average Distance From Hyperplane = ${s_adn}A (Should be very small, around 1e-5A),
|
|
Average Force Projection Along MFEP = ${s_apf} eV/A
|
|
"""
|
|
print """
|
|
In-plane minimization post-run:
|
|
energy = ${s_pe} eV
|
|
|
|
"""
|
|
if "${s_maxjump} > 0.1" then &
|
|
"print 'Max Atomic Displacement = ${s_maxjump}A > 0.1A'" &
|
|
"print ' => Possible shallow in-plane metastability: Reduce time in basin and/or decrease tdamp'" &
|
|
else &
|
|
"print 'Max Atomic Displacement = ${s_maxjump}A < 0.1A => No in-plane jumps'"
|
|
print """
|
|
|
|
Full minimization after removal of PAFI fixes:
|
|
energy = ${pe} eV
|
|
|
|
----- END PAFI ----
|
|
"""
|