You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
When user chooses to run a simulation before optimization, optimization will not start until the change in simulated energy spectrum is below a user-defined threshold. The change is calculated at regular intervals.
This check should not be done when the simulation is still in pre-simulation. As data from pre-simulation is discarded, simulated spectrum will simply not change at all before actual simulation kicks in. This causes the optimization to start before it should.
This bug affects elements that have already been simulated (i.e. number of observed atoms > 0). It does not affect elements with no previous simulation data, as in this case the check returns infinity instead of zero.
Previous versions of Potku (pre-Jan 2020 at least) implemented this check correctly.
How to reproduce
Run a simulation for some element to gather initial data.
Set the number of pre-simulation ions to a reasonably large value to ensure that pre-simulation runs for a long enough time.
Choose the simulated element in the Optimization menu.
Untick "Skip simulation" checkbox.
Set "Min. run time" (= time of the first check) and "Seconds between checks" to small values. The first two spectrum checks need to happen during pre-simulation to trigger this bug.
Example settings shown below:
How to fix
The observable stream returned by ElementSimulation.run consists of dictionaries that contain the pre-simulation status. This status should be used as a condition for running the spectra check. For this to be possible, merging of spectrum check and the observable needs to be reworked.
This bug is also mentioned in a FIXME in the source code:
Additionally, user should be better informed about the progress made during optimization. A constant barrage of get_espe output is not very informative. The output should be suppressed and replaced with results from spectrum check etc.
The text was updated successfully, but these errors were encountered:
When user chooses to run a simulation before optimization, optimization will not start until the change in simulated energy spectrum is below a user-defined threshold. The change is calculated at regular intervals.
This check should not be done when the simulation is still in pre-simulation. As data from pre-simulation is discarded, simulated spectrum will simply not change at all before actual simulation kicks in. This causes the optimization to start before it should.
This bug affects elements that have already been simulated (i.e. number of observed atoms > 0). It does not affect elements with no previous simulation data, as in this case the check returns infinity instead of zero.
Previous versions of Potku (pre-Jan 2020 at least) implemented this check correctly.
How to reproduce
Example settings shown below:
How to fix
The observable stream returned by
ElementSimulation.run
consists of dictionaries that contain the pre-simulation status. This status should be used as a condition for running the spectra check. For this to be possible, merging of spectrum check and the observable needs to be reworked.This bug is also mentioned in a FIXME in the source code:
potku/modules/nsgaii.py
Lines 230 to 253 in 5b8ebd2
Additionally, user should be better informed about the progress made during optimization. A constant barrage of
get_espe
output is not very informative. The output should be suppressed and replaced with results from spectrum check etc.The text was updated successfully, but these errors were encountered: