| Crates.io | vegas |
| lib.rs | vegas |
| version | 0.9.0 |
| created_at | 2024-08-19 07:30:14.891313+00 |
| updated_at | 2025-11-18 19:02:46.355445+00 |
| description | Feature-rich atomistic magnetic material simulation platform. |
| homepage | |
| repository | https://github.com/odarbelaeze/vegas-rs |
| max_upload_size | |
| id | 1343559 |
| size | 148,256 |
vegas is a feature rich atomistic magnetic material simulation platform written in rust. It supports Ising and Heisenberg spins, as well as a couple of Monte Carlo algorithms, namely Metropolis and Wolff.
Vegas is meant to be used as a library to build your custom magnetic material simulation programs. That said, there's an included program that can handle generic input and can be used as a reference implementation for your own programs.
To install vegas you need to have the rust installed. Then, you can install vegas by running the following command:
cargo install vegas
If you want to install vegas as a library, you can add it via cargo:
cargo add vegas
thiserror crate.parquet crate.You can use the toml input file format to run simulations. An example of input file is given below:
# Model definition can be Ising or Heisenberg.
model = "Ising"
# Algorithm definition can be Metropolis or Wolff.
algorithm = "Metropolis"
# You can create unit cells of different lattice types.
[sample.unitcell]
name = "sc"
# You can expand your unit cell to create larger samples.
[sample.size]
x = 10
y = 10
z = 1
# You can set periodic boundary conditions in each direction.
[sample.pbc]
x = true
y = true
z = false
# You can control the stages of the simulation.
[[stages]]
program = "Relax"
steps = 1000
temperature = 4.0
[[stages]]
program = "CoolDown"
max_temperature = 4.0
min_temperature = 0.1
cool_rate = 0.1
relax = 1000
steps = 20000
# You can define outputs to be written during the simulation.
[output]
observables = "./output.parquet"
[output.state]
path = "./state.parquet"
frequency = 1000
You can run the simulation by executing the following command:
vegas run input.toml
Contributions are welcome! Please open an issue or submit a pull request on GitHub. There are currently some missing features that would benefit the package, such as: