Fixing position of atoms while controling temperature

Dear Lammps users,

Hello. I am trying to simulate the merging process of two group of atoms at high temperature. My intention is, to create spheres packed with atoms at elevated temperature and then mixed in adiabatic condition. Thus, it summary,

  • create two spheres packed with different element atoms
  • elevate temperature while atom position fixed
  • let atoms mixed in adiabatic condition(NVE)

I am using NVE+langevin commands to elevate temperature to 2192K, and velocity+setforce commands to fix atom position. I can sure fix position, however, cannot increase temperature of the system. I can see the temperature has not gone up when atoms are being mixed, since temperature of the system is only showing ~100K values.

Is there another way to control temperature of the system while atom position is fixed? I am attaching my code and any comments are very welcome!
Thank you in advance.

Jacob Lee

----------------------

units metal
dimension 3
atom_style atomic
boundary s s s

---------- Create Atoms ---------------------

lattice fcc 3.524
region leftNi sphere 0.0 0.0 0.0 17.1 units box

lattice hcp 2.9508
region rightTi sphere 40.0 0.0 0.0 20.18 units box

region sum union 2 leftNi rightTi
region whole block -300.0 300.0 -300.0 300.0 -300.0 300.0 units box

create_box 2 whole

#Ni fcc structure

lattice custom 3.524 a1 1.0 0.0 0.0 a2 0.0 1.0 0.0 a3 0.0 0.0 1.0 &
basis 0.0 0.0 0.0 basis 0.5 0.5 0.0 basis 0.0 0.5 0.5

basis 0.5 0.0 0.5

create_atoms 1 region leftNi

#Ti hcp structure

lattice custom 2.9508 a1 1.0 0.0 0.0 a2 0.0 1.732051 0.0 a3 0.0 0.0 1.587874 &
basis 0.0 0.0 0.0 basis 0.5 0.5 0.0 basis 0.5 0.833333

0.5 basis 0.0 0.333333 0.5

create_atoms 2 region rightTi

group leftNi region leftNi
group rightTi region rightTi
group whole region whole

group sum region sum
group rest subtract all sum

---------- Define Interatomic Potential ---------------------

pair_style eam/fs
pair_coeff * * NiTi_Yuan.setfl_rc4_2.fs Ni Ti

neighbor 1 bin
neigh_modify every 1 delay 0 check yes

Dear Lammps users,

Hello. I am trying to simulate the merging process of two group of atoms at
high temperature. My intention is, to create spheres packed with atoms at
elevated temperature and then mixed in adiabatic condition. Thus, it
summary,

- create two spheres packed with different element atoms
- elevate temperature while atom position fixed
- let atoms mixed in adiabatic condition(NVE)

I am using NVE+langevin commands to elevate temperature to 2192K, and
velocity+setforce commands to fix atom position. I can sure fix position,

this doesn't make sense. you cannot remove forces and kinetic energy
and at the same time expect the kinetic energy to increase.

however, cannot increase temperature of the system. I can see the
temperature has not gone up when atoms are being mixed, since temperature of
the system is only showing ~100K values.

Is there another way to control temperature of the system while atom
position is fixed? I am attaching my code and any comments are very welcome!

please have a look at fix spring/self to (approximately) immobilize atoms.

Thank you for your comment, Axel.

I realize that I was trying to do an impossible work. Instead, I am now trying to create nanoparticles at high temperature in sphere shapes. I used velocity command to set initial temperature seeds(2192K), then mixed the two particles using fix/ NVE command.
However, I noticed that temperature drops rapidly(to ~1100K) for the first ~50ps then recover to its proper value(2192K). Since the entire process is energy releasing (exothermic), temperature goes up to certain value above the initial temperature.
Do I need to apply some simulation time periods to stabilize temperature at the initial state?

I appreciate any comments. Thank you in advance.

I used following simple code.

---------------------

units metal
dimension 3
atom_style atomic
boundary s s s

---------- Create Atoms ---------------------

lattice fcc 3.524
region leftNi sphere 0.0 0.0 0.0 17.1 units box

lattice hcp 2.9508
region rightTi sphere 40.0 0.0 0.0 20.18 units box

region sum union 2 leftNi rightTi
region whole block -300.0 300.0 -300.0 300.0 -300.0 300.0 units box
#region half block 0 52.86 26.43 52.86 0 40 units box

create_box 2 whole

#Ni fcc structure

