Closed mlund closed 8 years ago
Hi Mikael,
Thank you for your interest, molecular dynamics is definitely one of the areas targeted by Aboria so I'm keen to get it involved in codes like yours.
In general, most of the points you bring up are already covered by Aboria, or would be simple to add. Aboria has two APIs, one based around an STL-compatible container class Particles
, and the other being a symbolic API based on expression templates. It sounds like the first API would suit your needs well.
Particles
has the standard insert
, erase
, push_back
and pop_back
functions required of an stl container https://martinjrobins.github.io/Aboria/Aboria/Particles.htmlget
and set
functions to get/set particle variables, and I use the Boost Proto library for the expression templates in the symbolic API. I use it in a few other areas, but these are minor and could be removed. However, all the boost libraries that I use are header-only, so these could be packaged with your code along with things like Eigen that you already have.Hope this helps.
cheers, Martin
Hi Mikael,
How did you end up with this. Did you end up using Aboria for your code? If you have any more questions please let me know, and if not I'll close this issue.
cheers, Martin
Hi Martin, Thanks for your explanations back in 2016 -- I just noted it was the first issue posted :-) I still haven't switched to Aboria, but it certainly looks attractive and well developed. The number one reason is the extensive refactoring required to my code, and secondly I'd ideally like to avoid Boost but, as you said, the required headers could be bundled in. Now that most compilers have decent support for c++17, could this be used to replace boost? We currently use range-v3 which for example has a zip function. In Faunus, extended particle properties are dynamically allocated at run-time, but the (segregated) memory handling is pretty naive and I'll keep investigating a switch to Aboria. Best, Mikael
Hi Mikael. Yes, I think a meta-programming library like Brigand or Metal could replace the dependency on boost. Its something I'd like to do, once I have the time!
Hi Martin, I just stumbled over your neat c++ library which is quite close to that I’d like to develop for monte carlo simulations of molecules. Currently I’m using
std::vector<particle>
for our codes, see i.e. https://github.com/mlund/faunus.Ideally I’d like the following:
Should you have any input or ideas on how to modify your code in that direction, I’d very much appreciate it. Best, Mikael