2 个版本
使用旧 Rust 2015
新版本 0.0.3 | 2024 年 8 月 19 日 |
---|---|
0.0.2 | 2024 年 8 月 19 日 |
#60 在 模拟
130 每月下载量
24KB
529 代码行
vegas-rs
这是磁系统原子模拟包的实验性实现。 vegas-rs 的主要目标是确定 Rust 语言在类似应用中的性能。
了解更多关于 vegas 项目
lib.rs
:
vegas
是一个库,允许您创建磁性材料的原子模拟。
目录表
安装
通过在您的 Cargo.toml
中添加以下内容来安装 vegas
库
[dependencies]
vegas = "*"
自旋
自旋是库的基本构建块。它们代表磁性材料中原子的自旋。库提供了一个 Spin
特征,您可以为您的自旋类型实现它。
库提供了一个 HeisenbergSpin
类型,它代表 Heisenberg 模型中的自旋。该 HeisenbergSpin
类型是一个三维向量,表示原子的自旋。
此外,库提供了一个 IsingSpin
类型,它代表 Ising 模型中的自旋。该 IsingSpin
类型实现为枚举,可以取向上或向下的变体。
哈密顿量
哈密顿量是一个计算自旋系统能量的函数。
此库提供了一个 EnergyComponent
特征,您可以为您的哈密顿量实现它。
此库提供以下哈密顿量,等等
Exchange
- 计算自旋系统交换能量的哈密顿量。Gauge
- 计算自旋系统规范能量的哈密顿量。UniaxialAnisotropy
- 计算自旋系统单轴各向异性能量的哈密顿量。ZeemanEnergy
- 计算自旋系统塞曼能量的哈密顿量。Compound
- 结合多个哈密顿量的哈密顿量。
示例
use vegas::hamiltonian;
use vegas::integrator::{Integrator, MetropolisIntegrator, StateGenerator};
use vegas::energy::{HamiltonianComponent, Gauge};
use vegas::state::{HeisenbergSpin, State};
let hamiltonian = hamiltonian!(Gauge::new(10.0));
let mut integrator = MetropolisIntegrator::new(3.0);
let mut state: State<HeisenbergSpin> = integrator.state(1000);
loop {
let steps = 1000;
let mut energy_sum = 0.0;
for _ in 0..steps {
state = integrator.step(&hamiltonian, &state);
energy_sum += hamiltonian.total_energy(&state)
}
println!("{} {}", integrator.temp(), energy_sum / steps as f64);
if integrator.temp() < 0.1 {
break;
}
integrator.cool(0.1);
}
依赖关系
~14MB
~233K SLoC