-
Notifications
You must be signed in to change notification settings - Fork 10
GSoC 2024 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.
Since last year, PySEAMS has been part of the d-SEAMS organization. However, these bindings should be pip
installable, while the package itself will be built via conda
or spack
. The goal this year is to ensure a robust testing suite, documentation, and crucially, setup a workflow for interactive runs and visualization.
Required knowledge: A strong interest in (or experience) in visualization libraries of the Python ecosystem, including PyVista and either Matplotlib or Plotine. A good working understanding of Python-C bindings and some practical experience with Pybind11 (e.g. the tutorials will suffice). Some minor 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, Gagandeep Singh
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:
-
pychum
for transforming data and inputs into a Fireworks compatible workflow -
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)
Required knowledge: An understanding of molecular dynamics / reading the ASE documentation for the same; interest in NoSQL databases and parsers for input structures / basic file i/o in python
.
Project length: 350 hours
Difficulty level: Medium-Hard
Potential mentors: Rohit Goswami, Amrita Goswami
We welcome all additional proposals, or ideas. Contact the lead devs here.