-
Notifications
You must be signed in to change notification settings - Fork 10
GSoC 2023 Ideas
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.
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
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 existingase
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
We welcome all additional proposals, or ideas. Contact the lead devs here.