lattice custom 3.524 a1 1.0 0.0 0.0 a2 0.0 1.0 0.0 a3 0.0 0.0 1.0 &
basis 0.0 0.0 0.0 basis 0.5 0.5 0.0 basis 0.0 0.5 0.5

basis 0.5 0.0 0.5

create_atoms 1 region leftNi

#Ti hcp structure

lattice custom 2.9508 a1 1.0 0.0 0.0 a2 0.0 1.732051 0.0 a3 0.0 0.0 1.587874 &
basis 0.0 0.0 0.0 basis 0.5 0.5 0.0 basis 0.5 0.833333

0.5 basis 0.0 0.333333 0.5

create_atoms 2 region rightTi

group leftNi region leftNi
group rightTi region rightTi
group whole region whole

group sum region sum
group rest subtract all sum

---------- Define Interatomic Potential ---------------------

pair_style eam/fs
pair_coeff * * NiTi_Yuan.setfl_rc4_2.fs Ni Ti

equilibrate

#minimize {etol} {ftol} {maxiter} {maxeval}

neighbor 1 bin
neigh_modify every 1 delay 0 check yes

Thank you for your comment, Axel.

I realize that I was trying to do an impossible work. Instead, I am now
trying to create nanoparticles at high temperature in sphere shapes. I used
velocity command to set initial temperature seeds(2192K), then mixed the two
particles using fix/ NVE command.

However, I noticed that temperature drops rapidly(to ~1100K) for the first
~50ps then recover to its proper value(2192K). Since the entire process is

the first part is entirely understandable. you assign a specific
kinetic energy to your system that is equivalent to the temperature
you specify, but the system is not in equilibrium with it. in fact, if
you provide the optimal lattice constant, it would be consistent with
a temperature of 0K. the system will equilibrate and that means that
your temperature will go down as your potential energy goes up. if
that is a mystery to you, then please consult your favorite text book
on MD and re-read the chapter(s) discussing equilibration.

energy releasing (exothermic), temperature goes up to certain value above
the initial temperature.

Do I need to apply some simulation time periods to stabilize temperature at
the initial state?

i think i already answered that. in any case, this has nothing to do
with LAMMPS by itself. if you have questions related to the scientific
side of your work, you better consult with your adviser and/or
colleagues.

axel.

Dear Lammps users,

Hello. I am trying to calculate compressive stress and strain of materials that I am interested of. My question is why the stress value calculated in LAMMPS is way higher than any experimental results.

My code is very similar to the example provided by LAMMPS as stated in following webpage;

https://icme.hpc.msstate.edu/mediawiki/index.php/Uniaxial_Compression

As shown in the example webpage, the stress value reaches ~6 GPa when 10% of the compressive strain was applied to Aluminum. In compression tests, aluminum only shows stress of ~0.3GPa when ~10% of strain is being applied. There fore, there are an order of 10 difference between experiments and MD results.

I found out that LAMMPS calculates pressure as sum of many terms, temperature and virial terms. The virial term as the sum of pair, bond, angle, dihedral, improper, kspace (long-range), and fix contributions to the force on each atom.

http://lammps.sandia.gov/doc/compute_pressure.html

Do we have to consider only the last virial term (fix contributions to the force on each atom) since in experiments we don’t have to consider internal energy of atoms?

I appreciate your opinions in advance.

Experiments where materials are compressive at a constant strain rate are usually done in the time scale of microseconds i.e 10^-3 s^-1 , MD results are limited to time scales of pico to nano seconds. Although there are other routes such as “Accelerated MD” ….Also i want to point out that the amount of time steps you would need to compress the sample in microseconds would be huge…If you are willing to take such route of compressing the object at 10^-3 s^-1 .then Be ready to let your local cluster run for a while …

A Salute
Oscar G

CORRECTION for my previous POST : A millisecond (from milli- and second; symbol: ms) is a thousandth (10−3 or 1/1,000) of a second.[1]

Think also about the size-effects, the pre-existing dislocations in the experiments and the dislocation-free MD model, …

Cheers,

Daniel

Dear Lammps users,

Hello. I am trying to simulate an equilibrium of Ni-Ti mixed structure and Ti structure attached to each other. Therefore, I did make a simulation box of Ni and Ti atoms and another box of Ti atoms. However, I am keep having termination errors when running my code.
My code is basically simple. There are two regions, ‘domain’ and ‘Ti_region’. The ‘domain’ region is filled with Ni and Ti atoms while the ‘Ti_region’ region is filled only with Ti atoms. I am using npt to have the atoms temperature of 295K.
Can someone find mistakes on my code?

