Skip to content

Sampling overhaul#95

Open
pdobbelaere wants to merge 27 commits intomolmod:mainfrom
pdobbelaere:sampling
Open

Sampling overhaul#95
pdobbelaere wants to merge 27 commits intomolmod:mainfrom
pdobbelaere:sampling

Conversation

@pdobbelaere
Copy link
Collaborator

@pdobbelaere pdobbelaere commented Feb 23, 2026

Refactors some chunks of the sampling module. Most of these adaptations only touch internals and do not impact users. This is the first PR of a series of updates to various modules. At this point, the learning module is no longer functional.

A small overview of changes:

  • remove sampling.client in favour of using i-Pi's PES external drivers with the same functionality. This would make a potential switch to FFDirect easier
  • the optimize function in sampling.ase now accepts a script parameter for custom functionality (e.g., applying molecular constraints). Custom scripts must adhere to the IO pattern that Parsl expects
  • significant refactor of the SimulationOutput class. Added a save_data function that allows storing MD properties as .npz files
  • small changes to the Walker class
  • improved tracking and logging of MD output status
  • update to the latest i-Pi and make it a required dependency

also fixed #86

- improve error handling
- improve logging
- allow custom optimisation scripts
- streamline sampling
- make server a single process instead of MD + cleanup separation
- overhaul output module (fewer apps / future bounces)

- serialization is becoming a serious hackjob
- walker reset functionality temporarily removed
- this will break downstream modules (learning, metrics, tests, etc.)
+ test for different ensembles
does not work if Walker is initialised with a Future
i-Pi server should now properly terminate when the simulation explodes. In some cases anyway...
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

dataset.save does not return a datafuture

1 participant