Temperature diverges during NVT from set temperature and then falls to near zero

Hello all,

I am using LAMMPS version dated 2 Aug 2023 to equilibrate a domain of monocrystalline CsSnI3 to a certain temperature. The interatomic potential was obtained from https://doi.org/10.1021/acs.jpcc.2c05775 and it comprises of Lennard-Jones and Coulombic terms (parameters listed in attached figure). First, I utilized ‘box/relax’ along with ‘minimize’ to obtain a structurally relaxed domain (5000 atoms). Next, I utilized the following script to equilibrate the crystal at 5 K in the nvt ensemble.

Initialization

read_restart restart.perov.105

Potential Parameters

pair_style hybrid/overlay coul/long 10 lj/cut 10
pair_coeff * * coul/long
kspace_style pppm 1e-5
pair_coeff 1 1 lj/cut 0.001482 3.046
pair_coeff 2 2 lj/cut 0.019196 4.258
pair_coeff 3 3 lj/cut 0.462729 3.233
pair_modify pair lj/cut mix arithmetic shift yes

Simulation Specifics

timestep 0.2e-3 # in PICOSECONDS
neigh_modify every 1 delay 0 check yes
restart 4000 restart.perov
velocity all create 5 26745 mom yes rot yes dist gaussian
fix 1 all nvt temp 5 5 0.02
thermo 200
thermo_style custom step lz press temp
dump data all custom 200 dump.data id type mass x y z vx vy vz
run 20000

While conducting the nvt run, I noted that the temperature does not stay around 5 K and continuously increases upto a certain point and then drops at once to near zero (see attached figure). Any help in understanding this issue would be helpful.

I had also conducted a ‘fix-deform’ run to compare the total energy obtained based on this potential under volumetric compression to DFT results (also attached) which yielded good agreement. Thus, I am reasonably confident that the simulation parameters have been input correctly. However, the diverging temperature is puzzling.

Hi @amithac,

To help people read your post, do not hesitate to have a look at the guidelines for posting. You’ll also find useful advices to help you track what’s wrong with your system.

For example:

  • are there any error in your log file? Can you please post it?
  • did you have a look at your simulation using any visualization software?
  • which units are you using? If you use the metal units, then a timestep of 2\cdot{}10^{-4} ps is very low for classical MD. Any reason for that?
  • why does you curve stops at 1ps? 20000\times{}2\cdot{}10^{-4} ps should be 4ps. Again, did your simulation crash?
  • why use the hybrid/overlay pair style? You can use the lj/cut/coul/long.
  • In which conditions did you perform a fix deform simulation? This is not informative without more context.

Edit: corrected some typos in the maths.

1 Like

Hello @Germain, thank you for your time! Based on your suggestions, I utilized a timestep of 1e-3 ps instead of 2e-4 ps (it was a mistake) and utilized lj/cut/coul/long instead of the hybrid/overlay (I didn’t realize the former existed). Based on just these changes, I was able to equilibrate the domain in nvt at 5 K (see attached figure). The modified input script is as follows:

Initialization

read_restart restart.perov.105

Potential Parameters 2

pair_style lj/cut/coul/long 10
kspace_style pppm 1e-5
pair_coeff 1 1 0.001482 3.046
pair_coeff 2 2 0.019196 4.258
pair_coeff 3 3 0.462729 3.233
pair_modify mix arithmetic shift yes

Simulation Specifics

timestep 1e-3 # in PICOSECONDS
neigh_modify every 1 delay 0 check yes
restart 4000 restart.perov
velocity all create 5 26745 mom yes rot yes dist gaussian
fix 1 all nvt temp 5 5 0.1
thermo 200
thermo_style custom step lz press temp
dump data all custom 200 dump.data id type mass x y z vx vy vz
run 20000

Answers to some of your remaining questions are as follows:

  1. are there any error in your log file? Can you please post it?
    Yes, I have uploaded the log file for the run that used to give me the temperature divergence. Apart from the temperature divergence, the simulation solved to completion.
    log.perov.txt (8.6 KB)

  2. did you have a look at your simulation using any visualization software?
    Yes, but it did not help me decipher much.

  3. In which conditions did you perform a fix deform simulation? This is not informative without more context.
    I had conducted the fix-deform simulation to compare the total energy obtained using this potential under volumetric compression to DFT results. The script for this simulation is as follows:

Again, thank you for your support!

Initialization

read_restart restart.perov.105

Potential Parameters

pair_style hybrid/overlay coul/long 10 lj/cut 10
pair_coeff * * coul/long
kspace_style pppm 1e-5
pair_coeff 1 1 lj/cut 0.001482 3.046
pair_coeff 2 2 lj/cut 0.019196 4.258
pair_coeff 3 3 lj/cut 0.462729 3.233
pair_modify pair lj/cut mix arithmetic shift yes

Simulation Specifics

neigh_modify every 1 delay 0 check yes
restart 50000 restart.perov
fix 1 all deform 1 x scale 0.875 y scale 0.875 z scale 0.875
thermo 200
dump 1 all xyz 1 dump.xyz
run 100000

1 Like

Glad to see this solved some of your issues.

As for why your settings were wrong I think that the use of hybrid/overlay was the most problematic part.

For the record, the manual explicitely states that:

Also for hybrid/overlay and hybrid/scaled mixing is only performed for pairs of atom types for which only a single pair style is assigned.

So your forcefield setup was bogus. It is recommended to provide all parameters explicitely with hybrid/overlay for a reason. In your case, hybrid/overlay was unnecessary.

1 Like

I agree