I appreciate your help in advance.

#my code#

units metal
dimension 3
atom_style atomic
boundary p p p

---------- Create Atoms ---------------------

#Ni

lattice custom 3.01 a1 1.0 0.0 0.0 a2 0.0 1.41421356 0.0 a3 0.0 0.0 1.41421356 &
basis 0.5 0.0 0.5 basis 0.5 0.5 0.0

region domain block 0 51.17 0.0 25.54 0.0 25.54 units box
region Ti_region block -51.17 0.0 0.0 25.54 0.0 25.54 units box
region whole union 2 domain Ti_region

create_box 2 whole

create_atoms 1 region domain

#Ti

lattice custom 3.01 a1 1.0 0.0 0.0 a2 0.0 1.41421356 0.0 a3 0.0 0.0 1.41421356 &
basis 0.0 0.0 0.0 basis 0.0 0.5 0.5

create_atoms 2 region domain

#Ti added

lattice custom 2.951 a1 1.0 0.0 0.0 a2 0.0 1.732051 0.0 a3 0.0 0.0 1.587874 &
basis 0.0 0.0 0.0 basis 0.5 0.5 0.0 basis 0.5 0.833333 0.5 basis 0.0 0.333333 0.5

create_atoms 2 region Ti_region

group domain region domain
group Ti_region region Ti_region
group whole region whole

---------- Define Interatomic Potential ---------------------

pair_style eam/fs
pair_coeff * * NiTi_Yuan.setfl_rc4_2.fs Ni Ti

Dear Lammps users,

Hello. I am trying to simulate an equilibrium of Ni-Ti mixed structure and
Ti structure attached to each other. Therefore, I did make a simulation box
of Ni and Ti atoms and another box of Ti atoms. However, I am keep having
termination errors when running my code.

what *are* the errors that you are getting? nobody can give advice
without specific information.

My code is basically simple. There are two regions, 'domain' and
'Ti_region'. The 'domain' region is filled with Ni and Ti atoms while the
'Ti_region' region is filled only with Ti atoms. I am using npt to have the
atoms temperature of 295K.
Can someone find mistakes on my code?

debugging your script is your job, not the job of the mailing list.
you have to look at the symptoms that make your simulation crash, then
look for possible explanations of that, change your script accordingly
and rinse and repeat until you understand and correct the problem
completely or ask again, but this time with specific information about
where you are running out of ideas. in general, the kind of advice
that you are looking for, should be provided by your adviser or
whoever is teaching you how to set up simulations. there is currently
no indication that your problem is very lammps specific. most of the
issues that people have, is that they set up bad initial
configurations, e.g. through overlapping particles, and then the
simulation crashes due to atoms "shooting" through the simulation box.
this is often not immediately visible, if it is caused through not
proper periodic continuation of your atoms. since you are using two
different lattices, you have to make certain, that both are properly
commensurate (or choose a more suitable supercell).

axel.

Dear Axel and users,

I apologize my question was not clear. I am actually having a crash when running my code, and getting nothing in log file. In my code, I am using ‘create_atoms’ three times, as following;

create_atoms 1 region domain
create_atoms 2 region domain
create_atoms 2 region Ti_region

I am trying to create Ni atoms(number 1) in ‘domain’ region, and Ti atoms(number 2) in both ‘domain’ and ‘Ti_region’ regions. My code runs fine if I erase one of ‘create_atoms 2’ commands. That is, the code runs well when only two ‘create_atoms’ commands are used as following;

create_atoms 1 region domain
create_atoms 2 region domain

or

create_atoms 1 region domain
create_atoms 2 region Ti_region

Therefore, I suspect I am using the command wrong, but cannot understand the reason. The lattice structures in both regions have been separately tested and were working fine.

I again appreciate your help in advance.

Dear Axel and users,

I apologize my question was not clear. I am actually having a crash when running my code, and getting nothing in log file. In my code, I am using

Run with -echo screen and you should see more.

‘create_atoms’ three times, as following;

When you look at the timescales (as Oscar mentioned) MD matches experiments surprisingly well.

see

Science. 2005 Sep 16;309(5742):1838-41

Acta Materialia, Volume 58, Issue 14, August 2010, Pages 4604-4628

Mechanics of Solids Volume 49, Issue 6, November 2014, pp 643-648

Nigel