Core/shell model with Langevin thermostat

Dear lammps users,

I am using the latest tarball version of LAMMPS (11Aug17).

I would like to use the coreshell model with the Langevin thermostat. In
my system, I have both core/shell particles and simple ions. I am using
the pair_style buck/coul/long/cs and the temperature is 330K. My timestep
is 0.25 fs. I have 1440 ions and 2 * 1920 core shell particles.
I should also point out that I initialize my core/shell particles at the
same point in space and use a minimization step to avoid starting the
simulation with too much energy in the coreshells.

I followed the How-to section for the Adiabatic core/shell model to set up
my input file. I am monitoring my simulation by printing the total "COM
temperature" and the internal temperature of my core/shell particles (each
defined as a molecule) in this way:

compute temp_cs all temp/cs cores shells
compute cs_chunk coreshells chunk/atom molecule
compute cs_temp coreshells temp/chunk cs_chunk temp internal com yes cdof 3.0
thermo_style custom step c_temp_cs c_cs_temp

If I use a Nose-Hoover thermostat (temperature_nose_hoover.png), I see a
first jump of the internal temperature to around 2K and the a slow drift
over time (around 0.01K/ps). However, if I use a Langevin thermostat
applied to all the particles (temperature_all.png) using:

fix thermostat all langevin \{temperature\} {temperature} 100.0 327
fix_modify thermostat temp temp_cs
fix integrator all nve

The internal temperature grows linearly much faster and eventually the
simulation blows up (atoms missing). This happens also for the example
given in lammps/example/coreshell if I modify the input to have a Langevin
thermostat.

If I apply the thermostat only on the ions and not the core shell
particles (temperature_framework.png), the internal temperature rises
linearly in the beginning and then plateaus at 110K with large
oscillations but no large drift. If I reset the internal velocities of the
coreshells to 0 (v = vcm) and I restart the simulation the temperature
will follow the same curve and reach a plateau at the same temperature.
The same simulations at 200K give a plateau value of 67K for the
coreshell, i.e. a third of the desired temperature.
By printing different temperatures, it seems that:
- the COM temperature of the core/shells rapidly equilibrates to 330K -
the internal temperature rises until it reaches a plateau at 110K, i.e.
330K / 110K
- the total temperature of the core/shells follows the same behavior and
reaches 330K where the total temperature is given by "compute temp_cs_tot
coreshells temp"

For the first simulations, with the thermostat applied to all the
particles, I think this is due to the fact that the Langevin thermostat
adds a different random force Fr on the core and the shell and thus
perturbs the internal core shell degree of freedom. What would be the
right way of changing this within LAMMPS?
However I don't understand what happens when I thermostat only the ions
(framework). Could it be that I am not thermostatting the desired
temperature?

I attach some graphs of the different temperatures.

Thank you very much,
Laura Scalfi

temperature_nose_hoover.png

temperature_framework.png

temperature_all.png