(683g) Runtime Code Generation for User-Configurable Metropolis Monte Carlo Energy Evaluation in HOOMD-Blue | AIChE

(683g) Runtime Code Generation for User-Configurable Metropolis Monte Carlo Energy Evaluation in HOOMD-Blue

Authors 

Anderson, J. A. - Presenter, University of Michigan
Zygmunt, W., University of Michigan
Rivera-Rivera, L. Y., University of Michigan
Glaser, J., University of Michigan
Glotzer, S. C., University of Michigan
We have developed a module for HOOMD-blue for that enables parallel Metropolis Monte Carlo (MC) simulations of hard particle cores with user-defined pairwise energetic interactions. Previously, HOOMD-blue’s Monte Carlo capabilities were limited to hard particle interactions alone. The new module uses the low level virtual machine (LLVM) and the open-source Clang compiler to compile user-provided C++ code down to efficient machine code at run time. Users can express any pairwise interaction potential that is a function of the relative particle positions, and the orientations, types, diameters, and charges of the two particles. The code is compiled at runtime, so new models can quickly be developed and tested with no need to write multiple source files, user interfaces, documentation, or recompile and install a plugin each time a change is made. The user-provided energy evaluation is evaluated in HOOMD-blue’s existing optimized parallel MC engine, enabling high performance simulation execution. We also implemented the geometric cluster algorithm of J. Liu and E. Luijten [1], and an efficient code path for evaluating the pairwise energy between two rigid bodies built of many interaction sites with user-defined energies evaluated between all pairs of interaction sites within a cutoff. These capabilities are available in HOOMD-blue open source v2.3+.

[1]: J. Liu and E. Luijten, Phys. Rev. Lett. 92, 035504 (2004).