# case05: 一维原子链驱动力学模拟 60 个原子沿 x 轴排列,相邻原子用弹簧连接。原子 1 受驱动力作用。 ## 物理设定 | 参数 | 值 | |---|---| | 原子数 | 60 | | 排列 | 沿 x 轴等间距排列,间距为 1 | | 约束 | 原子**只沿 z 方向**振动(fix_x=1, fix_y=1, fix_z=0) | | 弹簧 | 劲度系数 k=1.0,原长 L₀=1.0 | | 重力 | 无 | | 万有引力 | 无 | | 阻尼 | 无 | | 驱动力 | 原子 1(详见 driver.txt) | | 算法 | leapfrog(蛙跳法,能量守恒) | ## 驱动力 原子 1 的位置由 `input/driver.txt` 中的驱动力公式决定: ```math z(t) = A_z \cdot \cos(2\pi f_z t + \phi_z) ``` 当前参数:A_z = 5.0, f_z = 1.0 Hz, φ_z = 90°(全程驱动)。 受驱原子完全忽略 coord.txt 中的初始坐标和 fix 约束,位置/速度由驱动力解析确定。 ## 动力学行为 原子 1 的受迫振动通过弹簧逐次传递给相邻原子,形成沿链传播的横波。由于横向振动的几何非线性(弹簧张力主要在 x 方向),z 方向有效刚度低,波速较慢,呈现 FPU 型非线性动力学特征。 ## 使用方法 ```bash cd examples/case05 python run_dynamics.py ``` 配置参数详见 `input/input.txt`,驱动力定义见 `input/driver.txt`,完整文档见 `doc/index.html`。