November 15, 2004
Journal Article

Component-Based Integration of Chemistry and Optimization Software

Abstract

Typical scientific software designs make rigid assumptions regarding programming language and data structures, frustrating software interoperability and scientific collaboration. Component-based software engineering is an emerging approach to managing the increasing complexity of scientific software that facilitates code interoperability and reuse. Through the adoption of methodology and tools developed by the Common Component Architecture Forum, a component architecture for molecular structure optimization has been developed. We present a brief overview of the component development process and a description of abstract interfaces for chemical optimizations. Components conforming to these abstract interfaces have been created, yielding applications that can use different chemistry and mathematics packages interchangeably. Chemistry components, providing capacity for energy and energy derivative evaluation, have been developed that use the NWChem and Massively Parallel Quantum Chemistry packages. Geometry optimization applications have been constructed by integrating the Toolkit for Advanced Optimization, Portable Extensible Toolkit for Scientific Computation, and Global Arrays packages, which provide optimization and linear algebra capabilities. Initial numerical results for the component software demonstrate good parallel performance and highlight potential research enabled by this platform.

Revised: October 27, 2005 | Published: November 15, 2004

Citation

Kenny J.P., S.J. Benson, Y. Alexeev, J.J. Sarich, C. Janssen, L. McInnes, and M. Krishnan, et al. 2004. Component-Based Integration of Chemistry and Optimization Software. Journal of Computational Chemistry 25, no. 14:1717-1725. PNNL-SA-41336.