Metadata-Version: 2.4
Name: hardspheres-2d
Version: 0.1.0
Requires-Dist: click>=8.1.8
Requires-Dist: numpy>=2.2.4
Requires-Dist: polars>=1.25.2
Requires-Dist: scipy>=1.15.2
Requires-Dist: seaborn>=0.13.2
Requires-Dist: tqdm>=4.67.1
License-File: LICENSE
Summary: Add your description here
Author-email: eschmidt42 <11818904+eschmidt42@users.noreply.github.com>
Requires-Python: >=3.13
Description-Content-Type: text/markdown; charset=UTF-8; variant=GFM

# Hard Spheres in 2d
> Simulating hard spheres in two dimensions using event driven molecular dynamics and visualizing rotational symmetry using psi-6.

![Melting hexagon of hard spheres](./melting-hexagon.gif)

## Setup

    git clone
    cd hardspheres-2d
    uv sync

For the installation of uv see [here](https://docs.astral.sh/uv/getting-started/installation/).

Note: this project uses Rust 1.82. So you may need to [install the rust toolchain](https://www.rust-lang.org/tools/install).

## How to use

### Command Line

To run the event driven molecular dynamics simulation from your command line you can check out

    uv run hardspheres2d --help


### Notebook

Alternatively, the notebook `./melting-hard-sphere-hexagons.ipynb` contains all the steps to set up and run event driven molecular dynamcis on your machine. As well as some sanity checks to better understand what is going on.

To visualize the dynamics you may want to install [ovito](https://www.ovito.org). The base version is sufficient.

## Developing

During your rust edits you want to update your build artefacts so you can use them from python / a notebook. For this please use

    make update

