[lammps-users] Flow Problem!

While using ‘fix nvt’, how to make sure that the temperature of the system is constant? Log file produced
shows that the temperature is changing all the time.
The script is something like this

initial velocities

compute mobile flow temp
velocity flow create 300.0 48098 temp mobile
fix 1 all nvt 300.0 300.0 10.0
fix 3 boundary setforce 0.0 0.0 0.0
fix 7 flow addforce 1.0 0.0 0.0


timestep 0.0003
thermo 100
thermo_modify temp mobile

dump 1 all atom 500 dump.forcenotnull1
dump 2 flow custom 500 velocity.flow vx vy vz
run 70000

But in the output the temperature fluctuates from 190 to 300. Can anyone tell why is this happening?


Fix nvt (Nose/Hoover) does not keep the velocity exactly
constant. There will be fluctuations. Since you are
continually putting energy into the system (fix addforce),
and fix nvt is trying to take it out, that will amplify the
normal oscillations, especially if your system is small.


Previously I was dealing with a system having 4000 atoms, since you said in small systems fluctuations in temperature can be large. Then I went on and run a simulation with 32000 atoms, still the there are huge fluctuations in the temperature. How to make sure that the temperature does not deviate much from the desired value in a NVT ensemble?. Kindly suggest a way to tackle this problem, because I want to apply the force so that the fluid can flow through the channel.

Is there a way to maintain a constant pressure difference between the two ends of a rectangular channel without using ‘addforce’ command?


Again, if you are driving the flow very hard (big addforce), then a Nose/Hoover
thermostat may have trouble sucking out the energy on the appropriate
time scale. There are several other thermostats in LAMMPS: temp/rescale,
langevin, etc. You could try one of those. Playing with the Nose/Hoover drag
parameter may also help quell oscillations.