How to constrain a group of atoms during nvt simulation while setting the temperature to 300K?

Hello all,

I am trying to simulate the interaction of water molecules with a surface. I would like to keep the atoms of the surface fixed during the nvt simulation, for this reason I have defined a group “crystal” and a group “h2o”, and then set the following fix:

fix mynvt h2o nvt temp 300 300 $(100*dt)

However, the temperature of the system that is printed in the log file is not 300K, but rather about 50K. Do you have any suggestions on how I may set the temperature at 300K for the whole system while keeping the atoms of the “crystal” group fixed ?

Thank you in advance,


Immobile atoms have a temperature of 0K.

The temperature (and energies etc.) printed in the thermo output is by default for the group “all”. If you want to know the temperature for the atom of the group “h2o” you need to define a custom compute and output that information.

If you want the immobile atoms have a temperature and thus be mobile, you can use fix spring/self with a suitable force constants. That allows atoms to move, but will pull them back to their initial positions.

Thank you very much for your reply.

I had a second issue. How may I properly minimize the system while keeping the crystal atoms immobile and minimizing the coordinates of the water molecules ?


Please note that we generally prefer that new questions are not posted as a followup but instead posted as new topic with a suitable subject line, so that people that have the same question and are searching the archives have a better chance to find such question and answers.

That said, minimization moves atoms according to their forces, thus using fix setforce 0.0 0.0 0.0 should immobilize the atoms in the fix group during minimization.