131f52fe19
- case05 Readme.md 更新为纵波模拟描述 - case05 run_dynamics.py 注释更新 - case06 创建为一维原子链横波模拟 - coord.txt: fix_x=1, fix_y=1, fix_z=0 (z方向自由) - driver.txt: amp_z=0.5, freq_z=0.1, phi_z=90° - input.txt: 横波配置 + step_plot_wave - Readme.md + doc/index.html + run_dynamics.py - 模拟验证通过 (50000步/30s)
41 lines
1.2 KiB
Markdown
41 lines
1.2 KiB
Markdown
# case05: 一维原子链纵波模拟
|
||
|
||
60 个原子沿 x 轴排列,相邻原子用弹簧连接。原子 1 受 x 方向驱动力作用,产生沿链传播的纵波。
|
||
|
||
## 物理设定
|
||
|
||
| 参数 | 值 |
|
||
|---|---|
|
||
| 原子数 | 60 |
|
||
| 排列 | 沿 x 轴等间距排列,间距为 1 |
|
||
| 约束 | 原子**沿 x 方向自由振动**(fix_x=0, fix_y=1, fix_z=1),y, z 锁定 |
|
||
| 弹簧 | 劲度系数 k=1.0,原长 L₀=1.0 |
|
||
| 重力 | 无 |
|
||
| 万有引力 | 无 |
|
||
| 阻尼 | 无 |
|
||
| 驱动力 | 原子 1(x 方向驱动) |
|
||
| 算法 | leapfrog(蛙跳法,能量守恒) |
|
||
|
||
## 驱动力
|
||
|
||
原子 1 的位置由 `input/driver.txt` 中的驱动力公式决定:
|
||
|
||
```math
|
||
x(t) = A_x \cdot \cos(2\pi f_x t + \phi_x)
|
||
```
|
||
|
||
当前参数:A_x = 0.5, f_x = 1.0 Hz, φ_x = 0°, period = all(全程驱动)。
|
||
|
||
## 动力学行为
|
||
|
||
原子 1 沿 x 方向的受迫振动通过弹簧逐次传递给相邻原子,形成沿链传播的**纵波**(压缩波/疏密波)。由于 x 方向的弹簧力是线性的(F ≈ k·Δx),纵波的传播速度较快,能量沿链高效传递。
|
||
|
||
## 使用方法
|
||
|
||
```bash
|
||
cd examples/case05
|
||
python run_dynamics.py
|
||
```
|
||
|
||
配置参数详见 `input/input.txt`,驱动力定义见 `input/driver.txt`,完整文档见 `doc/index.html`。
|