Skip to content

amartyadav/serial_molecular_dynamics

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

30 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Simple Modecular Dynamics Serial Implementation

What is it?

This is a simple implementation of molecular dynamics simulation in Rust. This code is by no means highly optimized for performance, but it is a good starting point for learning about molecular dynamics and Rust.

This was craeted as a process to learn Rust and how to implement a molecular dynamics simulation. The reference code for the same implementation in C. More details on the original code will be added later after confirmation from the original author.

Testing Environment

  • OS: macOS Sequoia 15.4
  • CPU: Apple M3 Pro
  • RAM: 34 GB
  • Rust: 1.86.0 (05f9846f8 2025-03-31)
  • Cargo: 1.86.0 (adf9b6ad1 2025-02-28)

Current Status

The code is complete and runs a simple molecular dynamics simulation. The code is optimised to a certain extent, but there might be some performance improvements that can be made. This code is not intended to be a high-performance implementation, but rather a simple and easy to understand implementation of molecular dynamics.

How to run the code

  1. Clone the repository
cd mol_dyn_rust
  1. Build the code
cargo build --release
  1. The code requires an input file called input.dat in the current directory.
cp input.dat mol_dyn_rust/target/release
  1. Run the code
cd target/release
./mol_dyn_rust input.dat
  1. The code will generate files called output.dat*00 in the current directory. The * is a number from 0 to 9. The files contain the current state of the simulation at each time step.

Author

Amartya Yadav,
MSc High Performance Computing,

EPCC, University of Edinburgh, UK.

License

This code is licensed under the MIT License. The original code and its license details will be added later.

About

Serial and simple molecular dynamics implementation written in Rust.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages