Nanotube deforming at the fixed ends

Hii All,

I am simulating a concentric nanotube with length 5 nm. I want to fix the ends of the nanotube. I am doing it by using the command “fix 11 LeftEnd setforce 0.0 0.0 0.0”. However I see that the ends are deforming. When I free the ends by using “fix 11 LeftEnd setforce NULL NULL NULL”, the tube simulation is running alright but moving in the box which I do not want. The simulation box is large enough ((-150 -150 -100.626) to (150 150 100.465)) and there are periodic boundary conditions.

LAMMPS version - March 18, 2018

Thank you so much for your help. I am posting the input files and log files below.

Input File

dimension 3
units metal
atom_style full

read_data data.BNT_single

group inner type 1 2
group outer type 3 4

pair_style hybrid tersoff tersoff lj/cut 8.0
pair_coeff * * tersoff 1 BNC.tersoff B N NULL NULL
pair_coeff * * tersoff 2 BNC.tersoff NULL NULL B N

pair_coeff 1 3 lj/cut 0.004116 3.453
pair_coeff 1 4 lj/cut 0.00508 3.409
pair_coeff 2 3 lj/cut 0.00508 3.409
pair_coeff 2 4 lj/cut 0.006281 3.365

region Left block -10.0 10.00000 -10.00000 10.500000 -5.0000 1.50000
region Right block -10.0 10.00000 -10.500000 10.500000 47.0000 50.0000

group LeftEnd region Left
group RightEnd region Right

group mobile subtract all LeftEnd RightEnd
group Ends union LeftEnd RightEnd

dump 1 all custom 100 SingleBNT.lammpstrj id type x y z
dump 4 LeftEnd custom 100 LeftEnd.lammpstrj id type x y z
dump 5 RightEnd custom 100 RightEnd.lammpstrj id type x y z
thermo 100

fix 11 LeftEnd setforce 0.0 0.0 0.0
fix 22 RightEnd setforce 0.0 0.0 0.0

thermo_style custom step temp epair etotal press vol
minimize 1.0e-7 1.0e-9 100 10000

velocity all create 300.0 4928459

fix 1 all npt temp 300.0 300.0 0.1 iso 0.0 0.0 1
thermo 50
timestep 0.001
run 100000
unfix 1

Log file

LAMMPS (16 Mar 2018)

dimension 3
units metal
atom_style full

read_data data.BNT_single
orthogonal box = (-150 -150 -100.626) to (150 150 100.465)
1 by 1 by 1 MPI processor grid
reading atoms …
1200 atoms
0 = max # of 1-2 neighbors
0 = max # of 1-3 neighbors
0 = max # of 1-4 neighbors
1 = max # of special neighbors

group inner type 1 2
400 atoms in group inner
group outer type 3 4
800 atoms in group outer

pair_style hybrid tersoff tersoff lj/cut 8.0
pair_coeff * * tersoff 1 BNC.tersoff B N NULL NULL
Reading potential file BNC.tersoff with DATE: 2013-03-21
pair_coeff * * tersoff 2 BNC.tersoff NULL NULL B N
Reading potential file BNC.tersoff with DATE: 2013-03-21

pair_coeff 1 3 lj/cut 0.004116 3.453
pair_coeff 1 4 lj/cut 0.00508 3.409
pair_coeff 2 3 lj/cut 0.00508 3.409
pair_coeff 2 4 lj/cut 0.006281 3.365

region Left block -10.0 10.00000 -10.00000 10.500000 -5.0000 1.50000
region Right block -10.0 10.00000 -10.500000 10.500000 47.0000 50.0000

group LeftEnd region Left
60 atoms in group LeftEnd
group RightEnd region Right
60 atoms in group RightEnd

group mobile subtract all LeftEnd RightEnd
1080 atoms in group mobile
group Ends union LeftEnd RightEnd
120 atoms in group Ends

dump 1 all custom 100 SingleBNT.lammpstrj id type x y z

dump 4 LeftEnd custom 100 LeftEnd.lammpstrj id type x y z
dump 5 RightEnd custom 100 RightEnd.lammpstrj id type x y z
thermo 100

fix 11 LeftEnd setforce 0.0 0.0 0.0
fix 22 RightEnd setforce 0.0 0.0 0.0

thermo_style custom step temp epair etotal press vol
minimize 1.0e-7 1.0e-9 100 10000
WARNING: Using ‘neigh_modify every 1 delay 0 check yes’ setting during minimization (…/min.cpp:168)
Neighbor list info …
update every 1 steps, delay 0 steps, check yes
max neighbors/atom: 2000, page size: 100000
master list distance cutoff = 10
ghost atom cutoff = 10
binsize = 5, bins = 60 60 41
5 neighbor lists, perpetual/occasional/extra = 5 0 0
(1) pair tersoff, perpetual, skip from (4)
attributes: full, newton on
pair build: skip
stencil: none
bin: none
(2) pair tersoff, perpetual, skip from (4)
attributes: full, newton on
pair build: skip
stencil: none
bin: none
(3) pair lj/cut, perpetual, skip from (5)
attributes: half, newton on
pair build: skip
stencil: none
bin: none
(4) neighbor class addition, perpetual
attributes: full, newton on
pair build: full/bin
stencil: full/bin/3d
bin: standard
(5) neighbor class addition, perpetual, half/full from (4)
attributes: half, newton on
pair build: halffull/newton
stencil: none
bin: none
Per MPI rank memory allocation (min/avg/max) = 13.38 | 13.38 | 13.38 Mbytes
Step Temp E_pair TotEng Press Volume
0 0 -8869.6573 -8869.6573 -11.145965 18098190
13 0 -8870.0498 -8870.0498 -5.8404039 18098190
Loop time of 0.0900772 on 1 procs for 13 steps with 1200 atoms

