a problem happened after unloading the tensile load

Dear all,

I have a problem in my simulation that I do not know its reason. I should study the behavior of my system during heating after unloading the applied tensile load in low temperature. I have periodic boundary condition in three dimensions and the tensile load is applied in the Z direction. I use “ fix deform “ in order to apply tensile deformation up to a specific strain value. In addition, I do unloading by making that fix deform “ unfix ” after reaching the desirable strain value.
The problem is that after unloading and during the subsequent heating, the deformed system returns to its original shape in an unusual way. For example when the tensile strain is that much that necking happens in the system, the two parts of the system ( the left and the right sides of the neck ) begin to come toward each other!! It is the strange problem that I cannot resolve.
The input script is below. Please tell me where I have made a mistake and if I have used an improper command in lammps for the purpose I have explained above.

#cutoff=4.2
units metal
boundary p p p
lattice bcc 3.015
variable lx equal 30
variable ly equal 30
variable lz equal 90
variable lz2 equal {lz}-10 variable lx2 equal {lx}-10
variable ly2 equal {ly}-10 region box block 0 {lx} 0 {ly} 0 {lz} units box
region box2 block 1 28 1 28 1 88 units box
region g block 10 {lx2} 10 {ly2} 10 ${lz2} units box
create_box 2 box
create_atoms 1 region box basis 2 2
group box2 region box2
group g region g
#Potential
pair_style eam/fs
pair_coeff * * NiTi.FS Ni Ti
timestep 0.001
thermo_style custom step temp pe press lx ly lz
thermo 100

initial velocities

velocity all create 400.0 5812775 units box
fix 1 all npt temp 400 400 0.01 aniso 0.0 0.0 10 drag 0.2
dump a box2 atom 1000 dump.indent
dump t box2 atom 5000 dump-box2-total.indent
dump k all atom 5000 dump-all-total.indent
compute RDF g rdf 400
fix b all ave/time 1000 1 1000 c_RDF file tmp.rdf mode vector
run 0
uncompute RDF
unfix b
compute RDFF g rdf 400
fix d all ave/time 1000 1 1000 c_RDFF file tmp2.rdf mode vector
variable s equal step
variable t equal temp
variable v equal vol
variable p equal pe
variable l equal lz

fix def2 all print 10 “{s} {v} {p} {t} ${l}” file melt.dat screen no

equilibration

run 50000
unfix 1
fix def3 all print 10 “{s} {v} {p} {t} ${l}” file melt2c.dat screen no
undump a

dump 2 box2 atom 4000 dump2c.indent
uncompute RDFF
unfix d
compute RDFFF g rdf 400
fix c all ave/time 1000 1 1000 c_RDFFF file tmp3c.rdf mode vector

cooling cycle

variable a loop 391
label loop1
variable T equal 400-($a-1)*1
fix 2 all npt temp $T $T 0.01 aniso 0.0 0.0 10 drag 0.2
run 1000
unfix 2
next a
jump in.tensile loop1

fix 3 all npt temp 10 10 0.01 aniso 0.0 0.0 10 drag 0.2
run 40000
unfix 3
undump 2
dump 3 box2 atom 1000 dump-l.indent
dump 4 all atom 1000 dump-l-all.indent
uncompute RDFFF
unfix c
compute RDFFFF g rdf 400
fix e all ave/time 1000 1 1000 c_RDFFFF file tmp-l.rdf mode vector

unfix def3
fix def4 all print 10 “{s} {v} {p} {t} ${l}” file melt-l.dat screen no

Store final cell length for strain calculations

variable tmp equal “lz”
variable L0 equal {tmp} print "Initial Length, L0: {L0}"
#tensile loading till necking happens in the system
fix 1 all nvt temp 10 10 1.0
variable srate equal 1.0e9
variable srate1 equal “v_srate / 1.0e12”
fix 2 all deform 1 z erate ${srate1} units box

Output strain and stress info to file

variable strain equal “(lz - v_L0)/v_L0”
variable stress equal “-pzz/10000”
fix fprint1 all print 100 “{strain} {stress}” file S_S.data screen no
fix fprint2 all print 100 “{strain} {stress}” file S_S-total.data screen no

run 170000
unfix 1
#unloading
unfix 2

unfix fprint1
undump 3
undump 4
dump 5 box2 atom 1000 dump3h.indent
dump 66 all atom 1000 dump3h-all.indent
uncompute RDFFFF
unfix e
compute RDFFFFF g rdf 400
fix e all ave/time 1000 1 1000 c_RDFFFFF file tmp4h.rdf mode vector

unfix def4
fix def5 all print 10 “{s} {v} {p} {t} ${l}” file melt3h.dat screen no

heating cycle

variable a loop 391
label loop2
variable T equal 10+($a-1)*1
fix 2 all npt temp $T $T 0.01 aniso 0.0 0.0 10 drag 0.2
run 2000
unfix 2
next a
jump in.tensile loop2

fix 3 all npt temp 400 400 0.01 aniso 0.0 0.0 10 drag 0.2
run 100000

Any help is appreciated,
Nazanin

Dear all,

I have a problem in my simulation that I do not know its reason. I should
study the behavior of my system during heating after unloading the applied
tensile load in low temperature. I have periodic boundary condition in three
dimensions and the tensile load is applied in the Z direction. I use “ fix
deform “ in order to apply tensile deformation up to a specific strain
value. In addition, I do unloading by making that fix deform “ unfix ”
after reaching the desirable strain value.
The problem is that after unloading and during the subsequent heating, the
deformed system returns to its original shape in an unusual way. For example
when the tensile strain is that much that necking happens in the system, the
two parts of the system ( the left and the right sides of the neck ) begin
to come toward each other!! It is the strange problem that I cannot resolve.
The input script is below. Please tell me where I have made a mistake and if
I have used an improper command in lammps for the purpose I have explained
above.

that input is far too complex and has far too much cruft in it.
i doubt that somebody will have the time to look at it in detail.

usually you can assume that lammps is doing what you ask
it to do. question is: are you asking something reasonable?
this is not easy to answer from just looking at a (complex)
input file. i suggest you do some tests that validate each
part of your calculation by comparing the steps to similar
calculations in the published literature or whatever else you
can find as reference.

axel.

Dear Axel,

Thanks for your reply and sorry for my too long input.

Yes, I think what I expect is reasonable since I have seen it in published literatures. In references, after unloading and heating the deformed system, no change in the strain and shape of the deformed system is observed until a specific temperature. At that temperature, the system recovers a part of the strain value. But in my simulation, the deformed system gradually recovers the whole strain and returns to its original-undeformed shape after unloading and during the subsequent heating. The whole simulation conditions of mine and other references are exactly the same.

To make my input command shorter, here are the loading, unloading and heating stages:

#loading (tensile loading up to a specific plastic strain which causes necking)
fix 1 all nvt temp 10 10 1.0
variable srate equal 1.0e9
variable srate1 equal “v_srate / 1.0e12”
fix 2 all deform 1 z erate ${srate1} units box

run 170000
unfix 1
#unloading
unfix 2

heating cycle

variable a loop 391
label loop2
variable T equal 10+($a-1)*1
fix 2 all npt temp $T $T 0.01 aniso 0.0 0.0 10 drag 0.2
run 2000
unfix 2
next a
jump in.tensile loop2

It would be kind of you if you help me,
Nazanin

Dear Axel,
Thanks for your reply and sorry for my too long input.
Yes, I think what I expect is reasonable since I have seen it in published
literatures. In references, after unloading and heating the deformed system,
no change in the strain and shape of the deformed system is observed until a
specific temperature. At that temperature, the system recovers a part of the
strain value. But in my simulation, the deformed system gradually recovers
the whole strain and returns to its original-undeformed shape after
unloading and during the subsequent heating. The whole simulation conditions
of mine and other references are exactly the same.
To make my input command shorter, here are the loading, unloading and
heating stages:

that is pointless and even worse than what you originally posted.
the only input that is usually worth looking into is a *complete*
input, i.e. something that can be run immediately and contains
only the absolute *minimal* set of commands to reproduce the
problematic behavior.

even then, there is currently no indication that this is a problem in
lammps, but it is more likely that what you think is a reproduction
of the publication is in fact not. this is something that is best
resolved in the way that i already suggested, i.e. build your input
in small steps and validate each of them independently.

to give an example. think of the people here as car mechanics.
they can try to fix the car if it is broken, they can improve it, they
can change the color, make run on different kind of terrain.
but they can't usually fix if you don't drive correctly. sometimes
it is possible to see something, more often it isn't.

axel.

Dear Axel,
Thanks for your reply and sorry for my too long input.
Yes, I think what I expect is reasonable since I have seen it in published
literatures. In references, after unloading and heating the deformed system,
no change in the strain and shape of the deformed system is observed until a
specific temperature. At that temperature, the system recovers a part of the
strain value. But in my simulation, the deformed system gradually recovers
the whole strain and returns to its original-undeformed shape after
unloading and during the subsequent heating. The whole simulation conditions
of mine and other references are exactly the same.

would you mind pointing us to the exact reference
of the publication that you intend to reproduce?

thanks,
    axel.

Of cource!
this is the simulation Ni-Ti like what I have tried to do:
http://arxiv.org/pdf/1202.1078.pdf

these are similar to my simulation but for other systems:
http://www.sciencedirect.com/science/article/pii/S1359645406001297

http://www.intechopen.com/books/shape-memory-alloys/molecular-dynamics-simulation-of-shape-memory-behavior

as you said: (that is pointless and even worse than what you originally posted.
the only input that is usually worth looking into is a complete
input, i.e. something that can be run immediately and contains
only the absolute minimal set of commands to reproduce the
problematic behavior)
is it possible for you to have a look at my simulation if I send a complete but short input to you?

Thanks a lot,
Nazanin

Of cource!
this is the simulation Ni-Ti like what I have tried to do:
http://arxiv.org/pdf/1202.1078.pdf

but that paper is about a simulation of a nanoparticle
consisting of 90,000 atoms, while you are simulating
a bulk system with 6,000 atoms.

how can you claim those are "exactly the same"?

axel.

Yes, but I suppose the number of atoms is not an important issue in unloading process. besides I have also checked the simulation for a system with non-periodic boundary conditions. and the problem was existed in that simulation too.
the material (Ni-Ti) is important since it can show shape memory effect in all conditions. The strange thing that I asked about is that by unloading the tensile load it rapidly reduces the strain and recovers the original shape!!

Yes, but I suppose the number of atoms is not an important issue in
unloading process. besides I have also checked the simulation for a system
with non-periodic boundary conditions. and the problem was existed in that
simulation too.

sorry, but you said that you are trying to reproduce
this paper *exactly*. now suddenly you are disregarding
finite size effects periodic boundaries. also, in the paper
that you try to reproduce, there is no mentioning of necking.

in my book, that means, that your simulation is something
else and thus all bets are off. whether that is proper or not,
i don't care, i don't have time to discuss with somebody that
tells me one thing, but does something else and then calls
it the same thing.

have a nice day,
     axel.

actually i was trying to reproduce the shape memory effect of Ni-Ti like the paper i sent. I saw something unusual, So i decided to check it for necking to see if the strain is recovered even if necking happens. Then by recovering this strain I concluded that something is wrong in my simulation that was not possible to be resolved by me. I investigated the simulation step by step and I thought that the only problem with my simulation could be the way that I unload the tensile loading. So I posted an email to the mailing list with this point of view that what I am doing is possible since someone else has done the same thing before and I am searching for my mistake.
Any way, sorry for the inconvenience!

I would not use NPT, or even NVT if you can avoid it,
for such a system, as the former will adjust the volume
some more. I suggest you strain the system, turn
off the strain, then leave that dimension alone. After
strain is applied, then released, it is normal for
the system to relax back towards the unstrained state.
The degree to which that happens is a function of
many things (damage, constraints on motion, etc).

Steve

Steve,
thanks for your answer. I will try what you have said.

Best,
Nazanin