Tensile simulation of nano wire using Add / Ave Force Command

Dear LAMMPS Developers,

I am simulating the tension behavior of a nano wire with one end fixed and other end being pulled with Ave / Add force
command. I was expecting a net stretching due to the applied force after some time steps. However, I have noticed
some peculiar behavior. When I am loading using Ave force command, the system breaks down near the loading end
(i.e., the atoms in the loading group separates). And, when I am loading with Add force command, the system exhibts some elongation followed by compression, i.e., net extension is zero.

Here, both the equilibrium and loading stages is done using NVT Ensemble (as the energy is added to the system through application of force). The boundary conditions are S S P, with non-periodic in loading direction (x direction). The load on each atom is applied as a function of time step.

I am not able to figure out were I am going wrong. I would appreciate any useful input to resolve this issue.

The following is the input script (also as an attachment):

Following is the input script:

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

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

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

lattice fcc {latparam} region whole block 0 4 0 20 0 4 create_box 1 whole lattice fcc {latparam} orient x 1 0 0 orient y 0 1 0 orient z 0 0 1
create_atoms 1 region whole

neighbor 2 bin
neigh_modify delay 0 every 1 check yes

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

pair_style eam
pair_coeff * * Cu_u3.eam

------------------------- GROUP DEFINITION ---------------------------------

region 1 block INF 2 INF INF INF INF units lattice
group lower region 1
region 2 block 18 INF INF INF INF units lattice
group upper region 2
group boundary union lower upper
group mobile subtract all boundary
group mobupp subtract all lower

------------- EQUILIBRITION NVT----------

reset_timestep 0
timestep 0.001
velocity all create 300 12345 mom yes rot no
fix 1 all nvt temp 300 300 0.1 drag 1

#thermo 1000
#thermo_style custom step lx ly lz press pxx pyy pzz temp etotal
#dump 2 all atom 500 dump.equi.*

run 30000
unfix 1
undump 2
#- ----------- Atom count ------------------

variable ratoms equal count(upper) # Total Number of Upper Group Atoms

------------ Setting The lower Group atoms as Fixed (Freezing the Lower group atoms) -------------------

velocity lower set 0 0 0
fix 2 lower setforce 0.0 0.0 0.0

------------ Force Settings -------------

variable p equal 0.000005
variable tforce equal v_p*elapsed/100000 # Total Force on the upper group of atoms
variable aforce equal v_tforce/v_ratoms # Average Force on each atom in upper group

------------ Loading -------------------

fix 32 upper aveforce v_aforce NULL NULL # Average Force Option
#fix 32 upper addforce v_aforce 0.0 0.0 # Add Force Option

fix 14 mobupp nvt temp 300 300 0.1 drag 0.0

#thermo 100
#thermo_style custom step lx ly lz temp etotal v_aforce elapsed
#dump 12 all custom 1000 dump.all.* id x y z fx fy fz

run 100000

input.txt (2.29 KB)

your input doesn’t even work due to an obvious syntax error. there are only 5 lengths instead of 6:

region 2 block 18 INF INF INF INF units lattice
ERROR: Illegal region command (…/region.cpp:366)

axel.

Dear Axel,

Its a typographic error in the mail. The original input script has 6 lengths. I have the problem (as discussed in the previous mail) with respective to the original input script which is working. I have attached the original file.

I tried many ways to resolve this issue but, could not. I would appreciate your help in this regard.

Thanks
-Ishaq

your input doesn’t even work due to an obvious syntax error. there are only 5 lengths instead of 6:

region 2 block 18 INF INF INF INF units lattice
ERROR: Illegal region command (…/region.cpp:366)

axel.

inputorg.txt (2.3 KB)

Dear Axel,

Its a typographic error in the mail. The original input script has 6
lengths. I have the problem (as discussed in the previous mail) with
respective to the original input script which is working. I have attached
the original file.

I tried many ways to resolve this issue but, could not. I would appreciate
your help in this regard.

​have you considered the time scale and magnitude of the forces that you
apply?
have you noticed that your sample starts rotating during equilibration?​
have you seen that your sample has an internal "pumping" mode due to the
initial configuration using a somewhat different lattice constant than what
is natural to the potential you use?

it all looks to me as if the simulation and the commands you are using are
behaving the way they should and according to the settings you choose. if
this is not what you intended, then it is not a LAMMPS problem. people talk
in this context about the GIGO principle.

and since this is a mailing list to discuss the LAMMPS software and not
"axel's little school of MD" there is not much more that i can recommend
other than finding your self a good tutor in how to do MD simulations
properly. since MD is not exactly an exotic method, there are people with
such experience everywhere. also such tutoring works best in a
person-to-person setting and a mailing list is an extremely poor stand in
for that.

axel.