97.7% CPU use with 1 MPI tasks x no OpenMP threads

Minimization stats:
Stopping criterion = energy tolerance
Energy initial, next-to-last, final =
-8869.65731289 -8870.04921547 -8870.04983927
Force two-norm initial, final = 5.71404 0.123522
Force max component initial, final = 0.283052 0.0098328
Final line search alpha, max atom move = 1 0.0098328
Iterations, force evaluations = 13 26

MPI task timing breakdown:
Section | min time | avg time | max time |%varavg| %total

Hello Debu, can you clarify what do you mean by “the ends are deforming”? Are any of the atoms that you keep fixed using setforce moving? Or do the bonds and angles with the nearby atoms (which are allowed to move) look distorted?

Thanks,

Giacomo

Hello,

The atoms I keep fix remains fixed. But the the bonds and angles with the nearby atoms (which are allowed to move) look distorted. Can you please help or figure out what the error is?

Thank you so much.

It looks like this

Screenshot from 2018-03-25 14:34:29.png

Hello Giacomo,

I replied from my group member’s computer. But I hope the replies answers your questions. CAn you please help?

Best,
Debu

This looks like the initial geometry was incorrect in some way (most likely, it was too streched in one or more dimensions).

Try minimizing without the fix on the end atoms, and compare the coordinates after minimization with your initial ones.

Gicomo

Hello,

I did that. The tube is placed along the z-axis.

THe coordinates of 2 points at the LEFT end of the tube is :

Point 1

Initial - (6.87, -0.72, 48.83)
Final (after minimization without the fix) - (7.29, -0.84, 48.62)

Point 2

Initial- (2.9, 6.45, 48.71)
Final (after minimization without the fix) - (3.05, 6.67, 48.62)

THe coordinates of 2 points at the RIGHT end of the tube is :

Point 1

Initial - (6.76, 1.43, 0)
Final (after minimization without the fix)- (7.19, 1.45, 0.2148)

Point 2

Initial- (5.59, -4.06, 0)
Final (after minimization without the fix) - (5.9689, -4.24, 0.211)

OK. Aside from that I’d look into whether NPT is the appropriate ensemble for this system. Try dumping the MD trajectory and visualize it alongside the PBC unit cell.

Giacomo

Hello,

I visualized the trajectories. I observed that the atoms are rotating a lot. I stopped that using suitable parameters in the velocity command.

Then I saw that while NPT was used, the tube was moving along the axial direction. When it was not used, the tube stay put in its place and all the atoms were vibrating. It seemed to be working. I also checked a few relevant publications which deals with the system. They all seemed not to use NPT.

Thank you so much.

Best

Hello,

I visualized the trajectories. I observed that the atoms are rotating a lot.
I stopped that using suitable parameters in the velocity command.

Then I saw that while NPT was used, the tube was moving along the axial
direction. When it was not used, the tube stay put in its place and all the
atoms were vibrating. It seemed to be working. I also checked a few relevant
publications which deals with the system. They all seemed not to use NPT.

well, what kind of system is it that you want to simulate?
1) an isolated pair of nanotubes, one stuck inside the other
2) a densely packed stack of such nanotubes?

in the first case, you would use "m" or "s" boundaries and then you
must not use NPT, only in the second case it would be allowed, because
you would need "p" boundaries and shrink the box until the outer
nanotube interacts with its periodic neighbors/copies.

axel.

For now, I just have an isolated pair of nanotubes aligned along the z-axis. Then I want to find the unaxial tension (stress vs strain) along z. To load it along z, I want to use fix deform. Can I do it without NPT?

For now, I just have an isolated pair of nanotubes aligned along the z-axis.

when you are using fix npt you *DO NOT HAVE THAT*! since fix npt
requires periodic boundaries and it will usually shrink the box volume
until the periodic images do interact.

Then I want to find the unaxial tension (stress vs strain) along z. To load
it along z, I want to use fix deform. Can I do it without NPT?

in fact, you must not use fix deform and fix npt on the same dimension
at the same time.
also, you cannot use fix deform, unless you set up a periodic system
in z, where the two nanotubes perfectly continue across the periodic
boundaries.

for a non-periodic nanotube, you have to immobilize the outer atoms at
each end and then use displace_atoms or fix move on those while doing
minimization or MD on the rest to load your nanotube.

it looks to me like you need to some more time thinking about what it
actually is that you are asking LAMMPS to compute. perhaps a
discussion with your adviser might be helpful at this point.

axel.

Sorry, I wrote that wrong. My apologies. I meant that I am applying uniaxial tension using fix deform and for that I need periodic conditions along Z. If I have “m” or “s”, I cannot use that. That is why I used " p p p".

Should I use “m m p” ? I am not using fix NPT.

Thank you so much.

Sorry, I wrote that wrong. My apologies. I meant that I am applying uniaxial
tension using fix deform and for that I need periodic conditions along Z. If

you need more than just periodic boundaries, you also need a *correct*
and *seamless* periodic continuation of your nanotubes. or else fix
deform will be useless.

I have "m" or "s", I cannot use that. That is why I used " p p p".

Should I use "m m p" ? I am not using fix NPT.

as mentioned before, you should not discuss this with me (or anybody
here). this is not about LAMMPS anymore, but about what is the right
choice for your research. that is a discussion you need to have with
your adviser.

i have now explained at great length to you the various implications
of your choices. that is more help than what you can expect from a
mailing list that is dedicated to a software package and not to how to
do computational research properly.

axel.