Setting molecules as rigid bodies #1779
-
Hello All, I have been running some simulations on a molecular system. I was wondering if there is an easy way to set all molecules as rigid bodies, where the central particles and moments are inherently calculated. I understand it can be done by explicitly following the procedure to build constituents from central particles. However, in my case, I have a particular system configuration I already have, which I want to turn rigid. Any help or tips on this are greatly appreciated. Thank you! Amru |
Beta Was this translation helpful? Give feedback.
Replies: 2 comments
-
This has been asked for many times over the years. I always encourage those interested to contribute a general code to the community that does this. For example, one could write a script that
A general tool would:
Determining the unique bodies poses the most complex challenge. Due to numerical precision, what you consider to be the "same" molecule at different orientations in the box will appear to be many different molecules with slightly different local environments. This may be solvable with tolerances, but that requires much testing and debugging. There is also the problem of ordering. Are two molecules the same if the constituents are listed in a different order? You could work around these issues by requiring more explicit tag information in the input file - but then you are right back to the same level of information needed to define rigid bodies in the first place. The only code I am aware of that attempts any of this is a specific workflow written with mbuild. It constructs all molecules with the same particle ordering and the same fixed orientation to avoid the challenges I mentioned. |
Beta Was this translation helpful? Give feedback.
-
Thanks a lot for your detailed reply! If I go down the path of developing a detailed case of considering every molecule separately, I'll be happy to post it here! |
Beta Was this translation helpful? Give feedback.
This has been asked for many times over the years. I always encourage those interested to contribute a general code to the community that does this. For example, one could write a script that
A general tool would: