fix rigid/nve/small and rigid/small are different problems?

A.fix 1 RIGID rigid/small molecule langevin 300.0 300.0 1.0 2222
B.fix 1 RIGID rigid//nve/small molecule langevin 300.0 300.0 1.0 2222
compute rigid_ke RIGID ke/rigid 1
compute rigid_rot RIGID erotate/rigid 1
variable total_ke equal “c_rigid_ke+c_rigid_rot” #translational Ke
+rotational Ke
variable dof equal 6250 # each dimer has 6 dof
variable boltz equal 1.987e-3 # Boltzmann constant in units real:
1.987e-3 kcal/mol/K
variable rigid_temp equal "2.0
v_total_ke/v_dof/v_boltz"
thermo_style
custom step c_thermo dt f_1 v_rigid_temp c_rigid_ke c_rigid_rot

The results of f_1 v_rigid_temp c_rigid_ke c_rigid_rot by the method A.(fix 1 RIGID rigid/small) are :
300 ,300.*** .240., 213.*

,but by the other method B(fix 1 RIGID rigid/nve/small) are
300, 0 , 0, 0
The problems are why the results of rigid temp,translation,and rotational Ke by method B(fix rigid/nve/small) are always zeros? Is the method B(rigid/nve/small)able to calculate correct rigid temp, Ke (and rotational Ke ) ?

Thanks your great help
B.R.

Mark Li

Dear Axel and Trung,

In my case,I followed your suggestions to calculate rigid temperatures,
translation Ke,rotational Ke by fix rigid/nve/small and fix rigid/small as
follow,

A.fix 1 RIGID rigid/small molecule langevin 300.0 300.0 1.0 2222
B.fix 1 RIGID rigid//nve/small molecule langevin 300.0 300.0 1.0 2222
compute rigid_ke RIGID ke/rigid 1
compute rigid_rot RIGID erotate/rigid 1
variable total_ke equal "c_rigid_ke+c_rigid_rot" #translational
Ke
+rotational Ke
variable dof equal 6*250 # each dimer has
6 dof
variable boltz equal 1.987e-3 # Boltzmann constant in units
real:
1.987e-3 kcal/mol/K
variable rigid_temp equal "2.0*v_total_ke/v_dof/v_boltz"
thermo_style
custom step c_thermo dt f_1 v_rigid_temp c_rigid_ke c_rigid_rot

The results of f_1 v_rigid_temp c_rigid_ke c_rigid_rot by the method A.(fix
1 RIGID rigid/small) are :
300 ,300.*** .240.**, 213.***
,but by the other method B(fix 1 RIGID rigid/nve/small) are
300, 0 , 0, 0
The problems are why the results of rigid temp,translation,and rotational Ke
by method B(fix rigid/nve/small) are always zeros?

this is due to a bug in the two computes, which are not correctly
identifying fix rigid/nve/small as a style derived from fix
rigid/small.

you can download the updated sources for compute_erotate_rigid.cpp and
compute_ke_rigid.cpp from the LAMMPS-ICMS repository here:
http://git.lammps.org/git/?p=lammps-icms.git;a=tree;f=src/RIGID;hb=HEAD

and then recompile your LAMMPS executable with them, or you'll have to
wait until the bugfix propagates into the official source or
precompiled binaries.

axel.