wepy
wepy copied to clipboard
Mechanism to calculate ensemble based progress
The BoundaryCondition
mechanism is pretty good at covering per-walker progress but sometimes you want to track the progress of the entire ensemble.
The BCDashboardSection
already automatically summarizes the min, max, and mean of the per-walker progress values, but it might be that you want to calculate something more complex such as a free energy distribution transformation and some statistics.
This mechanism could also be used to implement a built in mechanism for stopping simulations based on some criterion. For instance if you just want to get one walker to RMSD < 0.2 or something arbitrary like that. This would introduce a new way of running simulations that is not just based on time or number of cycles.
To summarize the sub-features:
- Add new step in the simulation manager for an
EnsembleProgress
component with an API of having some methods like:-
calc_ensemble_progress(walkers) -> stop_sim, {'progressA' : value_a, 'progressB' : value_b}
-
- hook up the
stop_sim
signal to the simulation manager to allow it to shut down a simulation upon this flag being raised. - new dashboard sections for reporting this component by default
- method in the HDF5 reporter for supporting this progress. Can reuse the record fields and
progress
section likely, this is just a little different as not being walker based and will have a more consistent shape and structure usually.