Skip to content

GSoC 2023 Ideas

Rohit Goswami edited this page Feb 6, 2023 · 3 revisions

Overview

d-SEAMS is an engine meant to interface with molecular dynamics trajectories. Like those generated by LAMMPS, the primary software of choice for most d-SEAMS users. As a post-processing tool, for gaining insights into the dynamics systems simulated, it is often best to reduce the gap between trajectories and data. To this end, the current design of d-SEAMS is controlled by a YAML file per analysis, along with a scripting engine, which is currently in Lua. This scripting engine is flexible, and prevents erroneous mixing of unsupported code for the most part, however, Lua is not necessarily well known to most practicing scientists. To this end, the scripting engine will be replaced with a Python embedded interpreter. Rather than writing Python-C code directly to manage the interface, we plan to use the the Pybind11 project.

Pybindings

The general idea is to swap out the sol2 based Lua bindings for Pybind11 based bindings. Additionally, these bindings should live apart from the engine here, and should be pip installable, while the package itself will be built via conda.

Required knowledge: A good working understanding of Python-C bindings and some practical experience with Pybind11 (e.g. the tutorials will suffice). C++ familiarity with libraries will be required to some extent, but will be taught on-the-fly.

Project length: 350 hours

Difficulty level: Medium-Hard

Potential mentors: Rohit Goswami, Amrita Goswami

Connecting to the Python Molecular Dynamics community

Workflows have taken over the high-performance computing landscape, for example, those executed within Jupyter (e.g. PyIron) or without (e.g. AiiDA). These tools often have sophisticated or baroque object relation management models (e.g. PostGreSQL in AiiDA). However, they all also provide an interface through Python.

The goal of this project is to integrate through Pybind11 to these external codes namely:

  • cclib for transforming data and inputs from different code-bases
  • ase for integrating with user-designed rapid prototyping tools, e.g. we would like to be able to integrate seamlessly with the existing ase toolset, to (e.g.) run an NEB (nudged-elastic-band) and also track the shapes during the process
  • i-pi which can run additional dynamical simulations (in Python)

A stretch goal here is to convert the internal data structures to an SQL data-base for better integration with AiiDA, however this will need more design inputs.

Required knowledge: An understanding of molecular dynamics / reading the ASE documentation for the same; basic file i/o in python.

Project length: 175 hours

Difficulty level: Low-Medium

Potential mentors: Rohit Goswami, Amrita Goswami

Your Idea

We welcome all additional proposals, or ideas. Contact the lead devs here.

Clone this wiki locally