<aside> 💡 torchmd and jaxmd are useful starting points

</aside>

This package will include a number of modules that implement an end-to-end Molecular Dynamics Engine using jax with neural network potentials.

diffmd
  __init__.py
  integrator.py # performs integration
  neighborlist.py # handels topology
  io.py # parses pdb file (any other format needed?)
  nnp.py #pulls in a trained NNP from `modelforge` with a specific identifier 
  simulation.py
  minimize.py # implement or pull in fire or BFGS minimizer
  

Reporter

Reporters are necessary to debug, log and calculate properties of MCMC runs.

Reporters need to provide two functionalities:

For any given calculation we set the directory in which the calculations are reporter/logged. Each Reporter will create logs with filenames that are generated automatically and depend on the MCMCMove class and the SamplerState.

Each MCMCMove class and instance has its own reporter (LangevinDynamicsMove has a LangevinDynamicsReporter) that logs computed values of interest, including the trajectory.

The MultistateReporter is responsible for logging

class MultistateReporter:

    def __init():