Metadata-Version: 2.4
Name: atooms-dynamics
Version: 2.1.0
Summary: Newtonian and stochastic dynamics backends for atooms
Author-email: Daniele Coslovich <daniele.coslovich@umontpellier.fr>
License: GPLv3
Project-URL: repository, https://framagit.org/atooms/dynamics
Project-URL: homepage, https://framagit.org/atooms/dynamics
Project-URL: documentation, https://atooms.frama.io/dynamics
Project-URL: changelog, https://framagit.org/atooms/dynamics/-/blob/master/CHANGELOG.md
Classifier: License :: OSI Approved :: GNU General Public License v3 (GPLv3)
Classifier: Development Status :: 5 - Production/Stable
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.7
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Requires-Python: >=3.7
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: atooms>=3.20.1
Requires-Dist: f2py_jit>=1.2.2
Dynamic: license-file

# Dynamics

[![pypi](https://img.shields.io/pypi/v/atooms-dynamics.svg)](https://pypi.python.org/pypi/atooms-dynamics/)
[![version](https://img.shields.io/pypi/pyversions/atooms-dynamics.svg)](https://pypi.python.org/pypi/atooms-dynamics/)
[![license](https://img.shields.io/pypi/l/atooms-pp.svg)](https://en.wikipedia.org/wiki/GNU_General_Public_License)
[![Binder](https://mybinder.org/badge_logo.svg)](https://mybinder.org/v2/git/https%3A%2F%2Fframagit.org%2Fatooms%2Fdynamics/HEAD?labpath=docs%2Findex.ipynb)
[![pipeline](https://framagit.org/atooms/dynamics/badges/master/pipeline.svg)](https://framagit.org/atooms/dynamics/badges/master/pipeline.svg)
[![coverage report](https://framagit.org/atooms/dynamics/badges/master/coverage.svg)](https://framagit.org/atooms/dynamics/-/commits/master)

Newtonian and stochastic dynamics backends for atooms.

## Quick start

Run a molecular dynamics simulation of a Lennard-Jones system from an existing xyz file
```python
from atooms.trajectory import Trajectory
from atooms.simulation import Simulation
from atooms.dynamics.netwonian import VelocityVerlet

# Start from the last frame of input.xyz
trajectory = Trajectory('input.xyz')
system = trajectory[-1]
system.interaction = Interaction('lennard_jones')
backend = VelocityVerlet(system, timestep=0.002)
sim = Simulation(backend, steps=200)
sim.run()
```

Do the same via the API, storing configurations in `output.xyz`,
```python
from atooms.dynamics.api import md

md('input.xyz', 'output.xyz',
   method='velocity-verlet', model='lennard_jones',
   dt=0.002, nsteps=200, config_number=20)
```

or from the command line
```sh
md.py --method velocity-verlet -n 200 --dt 0.002 --config-number 20 input.xyz output.xyz
```

## Features

Integration algorithms:

- **Netwonian dynamics**
  - [velocity-Verlet](https://atooms.frama.io/dynamics/api/atooms/dynamics/newtonian.html#atooms.dynamics.newtonian.VelocityVerlet)
  - [Nosé-Poincaré](https://atooms.frama.io/dynamics/api/atooms/dynamics/newtonian.html#atooms.dynamics.newtonian.NosePoincare)
  - [Nosé-Hoover and Nosé-Hoover chains](https://atooms.frama.io/dynamics/api/atooms/dynamics/newtonian.html#atooms.dynamics.newtonian.NoseHoover)
  - [Berendsen thermostat/barostat](https://atooms.frama.io/dynamics/api/atooms/dynamics/newtonian.html#atooms.dynamics.newtonian.Berendsen)
  - [event-driven](https://atooms.frama.io/dynamics/api/atooms/dynamics/newtonian.html#atooms.dynamics.newtonian.EventDriven)
- **Stochastic dynamics**
  - [Langevin](https://atooms.frama.io/dynamics/api/atooms/dynamics/stochastic.html#atooms.dynamics.stochastic.Langevin)
  - [overdamped Langevin](https://atooms.frama.io/dynamics/api/atooms/dynamics/stochastic.html#atooms.dynamics.stochastic.LangevinOverdamped)

## Documentation

Check out the [tutorial](https://atooms.frama.io/docs/) for more examples and the [public API](https://atooms.frama.io/dynamics/api) for full details.

<!-- Org-mode and jupyter notebooks are available under `docs/`. You can run the tutorial interactively on [Binder]( https://mybinder.org/v2/git/https%3A%2F%2Fframagit.org%2Fatooms%2Fdynamics/HEAD?labpath=docs%2Findex.ipynb). -->

## Installation

From pypi
```
pip install atooms-dynamics
```

You can clone the code repository and install from source
```
git clone https://framagit.org/atooms/dynamics.git
cd dynamics
pip install .
```

## Contributing

Contributions to the project are welcome. If you wish to contribute, check out [these guidelines](https://framagit.org/atooms/atooms/-/blob/master/CONTRIBUTING.md).

## Authors

Daniele Coslovich: https://www.units.it/daniele.coslovich/
