@@ -509,12 +509,21 @@ def __init__(
509509
510510 self ._parse_correlations ()
511511
512- def _set_time_step (self ):
513- """Set time in fs and current dynamics step to info."""
512+ def _set_info (self ):
513+ """Set time in fs, current dynamics step, and density to info."""
514514 time = (self .offset * self .timestep + self .dyn .get_time ()) / units .fs
515515 step = self .offset + self .dyn .nsteps
516516 self .dyn .atoms .info ["time_fs" ] = time
517517 self .dyn .atoms .info ["step" ] = step
518+ try :
519+ density = (
520+ np .sum (self .dyn .atoms .get_masses ())
521+ / self .dyn .atoms .get_volume ()
522+ * DENS_FACT
523+ )
524+ self .dyn .atoms .info ["density" ] = density
525+ except ValueError :
526+ self .dyn .atoms .info ["density" ] = 0.0
518527
519528 def _prepare_restart (self ) -> None :
520529 """Prepare restart files, structure and offset."""
@@ -726,19 +735,13 @@ def get_stats(self) -> dict[str, float]:
726735 e_kin = self .dyn .atoms .get_kinetic_energy () / self .n_atoms
727736 current_temp = e_kin / (1.5 * units .kB )
728737
729- self ._set_time_step ()
738+ self ._set_info ()
730739
731740 time_now = datetime .datetime .now ()
732741 real_time = time_now - self .dyn .atoms .info ["real_time" ]
733742 self .dyn .atoms .info ["real_time" ] = time_now
734743
735744 try :
736- density = (
737- np .sum (self .dyn .atoms .get_masses ())
738- / self .dyn .atoms .get_volume ()
739- * DENS_FACT
740- )
741- self .dyn .atoms .info ["density" ] = density
742745 volume = self .dyn .atoms .get_volume ()
743746 pressure = (
744747 - np .trace (
@@ -754,7 +757,6 @@ def get_stats(self) -> dict[str, float]:
754757 except ValueError :
755758 volume = 0.0
756759 pressure = 0.0
757- density = 0.0
758760 pressure_tensor = np .zeros (6 )
759761
760762 return {
@@ -765,7 +767,7 @@ def get_stats(self) -> dict[str, float]:
765767 "EKin/N" : e_kin ,
766768 "T" : current_temp ,
767769 "ETot/N" : e_pot + e_kin ,
768- "Density" : density ,
770+ "Density" : self . dyn . atoms . info [ " density" ] ,
769771 "Volume" : volume ,
770772 "P" : pressure ,
771773 "Pxx" : pressure_tensor [0 ],
@@ -874,7 +876,7 @@ def _write_traj(self) -> None:
874876 self .dyn .nsteps > self .traj_start + self .traj_start % self .traj_every
875877 )
876878
877- self ._set_time_step ()
879+ self ._set_info ()
878880 write_kwargs = self .write_kwargs
879881 write_kwargs ["filename" ] = self .traj_file
880882 write_kwargs ["append" ] = append
@@ -895,7 +897,7 @@ def _write_final_state(self) -> None:
895897 # Append if final file has been created
896898 append = self .created_final_file
897899
898- self ._set_time_step ()
900+ self ._set_info ()
899901 write_kwargs = self .write_kwargs
900902 write_kwargs ["filename" ] = self .final_file
901903 write_kwargs ["append" ] = append
@@ -998,7 +1000,7 @@ def _write_restart(self) -> None:
9981000 if step > 0 :
9991001 write_kwargs = self .write_kwargs
10001002 write_kwargs ["filename" ] = self ._restart_file
1001- self ._set_time_step ()
1003+ self ._set_info ()
10021004
10031005 output_structs (
10041006 images = self .struct ,
0 commit comments