Ångström-size chemically powered sphere-dimer motor

Ångström-dimer is a molecular modelling software to study the dynamics of Ångström-size chemically powered self-propelled motors (Colberg and Kapral 2014, 2015). The software uses molecular dynamics to simulate the molecular motion of a single to tens of sphere-dimer motors in an explicit Lennard-Jones solvent comprising on the order of 100,000 particles.

Ångström-dimer relies on novel computational techniques to scale from a multi-core processor to a parallel accelerator with thousands of scalar cores. The simulation algorithms are composed in the OpenCL C language using run-time code generation, which allows running simulations with optimal efficiency across a variety of devices, such as AMD GPUs, NVIDIA GPUs, and Intel CPUs.

A simulation is orchestrated using Lua scripts run with LuaJIT, an interpreter and tracing just-in-time compiler for the Lua language that provides native C data structures through its foreign function interface (FFI). Particle trajectories of nanomotors and solvent, and a versatile set of structural and dynamical observables are stored in an H5MD file, a file format for molecular data (de Buyl, Colberg, and Höfling 2014) based on the hierarchical data format (HDF5).


Andersen, Hans C. 1983. “Rattle: A ‘Velocity’ Version of the Shake Algorithm for Molecular Dynamics Calculations.” Journal of Computational Physics 52 (1): 24–34. https://doi.org/10.1016/0021-9991(83)90014-1.

Blelloch, Guy E. 1990. “Prefix Sums and Their Applications.” CMU-CS-90-190. School of Computer Science, Carnegie Mellon University. https://www.cs.cmu.edu/~scandal/papers/CMU-CS-90-190.html.

Buyl, Pierre de, Peter H. Colberg, and Felix Höfling. 2014. “H5MD: A Structured, Efficient, and Portable File Format for Molecular Data.” Computer Physics Communications 185 (6): 1546–53. https://doi.org/10.1016/j.cpc.2014.01.018.

Colberg, Peter H., and Felix Höfling. 2011. “Highly Accelerated Simulations of Glassy Dynamics Using GPUs: Caveats on Limited Floating-Point Precision.” Computer Physics Communications 182 (5): 1120–9. https://doi.org/10.1016/j.cpc.2011.01.009.

Colberg, Peter H., and Raymond Kapral. 2014. “Ångström-Scale Chemically Powered Motors.” EPL 106 (3): 30004. https://doi.org/10.1209/0295-5075/106/30004.

———. 2015. “Nanoconfined Catalytic Ångström-Size Motors.” Journal of Chemical Physics 143: 184906. https://doi.org/10.1063/1.4935173.

Cook, J. M. 1957. “Rational Formulae for the Production of a Spherically Symmetric Probability Distribution.” Mathematics of Computation 11: 81–82. https://doi.org/10.1090/S0025-5718-1957-0690630-7.

Ferguson, Niels, Stefan Lucks, Bruce Schneier, Doug Whiting, Mihir Bellare, Tadayoshi Kohno, Jon Callas, and Jesse Walker. 2010. “The Skein Hash Function Family.” http://www.skein-hash.info/sites/default/files/skein1.3.pdf.

Hamilton, Chris. 2006. “Compact Hilbert Indices.” Technical Report CS-2006-07. Dalhousie University, Faculty of Computer Science. https://www.cs.dal.ca/research/techreports/cs-2006-07.

Hamilton, Chris H., and Andrew Rau-Chaplin. 2008. “Compact Hilbert Indices: Space-Filling Curves for Domains with Unequal Side Lengths.” Information Processing Letters 105 (5): 155–63. https://doi.org/10.1016/j.ipl.2007.08.034.

Hilbert, David. 1891. “Ueber die stetige Abbildung einer Linie auf ein Flächenstück.” Mathematische Annalen 38 (3): 459–60. https://doi.org/10.1007/BF01199431.

Marsaglia, G., and T. Bray. 1964. “A Convenient Method for Generating Normal Variables.” SIAM Review 6 (3): 260–64. https://doi.org/10.1137/1006063.

Marsaglia, George. 1972. “Choosing a Point from the Surface of a Sphere.” Annals of Mathematical Statistics 43 (2): 645–46. https://doi.org/10.1214/aoms/1177692644.

Neumann, John von. 1951. “Various Techniques Used in Connection with Random Digits.” Journal of Research of the National Bureau of Standards, Applied Mathematics Series 12: 36–38.

Salmon, John K., Mark A. Moraes, Ron O. Dror, and David E. Shaw. 2011. “Parallel Random Numbers: As Easy as 1, 2, 3.” In Proceedings of 2011 International Conference for High Performance Computing, Networking, Storage and Analysis, 16:1–16:12. SC ’11. New York, NY, USA: ACM. https://doi.org/10.1145/2063384.2063405.

Sengupta, Shubhabrata, Mark Harris, Yao Zhang, and John D. Owens. 2007. “Scan Primitives for GPU Computing.” In Graphics Hardware 2007, 97–106. San Diego, CA: ACM.

Swope, William C., Hans C. Andersen, Peter H. Berens, and Kent R. Wilson. 1982. “A Computer Simulation Method for the Calculation of Equilibrium Constants for the Formation of Physical Clusters of Molecules: Application to Small Water Clusters.” Journal of Chemical Physics 76 (1): 637–49. https://doi.org/10.1063/1.442716.