Thermostat Issues

Hello LAMMPS users,

I am having some trouble understanding how my thermostat is working. I am using a Nose-Hoover thermostat and my simulations include a polymer melt with rigid bodies (fillers). My target temperature is 1.0, and the “temp” command in the thermo output is showing that the thermostat is working well; the (overall) temperature is fluctuating closely around 1.0. However, I also used the “compute temp” command individually on the polymer and the filler; the polymer temperature has stabilized at 0.94, and the filler temperature stabilizes around 0.0002. I am confused by this result, since the global temperature is greater than the temperature of both of my constituent groups. Here are some of the relevant commands in my input script:

group polymer type 1 2 3 7 8
group filler molecule 5002:5016

fix 2 filler rigid/nvt molecule temp {T} {T} 2.0
fix 3 polymer nvt temp {T} {T} 2.0

The beads in the filler particles have a large mass (1000 or more times greater than the polymer beads), and I am wondering if the thermostat is having a hard time with such a high mass differential. I tried 3 different filler bead masses (10^4, 10^6, 10^8, with polymer bead mass always 1.0), and 3 different timesteps to rule out numerical error. I have also included the degree-of-freedom initialization for the fillers, as suggested by the LAMMPS pages:

velocity all create {T} {vseed} mom yes rot yes dist gaussian

run 0 # temperature may not be 1.0
velocity all scale ${T} # now it should be

However, I am still not seeing the proper temperature for the “compute temp” of the individual groups, and the different timesteps are producing the same results. The LAMMPS pages say that “compute temp” takes into account the fewer degrees of freedom due to rigid bodies, so I am not sure what is going on. I am using the October 31, 2015 version of LAMMPS. Thank you for any feedback.

The fix nvt doc page tells you name
of the (hidden) compute it creates to calc temperature
of the group it is operating on and performing the
thermostatting with. The fix rigid/nvt command also
describes output it provides. I suggest you monitor that
info and output it in your thermo output. To see if
they are consistent with what you think are the temps
of the 2 groups. I also suggest you dump the velocities
for a couple snapshots, and at least for the non-rigid
bodies, calc a temp yourself to make sure it is consistent.

Trung (CCd) may be able to comment on why the rigid body
temperature appears so low. I believe rigid/nvt is thermostatting
both the translational and rotational DOF internally. Compute
temp with those rigid molecules may only be considering
translational DOF (after subtracting out the rigid constraints).