problem with straining aluminum wire, box size changes but region size does not

Hello All,

I have just started with LAMMPS and I am trying to modify lammps example nr 3 “Uniaxial Tension”. I want to strain an aluminum cylinder which is fixed at one end of the box and open(no external force) from another. To do this, I have my simulation box and 2 regions: one is the main cylinder, and one is a very low cylinder next to the simulation box boundary which I wont move during straining, to achieve that my cylinder as a whole is fixed to the boundary from one end.

region silinder cylinder z 0 0 (2*v_scale) (-19v_scale) (14*v_scale) units lattice region bottom cylinder z 0 0 (2v_scale) (-20*v_scale) (-19*v_scale) units lattice

I deform as in the example:

variable srate equal 1.0e10
variable srate1 equal “v_srate / 1.0e12”
fix 2 all deform 1 z erate ${srate1} units lattice remap x

the command states to remap coordinates into changing simulation box, but for some reason, only the simulation box size changes and the size of my cylinder does not. How can I change that? Second question would be, what would be the best way to fix my cylinder from one end?

Any help would be really appreciated.

P.S I added my input file as an attachment.

Kristian

silinder.txt (2.52 KB)

Hello All,
I have just started with LAMMPS and I am trying to modify lammps example nr
3 "Uniaxial Tension". I want to strain an aluminum cylinder which is fixed
at one end of the box and open(no external force) from another. To do this,
I have my simulation box and 2 regions: one is the main cylinder, and one is
a very low cylinder next to the simulation box boundary which I wont move
during straining, to achieve that my cylinder as a whole is fixed to the
boundary from one end.

region silinder cylinder z 0 0 \(2\*v\_scale\) (-19*v_scale)
\(14\*v\_scale\) units lattice region bottom cylinder z 0 0 (2*v_scale) \(\-20\*v\_scale\) (-19*v_scale) units lattice

I deform as in the example:

variable srate equal 1.0e10
variable srate1 equal "v_srate / 1.0e12"
fix 2 all deform 1 z erate ${srate1} units lattice remap x

the command states to remap coordinates into changing simulation box, but
for some reason, only the simulation box size changes and the size of my
cylinder does not. How can I change that? Second question would be, what

you run fix deform *and* fix npt. both change the box. this cannot
work correctly.

axel.

Axel wrote:
you run fix deform and fix npt. both change the box. this cannot
work correctly.

Oscar says :

WAIT ! . Forgive my ignorance, but I use NVT or NVE instead …Since Volume is keep constant , then using fix deform is correct because the box is only change once ? I am Right ?

A salute
Oscar G.

Sorry, but why I cannot use npt and deform both? It seems perfectly reasonable to keep the number of particles, external pressure and temperature constant while I deform the cylinder. Or am I missing something?

thank you still for your replies.

Axel wrote:
you run fix deform *and* fix npt. both change the box. this cannot
work correctly.

Oscar says :
WAIT ! . Forgive my ignorance, but I use NVT or NVE instead ...Since
Volume is keep constant , then using fix deform is correct because the box

you have cause and action the wrong way around: fix nvt or nve do
*not* keep the volume, what the "V" means is that they do not *modify*
the volume (same as fix nve does not modify the kinetic energy).

is only change once ? I am Right ?

yes.

axel.

Sorry, but why I cannot use npt and deform both? It seems perfectly

because you have a fix that introduces tension and thus causes stress
(fix deform) and a fix that releases tension and thus reduces stress
(fix npt) at the same time. how *can* that make sense. that is like
telling your system to go left and to go right at the same time.

reasonable to keep the number of particles, external pressure and
temperature constant while I deform the cylinder. Or am I missing something?

yes. there seems to be a misconception of what fix npt does what it
means. the time integrating fixes do *not* "keep things constant",
they only modify the system differently. fix nve does only time
integration and does not modify the system in any other way. without
any other changes (and for a bulk system), this will result in a
system in an NVE ensemble, since there is nothing that adds or removes
atoms, nothing that changes the volume and nothing that adds or
removes energy. fix nvt and fix npt have to be seen from the same
perspective. fix npt adjust the pressure of your system by changing
the volume and adjusts the kinetic energy by manipulating the
acceleration and also does both of these by coupling these properties
to nose-hoover chains.

as should be obvious from this explanation, using fix deform and fix
npt at the same time is not at all a reasonable choice.

axel.

Hello All,
I have just started with LAMMPS and I am trying to modify lammps example nr
3 "Uniaxial Tension". I want to strain an aluminum cylinder which is fixed
at one end of the box and open(no external force) from another. To do this,
I have my simulation box and 2 regions: one is the main cylinder, and one is
a very low cylinder next to the simulation box boundary which I wont move
during straining, to achieve that my cylinder as a whole is fixed to the
boundary from one end.

region silinder cylinder z 0 0 \(2\*v\_scale\) (-19*v_scale)
\(14\*v\_scale\) units lattice region bottom cylinder z 0 0 (2*v_scale) \(\-20\*v\_scale\) (-19*v_scale) units lattice

I deform as in the example:

variable srate equal 1.0e10
variable srate1 equal "v_srate / 1.0e12"
fix 2 all deform 1 z erate ${srate1} units lattice remap x

the command states to remap coordinates into changing simulation box, but
for some reason, only the simulation box size changes and the size of my
cylinder does not. How can I change that? Second question would be, what
would be the best way to fix my cylinder from one end?

apart from the confusion about fix npt and fix deform, the process
that you actually describe is best implemented in a different fashion.

a) no periodic boundaries. m boundaries will probably be the most
convenient choice.
b) the size of the region does not matter one you pegged the atoms for
your groups.
c) for equilibration keep both ends of your system immobile (i.e. do
not run fix nvt or fix nve+fix langevin on them)
d) for building tension: use fix nve on the middle group, do not use
any fix on the immobile group, use fix move on the part that is
supposed to initiate the strain.
e) using fix deform with the remap option would be a good choice to
model a uniform strain on a bulk system, since you are looking at an
explicit nanoscale object the combination of an immobile group and fix
move is the more realistic approach. also, there is no real connection
to a thermal reservoir, so there is not much reason to use a
thermostat.

hope that will help you to construct an input that is closer to the
description of what you intend to model.

ciao,
     axel.

as should be obvious from this explanation, using fix deform and fix
npt at the same time is not at all a reasonable choice.

Axel is correct if you want them both to modify the same dimension,
e.g. x. However, you can use fix npt on the x dim (only) and fix deform
on the y (or z) dimension.

Steve