Hi, all
I am running non-equilibrium molecular dynamics (NEMD) simulations for CO2 flowing in the carbon nanotubes, with CO2 being treated as rigid three site linear molecule. The carbon nanotubes are treated as rigid as well. An eternal force is applied on each CO2 molecule to drive the fluid flow, and there hence exists a non-zero streaming velocity for the fluid. The lammps version I am using is 15 August 2015.
Although I am using the commands below to adjust the temperature of CO2, I know this is an unjustified method to follow, as the streaming velocity must be deducted before we thermostat the fluid.
fix 2 CO2 rigid/nvt molecule temp 300.0 300.0 100.0
fix 200 CO2 addforce 0.0 0.0 9.31E-04 every 1 # (for the external driving force)
However, it is given explicitly in the manual that the 2 NVT rigid fixes do not use any external compute to compute instantaneous temperature. This actually emphasis the fact that we cannot use compute temp/com and fix_modify to deduct the streaming velocity when we thermostat the fluid. So, are there any other possible ways to thermostat the fluid properly?
Nevertheless, I tried to change the command fix rigid/nvt list above to the following commands:
fix 2 CO2 rigid/nve molecule
fix 3 CO2 temp/berendsen 300.0 300. 100.0
fix 200 CO2 addforce 0.0 0.0 9.31E-04 every 1 # (for the external driving force)
compute CO2_tempcom CO2 temp/com
fix_modify 3 temp CO2_tempcom
I found, when I adjust the temperature of CO2 in this, the temperature increases with simulation time. More specifically the temperature goes up to thousands Kelvins when the simulation runs for 100 ns. However, the streaming velocity in this case stays steadily around 40 m/s (i.e. 4.0 E-4 fs/A). So, I speculate that the combination of fix rigid/nve and berendsen thermostat do not work well in NEMD simulations, although they may work for equilibrium simulations.
One may suspect it is the fix_modify command that drives the temperature away. The truth is, even if I remove the fix_modify command, the temperature of the system faces the similar problem.
Considering the way I conducted the NEMD simulations, which I believe should have been widely used in many NEMD simulations, it therefore will benefit a wide range of MD simulations if someone can come up with a better solution regarding this. Certainly, if I haven’t made any conceptual mistakes in my simulations, developing the fix rigid source code to cove this type of simulations is the best solution.
I appreciate all the people who spend any effort on this issue, and I look forward for any suggestions.
Best Regards
Lang