Currently refresh_vel can be equal to or a divisor of print_energy_every, print_conf_interval, or other print_every-like arguments. I think this should raise an error, since in this case whatever gets printed will be the result not of the proper state of the system, but of the system with particle speed refreshed from a Maxwellian.
refresh_vel value is interpreted as true or false (1/0). It is used to decide whether the velocities are refreshed before the simulation starts. How often they are refreshed during the simulation depends on the thermostat: with Langevin, there is no refreshing from Maxwellian distribution, just noise perturbation with every step. With "john" thermostat, every particle has a certain probability to be refreshed after certain number of steps (set by newtonian_steps). It is "newtonian_steps" which should be ideally a prime number, and I beleive we typically set it to 103. I agre there could be at least a warning added to the code if it is a divisor of print_energy or prin_configuration. Is that what you were suggesting?
Hi Petr!
Yes exactly, I meant that. I confused a a few parameters since I've not used the MD backend for a while
I understand the issue, but I cannot think of a general "fix". We may put a control in the OutputObservable class that checks whether its associated print_every is equal or a multiple of newtonian_steps. Any ideas?
I think this is too dependent on the thermostat used, and in addition the refresh thermostat is basically never used. I don't think we need a fix for this.