# 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`。
