-
Notifications
You must be signed in to change notification settings - Fork 33
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
Definitions of supported functional forms for simulation engines #52
Comments
This could be good. We briefly mentioned that we'd need to explicitly put the supported functional forms for each engine/library.
|
What I had in mind is storing various "known" functional forms somewhere, and within each writer we'd check to make sure it's supported by said engine. In principle this library would grow as we become aware of other potentials (for example, some of Ilja's dihedrals apparently have strange functional forms; we'd implement those in the appropriate writers and store them in this library). Usage would be like
|
I also am just a beginner with The bottom half of this notebook doesn't work, but you get the idea 🤷♂️ |
This is great. Its actually the way I plan on implementing xtal space group support in mBuild. I plan on having a json file that stores all the necessary info for each of the 232 space groups, a class will then just parse the json doc whenever a user wants to use one, and return a If we can come up with a list of items that are present in each sim engine, we can then just look in a file for these and setup our writer or whatever with the proper settings pretty easily. |
This is currently checked in individual writer (list of supported potential forms). |
Disclaimer: I'm not 100% caught up on all the activity and discussion here and am still not very familiar with
sympy
, so feel free to close if this suggestion doesn't make sense.It might be useful to keep some sort of library where we have files for each simulation engine that define the various supported functional forms for each interaction type. I'm thinking a file structure that's something like (with better names):
And then, e.g.,
nonbonded.txt
would list the supported nonbonded functional forms:This way, if we have a topology with our various functional forms defined for each interaction, we can have a check that interfaces with the library when attempting to save to a certain format as to whether or not the engine supports the defined functional forms. Even better, we could have a property on the
Topology
that's something likesupported_formats
that could be queried to see which writers are available based on the defined functional forms for that topology.There would likely be some snags with functional forms that are technically equivalent, but defined in slightly-different ways. This is where my lack of knowledge of
sympy
comes in, as I'm not sure how easy that would be to handle. It looks like a similar discussion is ongoing in #31 with regard to harmonic potentials with and without the 0.5 scaling.The text was updated successfully, but these errors were encountered: