关键词:
Interoperability
QM/MM
Quantum chemistry
Molecular mechanics
摘要:
The MolSSI Driver Interface (MDI) Project provides a standardized API for fast, on-the-fly communication between computational molecular sciences codes. This greatly simplifies the process of implementing methods that require the cooperation of multiple software packages and enables developers to write a single implementation that works across many different codes. The API is sufficiently general to support a wide variety of techniques, including QM/MM, ab initio MD, machine learning, advanced sampling, and path integral MD, while also being straightforwardly extensible. Communication between codes is handled by the MDI Library, which enables tight coupling between executables using either the MPI or TCP/IP methods. Program summary Program title: The MDI Library CPC Library link to program files: https://***/10.17632/8zppf699hm.1 Developer's repository link:https://***/MolSSI-MDI/MDI_Library Licensing provisions: BSD 3-clause Programming language: C, Python, and Fortran95 Nature of problem: Enabling direct communication of commands and data between independently compiled computational molecular sciences codes with minimal latency and in a manner consistent with the requirements of the MDI Project. Solution method: Inter-code communication via the MPI and TCP/IP communication protocols is implemented within the context of a library, with all choices regarding the communication protocol being made by the end-user at runtime. Messages are validated based on expected data type and length, and self-consistent unit conversions are provided. The library builds via CMake, with support for the Unix, Linux, MacOS, and Windows operating systems and for codes using the C, C++, Python, and Fortran languages. Additional comments including restrictions and unusual features: The MDI Library does not itself perform any scientific calculations, but instead facilitates communication between other codes. The MDI Library is a component of the larger MDI Project, which is desc