New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Restructuring of Snapshots #429
Conversation
# Conflicts: # examples/ipython/alanine.ipynb
using |
Seems that ToyDynamics is faster now. |
Any idea what makes the difference? I was concerned that the flexibility of the new snapshot style would slow things down, not speed them up. |
This is because I cleaned and improved the code so that creation and reversal is simpler and thus faster. |
I will check this out little more. |
Back on track. All tests pass... I think we are almost ready to merge... |
The only unresolved issue I see is the renaming of |
Yes, I would put this into the engine restructuring. Once this is really separate we can easily change the name of the containers. |
Let me run a few more tests. But I think we should be good to go. |
Should I still be expecting more tests? Otherwise, I'm ready to merge this (on the assumption that the renaming still to do happens in #434, or at least very soon.) |
Good to go. Please merge if you want to. |
Oops! Meant to merge this as soon as I got back from the IND (where I did not get my residence permit this time... have to go back in a week or two). Anyway -- Merging! |
This will
do be done:
most stuff as discussed with @dwhswenson.
To me merged after #412 .
This makes the use of features much easier. And the actual implementation of Snapshot now looks like
The decorator takes care of everything. It will construct the constructor with correct signature. Precompile a
.copy()
and.create_reversed()
functions, and take care of docstrings, etc...The xyz feature just add a property, nothing else.
A pair of forward and backward
Snapshot
will now only be stored once. Never twice. Storage takes care of getting the reversed and each feature much now, if it reverses or not. This will make storage requirements smaller. Same is true for CVs which will now consume half as much space if time-reversible.The special saving should do the following step in one: 1. Save the snapshot 2. Do not cache it and 3. Take care of potential references in the reversed.
This also implements storing the topology with each Snapshot as a feature that can be later removed easily when switching to storing the engine.
I decided to refactor the code for loading and saving CVs while working on better caching since this is kind of the same problem.
Last things related to this: