File tree Expand file tree Collapse file tree 1 file changed +19
-4
lines changed Expand file tree Collapse file tree 1 file changed +19
-4
lines changed Original file line number Diff line number Diff line change @@ -143,7 +143,16 @@ void MD_func::RandomVel(
143143 }
144144 }
145145
146- double factor = 0.5 *(3 *numIon-frozen_freedom)*temperature/GetAtomKE (numIon, vel, allmass);
146+ double factor;
147+ if (3 *numIon == frozen_freedom)
148+ {
149+ factor = 0 ;
150+ }
151+ else
152+ {
153+ factor = 0.5 *(3 *numIon-frozen_freedom)*temperature/GetAtomKE (numIon, vel, allmass);
154+ }
155+
147156 for (int i=0 ; i<numIon; i++)
148157 {
149158 vel[i] = vel[i]*sqrt (factor);
@@ -391,9 +400,15 @@ double MD_func::current_temp(double &kinetic,
391400 const double *allmass,
392401 const ModuleBase::Vector3<double > *vel)
393402{
394- kinetic = GetAtomKE (natom, vel, allmass);
395-
396- return 2 * kinetic / (3 * natom - frozen_freedom);
403+ if (3 * natom == frozen_freedom)
404+ {
405+ return 0 ;
406+ }
407+ else
408+ {
409+ kinetic = GetAtomKE (natom, vel, allmass);
410+ return 2 * kinetic / (3 * natom - frozen_freedom);
411+ }
397412}
398413
399414void MD_func::temp_vector (const int &natom,
You can’t perform that action at this time.
0 commit comments