Velvet

Crates.io Crates.io Crates.io

Velvet is a classical atomistic simulation engine with a focus on user-friendliness and extensibility. This project is largely a learning exercise, but as development continues I hope to accomplish the following goals:

Getting Started

Prerequisites

Velvet has optional support to write HDF5 formatted results. If this is your preferred format, you will need a local installation of libhdf5. The library can be installed with your package manager of choice or downloaded directly from source here.

Installation (from source)

To build Velvet you will need to have Rust's compiler and package manager installed on your machine. Instructions for most platforms can be found here.

  1. Clone the repo bash $ git clone https://github.com/seatonullberg/velvet && cd velvet
  2. Check that all tests pass bash $ cargo test --workspace
  3. Build in release mode ```bash

    without optional dependencies

$ cargo build --release

with HDF5 dependency

$ cargo build --release --features hdf5-output

with rayon multithreading enabled

$ cargo build --release --features rayon ```

Usage

The examples directory contains examples of how to use the velvet crate to configure simulations directly in code. The scripts directory contains Python scripts to visualize the results of each example.

Roadmap

Refer to the open issues, FEATURES.md, and CHANGELOG.md to see planned or proposed features (and bug fixes).

FAQ

Q: Why is it called "Velvet"?

A: "Velvet" is a concatenation of Velocity Verlet, a foundational algorithm in molecular dynamics simulations.

License

Distributed under the MIT License. See LICENSE for more information.

Acknowledgements