Temperature-induce phase transformation of NiTi

Dear all,

Do anyone have experience in simulating temperature-induce phase transformation? I was trying to reproduce a work on simulating the temperature-induced phase transformation of NiTi by Zhong, Yuan, et al. (2011), “Atomistic study of nanotwins in NiTi shape memory alloys.” Journal of Applied Physics 110(3): 033532.

As the author did in that paper, I set the starting phase of NiTi as B19’ monoclinic phase at 100K, which is stable at low temp. Then I heated up the system to 450K in 200,000 steps with timestep 0.5fs in NPT ensemble. I did obtained the B2 cubic phase of NiTi at 450K (stable at high temp), which was the same with the result of Zhong’s paper.

However, when I cooled down the system from 450K to 100K in 200,000 steps with timestep 0.5fs, the resulting phase was not B19’ monoclinic anymore, but became triclinic. And I also compared the total energy of the B19’ monoclinic and triclinic phases, both two have almost the same energy -5813.1411 eV. This result is very strange because a triclinic phase of NiTi is not observed experimentally or predicted theoretically.

I guess there maybe something set improperly when I cooled down the system, but not sure. The key part of lammps code is as follows. Hope someone give me some advice. Thank you in advance.

Best regards,

WL

---------------Equilibriation----------

reset_timestep 0
dump 1 all custom 100 dump.min id type x y z
fix 3 all box/relax tri 0.0
min_style cg
minimize 1e-12 1e-12 10000 10000
undump 1

fix 1 all npt temp 100.0 100.0 0.05 tri 0.0 0.0 0.5 drag 1
fix 2 all ave/atom 1 20 2000 x y z

dump 1 all custom 2000 dump.equil id type f_2[1] f_2[2] f_2[3]

run 200000

unfix 1
unfix 2
unfix 3
undump 1

-----------------ThermalLoading-----------------------

reset_timestep 0

fix 2 all ave/atom 1 20 1000 x y z
dump 2 all custom 1000 dump.def1 id type f_2[1] f_2[2] f_2[3]

variable x1 equal “100+350*step/200000”
variable y1 equal “abs(xy)+abs(xz)+abs(yz)”
fix 1 all npt temp 100.0 450.0 0.05 tri 0.0 0.0 0.5 drag 1
fix def_print1 all print 1000 “{x1} {y1}” file NiTi.def1 screen no
run 200000

unfix 1
unfix 2
undump 2
unfix def_print1

reset_timestep 0
fix 2 all ave/atom 1 20 1000 x y z
dump 2 all custom 1000 dump.def2 id type f_2[1] f_2[2] f_2[3]

variable x2 equal “450-350*step/200000”
variable y2 equal “abs(xy)+abs(xz)+abs(yz)”
fix 1 all npt temp 450.0 100.0 0.05 tri 0.0 0.0 0.5 drag 1
fix def_print2 all print 1000 “{x2} {y2}” file NiTi.def2 screen no
run 200000

unfix 1
unfix 2
undump 2

unfix def_print2

reset_timestep 0
fix 2 all ave/atom 1 20 1000 x y z
dump 2 all custom 1000 dump.def3 id type f_2[1] f_2[2] f_2[3]
variable x3 equal “100+350*step/200000”
variable y3 equal “abs(xy)+abs(xz)+abs(yz)”
fix 1 all npt temp 100.0 450.0 0.05 tri 0.0 0.0 0.5 drag 1
fix def_print3 all print 1000 “{x3} {y3}” file NiTi.def3 screen no
run 200000

Dear all,

Do anyone have experience in simulating temperature-induce phase
transformation? I was trying to reproduce a work on simulating the
temperature-induced phase transformation of NiTi by Zhong, Yuan, et al.
(2011), "Atomistic study of nanotwins in NiTi shape memory alloys." Journal
of Applied Physics 110(3): 033532.

As the author did in that paper, I set the starting phase of NiTi as B19'
monoclinic phase at 100K, which is stable at low temp. Then I heated up the
system to 450K in 200,000 steps with timestep 0.5fs in NPT ensemble. I did
obtained the B2 cubic phase of NiTi at 450K (stable at high temp), which
was the same with the result of Zhong's paper.

However, when I cooled down the system from 450K to 100K in 200,000 steps
with timestep 0.5fs, the resulting phase was not B19' monoclinic anymore,
but became triclinic. And I also compared the total energy of the B19'
monoclinic and triclinic phases, both two have almost the same energy
-5813.1411 eV. This result is very strange because a triclinic phase of
NiTi is not observed experimentally or predicted theoretically.

I guess there maybe something set improperly when I cooled down the
system, but not sure. The key part of lammps code is as follows. Hope
someone give me some advice. Thank you in advance.

​i think the problem is more in your thinking and your expectations. it is
always easier to go from order to disorder. see the second law of
thermodynamics. :wink:
so it is quite possible that you minimize your system into a metastable
state and then you get stuck there. furthermore, you have to consider
finite size effects. inducing crystallization in an MD simulation is not
easy. finally, you may just see a "feature" of the potential/model you are
using. for all classical/empirical models, there are always simplifications
and assumptions in the parameterization that may result in more or less
significant deviations from the experimental behavior.

axel.​