Quantum Chemistry Codes

Thanks to the container infrastructure described above, it is easy to extend the platform to perform calculations using new computational chemistry packages. Assuming the general flow follows that of an existing code the Dockerfile and Python driver can be used as a starting basis. If the code is packaged using a Linux distribution, or a Python packaging repository they can simply be installed as part of the image build process. The Python driver script provides a basis for adapting input data and directives to input files for the code, and translating output data to a suitable form that can be consumed by the platform. Once these pieces have been implemented the container can be tested on the command line before attempting to use it on the server-side.
The NWChem\cite{Valiev_2010} and Psi4\cite{Parrish_2017} packages were used as our first computational chemistry codes due to their popularity, open source licensing, and the fact that they offer similar features at a high level with very different implementations. These images serve as an example for others interested in adding new codes to the platform. The NWChem and Psi4 images support a similar set of features:
This only represents a select subset of what these quantum chemistry codes are capable of. The features exposed by the images will be extended in the future, prioritizing things that are relevant to the needs of our platform's users. The input mechanism through the notebooks and API accepts arguments that are passed through to the driver script making it easy to add custom arguments to new containers. Container names consist of an organization, name and version currently pulled from DockerHub, making it easy to add custom versions and fetch them.