Strange observation when changing Langevin to Nosé–Hoover

Hi,

For simulating a polymer-graphene system in aqueous solution, I’m using NVE+Langevin thermostat for equilibrium (state 1) and then NPT for equilibrium and production runs (state 2).

However, at the time the ensemble is altered from state 1 to 2, the whole system starts to move badly, esp. in y and z directions (and coming from other sides due to pbc). I have attached a short video from the simulation (about 5 ns), and this bad behavior happens after about 1 s of the video (solvent is not shown).

I appreciate if you take a look at this. I didn’t notice this behavior when I used NPT only or Berendsen instead of Langevin.

The input file is as follows:

#LAMMPS 9 Dec 2014

PVC

boundary p p p
units real
atom_style full
bond_style class2
angle_style class2
dihedral_style class2
improper_style class2
pair_style soft 12
pair_style lj/class2/coul/long 12
pair_modify tail yes table 12
newton on

read_data PVC.data

group all type 1 2 3 4 5 6 7 8 9 10 11
group Pchain type 2 3 4 5 6 7 8 9
group P_G type 1 2 3 4 5 6 7 8 9
group G type 1
group water type 10 11

kspace_style ewald 1e-4
special_bonds dreiding
neighbor 1 bin
neigh_modify delay 0 every 1 check yes page 1000000
comm_modify mode single cutoff 12 vel no

thermo 100
thermo_style custom step temp press vol density etotal ke pe enthalpy evdwl ecoul epair ebond eangle edihed eimp emol elong etail time
restart 2000 restart-min.*
minimize 1.0e-06 1.0e-06 100000 100000

velocity all create 290 123469 units box

reset_timestep 0

fix sh all shake 0.000001 1000 0 t 10 11 b 14 a 29

####state 1###

fix Eq1 all nve
fix Eq11 all langevin 290 290 100 481579

dump Eq1112 all custom 10000 dump-total.lammpstrj id mol type element mass q x y z xs ys zs

compute comP01 Pchain com
fix comP01 Pchain ave/time 5 99 500 c_comP01[1] c_comP01[2] c_comP01[3] file tmp.comP01

thermo 500

thermo_style custom step temp press vol density etotal ke pe enthalpy evdwl ecoul epair ebond eangle edihed eimp emol elong etail time
thermo_modify lost warn flush yes
timestep 0.00005
restart 100000 restart-eq1.*
run 100000

thermo 500
timestep 0.0001
restart 100000 restart-eq1.*
run 100000

thermo 500
timestep 0.0005
restart 100000 restart-eq1.*
run 100000

thermo 500
timestep 0.001
restart 100000 restart-eq1.*
run 100000

thermo 500
timestep 0.005
restart 100000 restart-eq1.*
run 100000

thermo 500
timestep 0.01
restart 100000 restart-eq1.*
run 100000

thermo 500
timestep 0.05
restart 100000 restart-eq1.*
run 100000

thermo 500
timestep 0.1
restart 100000 restart-eq1.*
run 100000

thermo 500
timestep 0.5
restart 100000 restart-eq1.*
run 200000

thermo 500
timestep 1
restart 100000 restart-eq1.*
run 2000000

unfix Eq1
unfix Eq11

####state 2###

fix Eq2 all npt temp 290 290 500 iso 1 1 5000

thermo 500
timestep 1
restart 100000 restart-eq1.*
run 5000000

unfix sh
unfix Eq2

write_data data.end
write_restart restart.end

Langevin.wmv (2.12 MB)

Langevin can introduce a random drift velocity

to the system, unless you run it with the zero yes

option. You could also use the velocity command

between the runs to zero any net momentum.

Steve