:alembic: Velvet

Crates.io Crates.io Crates.io

Velvet is a classical atomistic simulation engine with a focus on user-friendliness and portability - two features that I believe are not well represented in the current scientific software environment. This project is largely a learning exercise, but as development continues I hope to accomplish the following goals:

Getting Started

Prerequisites

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.

Installation

  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 $ cargo build --release --workspace

Usage

The examples directory contains examples of how to use the velvet-core API to configure simulations directly in code.

nve.rs - Simulation of Ar gas in the NVE ensemble. This example uses a Lennard-Jones style pair potential to simulate the pairwise interactions between Ar atoms. The velocity Verlet algorithm is employed to integrate the equations of motion in the system. The total energy of this system is plotted at each timestep in the figure below.

nvt.rs - Simulation of Ar gas in the NVT ensemble. This example expands upon the NVE example by adding a Nose-Hoover style thermostat to regulate the temperature of the system. The temperature of this system is plotted at each timestep in the figure below.

Roadmap

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

License

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

Acknowledgements