Good day to everyone!
I’ve run multiple simulations where I stretch cubic models of AlN, GaN, and TiN along their x-axis at a constant strain rate. The initial runs yielded Young’s modulus values (taken as the slope of the generated stress-strain curves) that were way beyond experimental and theoretical values recorded in literature. As advised by my mentors, I ran further simulations that varied the size of the initial models to see if larger sizes would bring my results closer to known values. While it did, the results were still quite high (see screenshot attached).
Given all that, I wonder if there are ways to improve my results aside from increasing the model size (something that my laptop is poorly equipped to handle.) I’m considering varying the strain rate and initial system temperature after equilibration.
My input scripts generally follow this flow (following this LAMMPS tutorial: Uniaxial Tension - EVOCD):
------------------------ INITIALIZATION ----------------------------
units metal
atom_style atomic
dimension 3
boundary p p p
atom_modify map array
------------------------- SETTINGS ---------------------------------
variable a equal 3.00770274
variable b equal 3.00770274
variable c equal 3.00770274
#lattice hcp ${latconst}
region whole block 0 $a 0 $b 0 $c units lattice
create_box 2 whole
#create Ti atoms
lattice custom 1.0 &
a1 $a 0.0 0.0 &
a2 0.0 $b 0.0 &
a3 0.0 0.0 $c &
basis 0.50000000 0.50000000 0.50000000
create_atoms 1 region whole
#create N atoms
lattice custom 1.0 &
a1 $a 0.0 0.0 &
a2 0.0 $b 0.0 &
a3 0.0 0.0 $c &
basis 0.00000000 0.00000000 0.00000000
create_atoms 2 region whole
replicate 8 8 8
------------------------- POTENTIAL ---------------------------------
pair_style meam/c
pair_coeff * * libraryTiN.meam Ti N TiN.meam Ti N
neighbor 2.0 bin
neigh_modify delay 10 check yes
#-------------------------- COMPUTATIONS -------------------------------
compute csym all centro/atom fcc
compute peratom all pe/atom
------------------------- EQUILIBRATION ------------------------------------
reset_timestep 0
timestep 0.001
velocity all create 300 12345 mom yes rot no
fix 1 all npt temp 300 300 1 iso 0 0 1 drag 1
Set thermo output
thermo 10
thermo_style custom step lx ly lz press pxx pyy pzz pe temp
dump 1 all custom 10 equilibration_TiN.lammpstrj id type x y z ix iy iz c_peratom c_csym
write_data data.relaxationTiN
run 50000
unfix 1
undump 1
Store final cell length for strain calculations
variable tmp equal “lx”
variable L0 equal {tmp}
print "Initial Length, L0: {L0}"
------------------------- DEFORMATION ------------------------------------
reset_timestep 0
write_restart restart.TiN
fix 1 all npt temp 300 300 1 y 0 0 1 z 0 0 1 drag 1
variable srate equal 1.0e10
variable srate1 equal “v_srate / 1.0e12”
fix 2 all deform 1 x erate ${srate1} units box remap x
variable strain equal “(lx - v_L0)/v_L0”
variable p1 equal “v_strain”
variable p2 equal “-pxx/1000”
variable p3 equal “-pyy/1000”
variable p4 equal “-pzz/1000”
fix def1 all print 100 “{p1} {p2} {p3} {p4}” file TiN.deformation.txt screen no
thermo 10
thermo_style custom step v_strain temp v_p2 v_p3 v_p4 ke pe press
dump 1 all custom 10 deformation_TiN.lammpstrj id type x y z ix iy iz c_peratom c_csym
write_data data.deformationTiN
dump 2 all custom 10 data.atoms_deformation_TiN id type x y z ix iy iz
run 300000
Thank you very much for your time and patience!