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:
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.
bash
$ git clone https://github.com/seatonullberg/velvet && cd velvet
bash
$ cargo test --workspace
bash
$ cargo build --release --workspace
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.
Refer to the open issues and CHANGELOG.md to see planned or proposed features (and bug fixes).
Distributed under the MIT License. See LICENSE for more information.