Open
Description
This issue is a roadmap for Molly.jl development. Feel free to discuss things here or submit a PR. Bear in mind that significant refactoring will probably occur as the package develops.
Low hanging fruit
Want to get involved? These issues might be the place to start:
- Speedups to the code. Both on the level of individual functions and the overall algorithm. [Getting there]
- Look over the code to find mistakes in implementation. There will be some because...
- Test coverage is minimal. We need tests for the 'core' functions that are unlikely to change their return values, e.g. the force functions. [Done]
Bigger things to tackle
- Energy minimisation by gradient descent [Done].
- Add other forcefields. [Partly done]
- Add other thermostats/ensembles. [Partly done]
- Get it working on the GPU. [Done]
- Line by line checking of how a mature MD package works to see where we have missed things and to get an idea of how to organise the codebase in future. [Partly done]
- Neighbour list in a cubic lattice, and use of group lists. [Partly done]
- Setup of MD simulations, e.g. adding hydrogen, solvent. [Partly done]
- Trajectory/topology file format readers and writers. The current topology reader is not very robust. [Partly done]
Projects that will require more planning or will cause significant changes
- Abstracting the forcefield from the integration to allow different forcefields and integrators to be combined. [Done]
- Allow definition of custom forcefields. [Done]
- Parallelisation. [Done]
Okay, so this is less of a roadmap and more of a list of ideas to work on. But most or all of the above would be required to make this a package suitable for general use, so in a sense this is the roadmap.