Introduction

JMD.jl is still in the pre-release phase

This package is still very early in its development, and there are more mature molecular dynamics packages in Julia. For instance, Molly.jl and NQCDynamics.jl both offer molecular dyanmics in Julia.

Julia Molecular Dynamics (JMD.jl) aims to offer users a simple, intuitive and easy-to-use molecular dynamics enviornment. It draws inspiration from Python's ASE, but is intended to be faster and offer users more flexibility. The flexibility comes from the relative ease with which users can add their own methods to dynamics or other components of JMD.jl.

Installation

JMD.jl is not yet on the general registry, so for now installation can be done via GitHub.

pkg> add https://github.com/Cavenfish/JMD

If you are more adventerous, you can consider installing the dev branch of JMD.jl. This will get updates more frequently, which gives users more features but also comes with increased chances of bugs.

pkg> add https://github.com/Cavenfish/JMD#dev

Features

Currently, JMD.jl is able to perform the following simulations/calculations on molecular systems.

  • Geometry optimizations
  • Harmonic frequency calculations
  • Classical molecular dynamics in the NVE and NVT ensemble

Dependencies

JMD.jl relies on several specialized external packages. These packages actively maintained and well trusted within the Julia ecosystem. If this changes, JMD.jl will remove these dependencies and if necessary implement the specialized code in-house. Here the dependencies are listed with links to their repos to give credit to their work but also to provide transperancy.

Packages within the Julia standard library are listed seperately since they are expected to be maintained as well as the Julia langague itself. For each dependency there is a short description of how it is used in JMD.jl, or why it is considered for removal.

Julia Standard Library Packages

External Packages

Considered for Removal

  • JLD2: This package is currently only used to load neural network data for potentials. This functionality can be covered by the Serialization package, which can reduce the total dependency count. Note, this is a well maintained package and users are encouraged to use it alongside JMD.jl.
  • DataFrames: This package does not add any functionality to JMD.jl, but rather enchances user exerpience. However, this can be achieved by users using the package alongside JMD.jl, rather than it being a dependency. Note, this is a well maintained package and users are encouraged to use it alongside JMD.jl.