- for(i=0;i<moldyn->count;i++)
- e+=0.5*atom[i].mass*v3_absolute_square(&(atom[i].v));
- scale=(1.5*moldyn->count*K_BOLTZMANN*moldyn->t)/e;
+ count=0;
+ for(i=0;i<moldyn->count;i++) {
+ if(atom[i].attr&ATOM_ATTR_HB) {
+ e+=0.5*atom[i].mass*v3_absolute_square(&(atom[i].v));
+ count+=1;
+ }
+ }
+
+ /* temporary hack for e,t = 0 */
+ if(e==0.0) {
+ if(moldyn->t!=0.0)
+ thermal_init(moldyn);
+ else
+ return 0;
+ }
+
+ /* direct scaling */
+ scale=(1.5*count*K_BOLTZMANN*moldyn->t)/e;