nanowire match studies

Hi,

I am working on the deformation of a nanowire and I am first trying to match literature before I work on my own but am thinking I have an error in my script. When trying to match the work of the attached study I first use nvt to equilibrate for 20 ps to 300K. I then strain (again with nvt 300) at the strain rate from the study. My nanowire is 4nm in diameter, and the length is 4D, as per the paper. However, my stress strain curves produce a modulus of about 80, far lower than the 200 reported. Is there anything in my script that seems obviously wrong? Is my NVT a relaxation or should I be doing a minimize? If so should I minimize before or after NVT? I think I am close but have been stuck on this for a while.

Thanks very much!

Carly

------------------------ INITIALIZATION ----------------------------

units metal
dimension 3
boundary p s s
atom_style atomic
variable latparam equal 2.856

----------------------- ATOM DEFINITION ----------------------------

lattice bcc {latparam} region whole block 0 160 0 100 0 100 units box create_box 1 whole region wire cylinder x 50 50 20 INF INF units box lattice bcc {latparam} orient x 1 0 0 orient y 0 1 0 orient z 0 0 1
create_atoms 1 region wire

mass 1 55.85

------------------------ FORCE FIELDS ------------------------------

pair_style eam/alloy
pair_coeff * * Fe_Olsson_CMS2009.eam.alloy Fe

delete_atoms overlap 0.1 all all

------------------------- pressure calculations ---------------------------------

compute csym all centro/atom bcc
#compute peratomp all pe/atom

####################################### EQUILIBRATION

#set timestep
reset_timestep 0
timestep 0.001

#set temperature
velocity all create 300 12345 mom yes rot no
#fix 2 all npt temp 300 300 0.1 iso 0 0 1 drag 1
fix 2 all nvt temp 300 300 0.1

Set thermo output

thermo 500
thermo_style custom step lx ly lz press pxx pyy pzz pe temp

Run for at least 10 picosecond (assuming 1 fs timestep)

run 20000
unfix 2

Store final cell length for strain calculations

variable tmp equal “lx”
variable L0 equal {tmp} print "Initial Length, L0: {L0}"

variable tmp1 equal “ly”
variable L1 equal {tmp1} print "Initial Length, L1: {L1}"

variable tmp2 equal “lz”
variable L2 equal {tmp2} print "Initial Length, L2: {L2}"

####################################### DEFORMATION
reset_timestep 0

#fix 2 all npt temp 300 300 0.1 y 0 0 1 z 0 0 1 drag 1
fix 2 all nvt temp 300 300 0.1
variable srate equal 1.0e10
variable srate1 equal “v_srate / 1.0e13”

fix 3 all deform 1 x erate ${srate1} units box remap x

Output strain and stress info to file

for units metal, pressure is in [atom] = 1/9869 [GPa]

p2, p3, p4 are in GPa

variable strainx equal “(lx - v_L0)/v_L0”
variable strainy equal “(ly - v_L1)/v_L1”
variable strainz equal “(lz - v_L2)/v_L2”
variable p1 equal “v_strainx”
variable p2 equal “v_strainy”
variable p3 equal “v_strainz”
variable p4 equal “-pxx/10000”
variable p5 equal “-pyy/10000”
variable p6 equal “-pzz/10000”

fix def1 all print 1000 “{p1} {p2} {p3} {p4} {p5} {p6}” file Fe.def1.txt screen no

dump 1 all custom 2500 md.dump id type x y z

Display thermo

thermo 5000
thermo_style custom step v_strainx v_strainy v_strainz temp v_p4 v_p5 v_p6 ke pe press
run 1000000

Hi Carly,

One possible reason for obtaining a smaller modulus is the use of the box volume instead of the actual (system) volume. I guess you box volume is the one before removing atoms, which is larger than your system volume. I am not sure about this. Just a guess.

Minimization does not affect any mechanical properties. It just might help (might not also) to make your simulation more stable in the beginning. I usually start from a low temperature when I simulate systems whose initial state is far from equilibrium. Then I heat it up gradually to reach my target state.

I noticed some commented lines in your script. I feel like commenting on one of them:

#fix 2 all npt temp 300 300 0.1 iso 0 0 1 drag 1
It’s not good (forbidden by LAMMPS?) to use isotropic pressure control for nanowires.
It’s better to control the pressure (that is, use NPT instead of NVT) in the deformed direction in the equilibration stage, because you want to first reach an equilibrium state with zero strain. However, NPT might work badly for long and thin nanowires. If that happens, you can do NVT and find the zero strain box length by extrapolation (try and error).

Best,
Bruce