{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2025,8,30]],"date-time":"2025-08-30T17:00:09Z","timestamp":1756573209871,"version":"3.41.0"},"reference-count":48,"publisher":"Association for Computing Machinery (ACM)","issue":"3","license":[{"start":{"date-parts":[[2004,9,1]],"date-time":"2004-09-01T00:00:00Z","timestamp":1093996800000},"content-version":"vor","delay-in-days":0,"URL":"https:\/\/www.acm.org\/publications\/policies\/copyright_policy#Background"}],"content-domain":{"domain":["dl.acm.org"],"crossmark-restriction":true},"short-container-title":["ACM Trans. Math. Softw."],"published-print":{"date-parts":[[2004,9]]},"abstract":"<jats:p>ProtoMol is a high-performance framework in C++ for rapid prototyping of novel algorithms for molecular dynamics and related applications. Its flexibility is achieved primarily through the use of inheritance and design patterns (object-oriented programming). Performance is obtained by using templates that enable generation of efficient code for sections critical to performance (generic programming). The framework encapsulates important optimizations that can be used by developers, such as parallelism in the force computation. Its design is based on domain analysis of numerical integrators for molecular dynamics (MD) and of fast solvers for the force computation, particularly due to electrostatic interactions. Several new and efficient algorithms are implemented in ProtoMol. Finally, it is shown that ProtoMol's sequential performance is excellent when compared to a leading MD program, and that it scales well for moderate number of processors. Binaries and source codes for Windows, Linux, Solaris, IRIX, HP-UX, and AIX platforms are available under open source license at http:\/\/protomol.sourceforge.net.<\/jats:p>","DOI":"10.1145\/1024074.1024075","type":"journal-article","created":{"date-parts":[[2004,10,7]],"date-time":"2004-10-07T17:38:56Z","timestamp":1097170736000},"page":"237-265","update-policy":"https:\/\/doi.org\/10.1145\/crossmark-policy","source":"Crossref","is-referenced-by-count":60,"title":["ProtoMol, an object-oriented framework for prototyping novel algorithms for molecular dynamics"],"prefix":"10.1145","volume":"30","author":[{"given":"Thierry","family":"Matthey","sequence":"first","affiliation":[{"name":"University of Bergen, Bergen, Norway"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Trevor","family":"Cickovski","sequence":"additional","affiliation":[{"name":"University of Notre Dame, Notre Dame, IN"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Scott","family":"Hampton","sequence":"additional","affiliation":[{"name":"University of Notre Dame, Notre Dame, IN"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Alice","family":"Ko","sequence":"additional","affiliation":[{"name":"University of Notre Dame, Notre Dame, IN"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Qun","family":"Ma","sequence":"additional","affiliation":[{"name":"University of Notre Dame, Notre Dame, IN"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Matthew","family":"Nyerges","sequence":"additional","affiliation":[{"name":"University of Notre Dame, Notre Dame, IN"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Troy","family":"Raeder","sequence":"additional","affiliation":[{"name":"University of Notre Dame, Notre Dame, IN"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Thomas","family":"Slabach","sequence":"additional","affiliation":[{"name":"University of Notre Dame, Notre Dame, IN"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Jes\u00fas A.","family":"Izaguirre","sequence":"additional","affiliation":[{"name":"University of Notre Dame, Notre Dame, IN"}],"role":[{"role":"author","vocabulary":"crossref"}]}],"member":"320","published-online":{"date-parts":[[2004,9]]},"reference":[{"volume-title":"Modern C++ design: generic programming and design patterns applied","author":"Alexandrescu A.","key":"e_1_2_1_1_1","unstructured":"Alexandrescu , A. 2001. Modern C++ design: generic programming and design patterns applied . Addison-Wesley , Reading, Mass .]] Alexandrescu, A. 2001. Modern C++ design: generic programming and design patterns applied. Addison-Wesley, Reading, Mass.]]"},{"key":"e_1_2_1_2_1","unstructured":"Allen M. P. and Tildesley D. J. 1987. Computer Simulation of Liquids. Clarendon Press Oxford New York. (Reprinted in paperback in 1989 with corrections.)]]   Allen M. P. and Tildesley D. J. 1987. Computer Simulation of Liquids. Clarendon Press Oxford New York. (Reprinted in paperback in 1989 with corrections.)]]"},{"key":"e_1_2_1_3_1","doi-asserted-by":"publisher","DOI":"10.1016\/0021-9991(83)90014-1"},{"key":"e_1_2_1_4_1","doi-asserted-by":"crossref","unstructured":"Anderson E. Bai Z. Bischof C. Blackford S. Demmel J. Dongarra J. Du Croz J. Greenbaum A. Hammarling S. McKenney A. and Sorensen D. 1999. LAPACK Users' Guide Third ed. Society for Industrial and Applied Mathematics Philadelphia PA.]]   Anderson E. Bai Z. Bischof C. Blackford S. Demmel J. Dongarra J. Du Croz J. Greenbaum A. Hammarling S. McKenney A. and Sorensen D. 1999. LAPACK Users' Guide Third ed. Society for Industrial and Applied Mathematics Philadelphia PA.]]","DOI":"10.1137\/1.9780898719604"},{"key":"e_1_2_1_5_1","doi-asserted-by":"publisher","DOI":"10.1145\/369028.369136"},{"key":"e_1_2_1_6_1","doi-asserted-by":"publisher","DOI":"10.1006\/jcph.1993.1220"},{"key":"e_1_2_1_7_1","doi-asserted-by":"crossref","unstructured":"Blackford L. S. Choi J. Cleary A. D'Azevedo E. Demmel J. Dhillon I. Dongarra J. Hammarling S. Henry G. Petitet A. Stanley K. Walker D. and Whaley R. C. 1997. ScaLAPACK Users' Guide. Society for Industrial and Applied Mathematics Philadelphia Pa.]]   Blackford L. S. Choi J. Cleary A. D'Azevedo E. Demmel J. Dhillon I. Dongarra J. Hammarling S. Henry G. Petitet A. Stanley K. Walker D. and Whaley R. C. 1997. ScaLAPACK Users' Guide. Society for Industrial and Applied Mathematics Philadelphia Pa.]]","DOI":"10.1137\/1.9780898719642"},{"key":"e_1_2_1_8_1","volume-title":"-P","author":"Boghossian N. P.","year":"1999","unstructured":"Boghossian , N. P. , Kohlbacher , O. , and Lenhof , H . -P . 1999 . BALL : Biochemical algorithms library. In Proceedings of the 3rd International Workshop on Algorithm Engineering (WAE-99), J. S. Vitter and C. D. Zaroliagis, Eds. Lecture Notes in Computer Science, vol. 1668 . Springer-Verlag , London, 330--344.]] Boghossian, N. P., Kohlbacher, O., and Lenhof, H.-P. 1999. BALL: Biochemical algorithms library. In Proceedings of the 3rd International Workshop on Algorithm Engineering (WAE-99), J. S. Vitter and C. D. Zaroliagis, Eds. Lecture Notes in Computer Science, vol. 1668. Springer-Verlag, London, 330--344.]]"},{"key":"e_1_2_1_9_1","doi-asserted-by":"publisher","DOI":"10.1016\/0021-9991(90)90171-V"},{"key":"e_1_2_1_10_1","first-page":"16","article-title":"Parallelization of CHARMM for MIMD machines","volume":"7","author":"Brooks B. R.","year":"1992","unstructured":"Brooks , B. R. and Hodos &cbreve;ek, M. 1992 . Parallelization of CHARMM for MIMD machines . Chem. Des. Automat. News 7 , 16 -- 22 .]] Brooks, B. R. and Hodos&cbreve;ek, M. 1992. Parallelization of CHARMM for MIMD machines. Chem. Des. Automat. News 7, 16--22.]]","journal-title":"Chem. Des. Automat. News"},{"key":"e_1_2_1_11_1","doi-asserted-by":"publisher","DOI":"10.1016\/0009-2614(84)80098-6"},{"volume-title":"A System for X-ray Crystallography and NMR","author":"Br\u00fcnger A. T.","key":"e_1_2_1_12_1","unstructured":"Br\u00fcnger , A. T. 1992. X-PLOR, Version 3.1 : A System for X-ray Crystallography and NMR . The Howard Hughes Medical Institute and Department of Molecular Biophysics and Biochemistry, Yale University .]] Br\u00fcnger, A. T. 1992. X-PLOR, Version 3.1: A System for X-ray Crystallography and NMR. The Howard Hughes Medical Institute and Department of Molecular Biophysics and Biochemistry, Yale University.]]"},{"key":"e_1_2_1_13_1","doi-asserted-by":"publisher","DOI":"10.1063\/1.464397"},{"key":"e_1_2_1_14_1","doi-asserted-by":"publisher","DOI":"10.1098\/rspa.1980.0135"},{"key":"e_1_2_1_15_1","doi-asserted-by":"publisher","DOI":"10.1063\/1.470117"},{"key":"e_1_2_1_16_1","doi-asserted-by":"publisher","DOI":"10.1002\/andp.19213690304"},{"key":"e_1_2_1_17_1","doi-asserted-by":"publisher","DOI":"10.1080\/08927029408022180"},{"key":"e_1_2_1_18_1","doi-asserted-by":"crossref","unstructured":"Frenkel D. and Smit B. 2002. Understanding Molecular Simulation Second Edition. Academic Press San Diego Calif.]]   Frenkel D. and Smit B. 2002. Understanding Molecular Simulation Second Edition. Academic Press San Diego Calif.]]","DOI":"10.1016\/B978-012267351-1\/50005-5"},{"key":"e_1_2_1_19_1","unstructured":"Gamma E. Helm R. Johnson R. and Vlissides J. 1995. Design Patterns. Elements of Reusable Object-Oriented Software. Addison-Wesley Reading Mass.]]   Gamma E. Helm R. Johnson R. and Vlissides J. 1995. Design Patterns. Elements of Reusable Object-Oriented Software. Addison-Wesley Reading Mass.]]"},{"key":"e_1_2_1_21_1","doi-asserted-by":"publisher","DOI":"10.1103\/PhysRevA.44.4506"},{"key":"e_1_2_1_22_1","doi-asserted-by":"publisher","DOI":"10.1006\/jcph.1999.6199"},{"key":"e_1_2_1_23_1","doi-asserted-by":"publisher","DOI":"10.1016\/S0959-440X(00)00194-9"},{"key":"e_1_2_1_24_1","doi-asserted-by":"publisher","DOI":"10.1016\/j.jcp.2004.04.016"},{"volume-title":"Data Structures, Near Neighbor Searches, and Methodology: Fifth and Sixth DIMACS Implementation Challenges","author":"Johnson D. S.","key":"e_1_2_1_25_1","unstructured":"Johnson , D. S. 2002. A theoretician's guide to the experimental analysis of algorithms . In Data Structures, Near Neighbor Searches, and Methodology: Fifth and Sixth DIMACS Implementation Challenges , M. Goldwasser, D. S. Johnson, and C. C. McGeoch, Eds. American Mathematical Society , Providence, R.I. , 215--250.]] Johnson, D. S. 2002. A theoretician's guide to the experimental analysis of algorithms. In Data Structures, Near Neighbor Searches, and Methodology: Fifth and Sixth DIMACS Implementation Challenges, M. Goldwasser, D. S. Johnson, and C. C. McGeoch, Eds. American Mathematical Society, Providence, R.I., 215--250.]]"},{"key":"e_1_2_1_26_1","doi-asserted-by":"publisher","DOI":"10.1006\/jcph.1999.6201"},{"key":"e_1_2_1_28_1","doi-asserted-by":"publisher","DOI":"10.1145\/952532.952570"},{"volume-title":"Proceedings of the SIAM Conference on Computational Science and Engineering (CSE'03)","author":"Ma Q.","key":"e_1_2_1_29_1","unstructured":"Ma , Q. and Izaguirre , J. A . 2003b. Targeted langevin stabilization of molecular dynamics . In Proceedings of the SIAM Conference on Computational Science and Engineering (CSE'03) (CD-ROM). SIAM, San Diego, Calif.]] Ma, Q. and Izaguirre, J. A. 2003b. Targeted langevin stabilization of molecular dynamics. In Proceedings of the SIAM Conference on Computational Science and Engineering (CSE'03)(CD-ROM). SIAM, San Diego, Calif.]]"},{"key":"e_1_2_1_30_1","doi-asserted-by":"publisher","DOI":"10.1137\/S1540345903423567"},{"key":"e_1_2_1_31_1","doi-asserted-by":"publisher","DOI":"10.1063\/1.463940"},{"key":"e_1_2_1_33_1","doi-asserted-by":"publisher","DOI":"10.1103\/PhysRevLett.91.165001"},{"volume-title":"Proceedings of the 10th SIAM Conference on Parallel Processing for Scientific Computing (PP01). Proceedings in Applied Mathematics. Society for Industrial and Applied Mathematics","author":"Matthey T.","key":"e_1_2_1_34_1","unstructured":"Matthey , T. and Izaguirre , J. A . 2001. ProtoMol: A molecular dynamics framework with incremental parallelization . In Proceedings of the 10th SIAM Conference on Parallel Processing for Scientific Computing (PP01). Proceedings in Applied Mathematics. Society for Industrial and Applied Mathematics , Philadelphia, Pa.]] Matthey, T. and Izaguirre, J. A. 2001. ProtoMol: A molecular dynamics framework with incremental parallelization. In Proceedings of the 10th SIAM Conference on Parallel Processing for Scientific Computing (PP01). Proceedings in Applied Mathematics. Society for Industrial and Applied Mathematics, Philadelphia, Pa.]]"},{"key":"e_1_2_1_35_1","volume-title":"International Conference","volume":"2659","author":"Matthey T.","unstructured":"Matthey , T. , Ko , A. , and Izaguirre , J. A . 2003. ProtoMol, an object-oriented framework for algorithmic development. In Computational Science---ICCS 2003 , International Conference ( Melbourne, Australia and St. Petersburg, Russia). Lecture Notes Computer Science vol. 2659 . Springer-Verlag, Berlin, Germany, 50--59.]] Matthey, T., Ko, A., and Izaguirre, J. A. 2003. ProtoMol, an object-oriented framework for algorithmic development. In Computational Science---ICCS 2003, International Conference (Melbourne, Australia and St. Petersburg, Russia). Lecture Notes Computer Science vol. 2659. Springer-Verlag, Berlin, Germany, 50--59.]]"},{"key":"e_1_2_1_36_1","doi-asserted-by":"publisher","DOI":"10.1063\/1.447334"},{"key":"e_1_2_1_37_1","unstructured":"OpenMP-forum. 1997. OpenMP: A proposed industry standard API for shared memory programming. technical report. http:\/\/www.openmp.org.]]  OpenMP-forum. 1997. OpenMP: A proposed industry standard API for shared memory programming. technical report. http:\/\/www.openmp.org.]]"},{"key":"e_1_2_1_38_1","doi-asserted-by":"publisher","DOI":"10.1209\/epl\/i1998-00258-6"},{"key":"e_1_2_1_39_1","doi-asserted-by":"publisher","DOI":"10.1002\/(SICI)1096-987X(199602)17:3<326::AID-JCC7>3.0.CO;2-X"},{"key":"e_1_2_1_40_1","first-page":"327","article-title":"Numerical integration of the Cartesian equation of motion of a system with constraints: molecular dynamics of n-alkanes","volume":"23","author":"Ryckaert J.","year":"1977","unstructured":"Ryckaert , J. , Ciccotti , G. , and Berendsen , H. 1977 . Numerical integration of the Cartesian equation of motion of a system with constraints: molecular dynamics of n-alkanes . J. Chem. Phys. 23 , 327 -- 341 .]] Ryckaert, J., Ciccotti, G., and Berendsen, H. 1977. Numerical integration of the Cartesian equation of motion of a system with constraints: molecular dynamics of n-alkanes. J. Chem. Phys. 23, 327--341.]]","journal-title":"J. Chem. Phys."},{"key":"e_1_2_1_41_1","doi-asserted-by":"publisher","DOI":"10.1002\/jcc.1039"},{"volume-title":"The Graduate Student's Guide to Numerical Analysis","author":"Skeel R. D.","key":"e_1_2_1_42_1","unstructured":"Skeel , R. D. 1999. Integration schemes for molecular dynamics and related applications . In The Graduate Student's Guide to Numerical Analysis , M. Ainsworth, J. Levesley, and M. Marletta, Eds. Springer Series on Computer Mathematics, vol. 26 . Springer-Verlag , Berlin, Germany, 119--176.]] Skeel, R. D. 1999. Integration schemes for molecular dynamics and related applications. In The Graduate Student's Guide to Numerical Analysis, M. Ainsworth, J. Levesley, and M. Marletta, Eds. Springer Series on Computer Mathematics, vol. 26. Springer-Verlag, Berlin, Germany, 119--176.]]"},{"key":"e_1_2_1_43_1","doi-asserted-by":"publisher","DOI":"10.1080\/0026897021000018321"},{"key":"e_1_2_1_44_1","doi-asserted-by":"publisher","DOI":"10.1002\/jcc.10072"},{"volume-title":"The C++ Programming Language","author":"Stroustrup B.","key":"e_1_2_1_46_1","unstructured":"Stroustrup , B. 1997. The C++ Programming Language , Third ed. Addison-Wesley , Reading, Mass .]] Stroustrup, B. 1997. The C++ Programming Language, Third ed. Addison-Wesley, Reading, Mass.]]"},{"key":"e_1_2_1_47_1","first-page":"12","article-title":"Competition between two forms of ordering in finite Coulomb clusters","volume":"88","author":"Tosuji H.","year":"2002","unstructured":"Tosuji , H. , Kishimoto , T. , Totsuji , C. , and Tsuruta , K. 2002 . Competition between two forms of ordering in finite Coulomb clusters . Phys. Rev. Lett. 88 , 12 .]] Tosuji, H., Kishimoto, T., Totsuji, C., and Tsuruta, K. 2002. Competition between two forms of ordering in finite Coulomb clusters. Phys. Rev. Lett. 88, 12.]]","journal-title":"Phys. Rev. Lett."},{"key":"e_1_2_1_48_1","doi-asserted-by":"publisher","DOI":"10.1063\/1.463137"},{"key":"e_1_2_1_49_1","doi-asserted-by":"publisher","DOI":"10.1016\/S0010-4655(00)00077-1"},{"key":"e_1_2_1_50_1","volume-title":"Conference presentation, Extreme! Computing Laboratory","author":"Veldhuizen T.","year":"1998","unstructured":"Veldhuizen , T. 1998 . Blitz++: The library that thinks it is a compiler . Conference presentation, Extreme! Computing Laboratory , Indiana University Computer Science Department. Sept.]] Veldhuizen, T. 1998. Blitz++: The library that thinks it is a compiler. Conference presentation, Extreme! Computing Laboratory, Indiana University Computer Science Department. Sept.]]"},{"key":"e_1_2_1_51_1","doi-asserted-by":"publisher","DOI":"10.1103\/PhysRev.159.98"},{"key":"e_1_2_1_52_1","doi-asserted-by":"publisher","DOI":"10.1002\/jcc.540161110"}],"container-title":["ACM Transactions on Mathematical Software"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/1024074.1024075","content-type":"unspecified","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/dl.acm.org\/doi\/pdf\/10.1145\/1024074.1024075","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2025,6,18]],"date-time":"2025-06-18T17:23:53Z","timestamp":1750267433000},"score":1,"resource":{"primary":{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/1024074.1024075"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2004,9]]},"references-count":48,"journal-issue":{"issue":"3","published-print":{"date-parts":[[2004,9]]}},"alternative-id":["10.1145\/1024074.1024075"],"URL":"https:\/\/doi.org\/10.1145\/1024074.1024075","relation":{},"ISSN":["0098-3500","1557-7295"],"issn-type":[{"type":"print","value":"0098-3500"},{"type":"electronic","value":"1557-7295"}],"subject":[],"published":{"date-parts":[[2004,9]]},"assertion":[{"value":"2004-09-01","order":2,"name":"published","label":"Published","group":{"name":"publication_history","label":"Publication History"}}]}}