Files
dynamics/examples/case06/Readme.md
T
admin 80520590d1 feat: 新增波形能量动画系统 plot_wave.py
- 创建 plot_wave.py: 从 display.txt 读取原子位移数据
  绘制纵波(x) + 横波(y) + 横波(z) 波形随时间的动画
  同时绘制系统动能/弹性势能/总能量/输入功率(dE/dt)时变曲线
  输出 wave_animation.gif
- 所有 input.txt 新增 step_plot_wave: 0 开关
- case05 开启 step_plot_wave: 1
- dynamics.py disp_data 新增 bond_stiffness/bond_rest_lengths
- 更新案例文档
2026-06-11 12:39:46 +08:00

1.3 KiB
Raw Blame History

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 中的驱动力公式决定:

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 型非线性动力学特征。

使用方法

cd examples/case05
python run_dynamics.py

配置参数详见 input/input.txt,驱动力定义见 input/driver.txt,完整文档见 doc/index.html