Commit Graph

7 Commits

Author SHA1 Message Date
admin e353e04133 fix(compute): 校准测速使用真实临时目录替代 os.devnull
os.devnull 在 Windows 上为 NUL,外部引擎(C/C++/Fortran)
试图写入 NUL/trajectory.txt 会失败退出,导致校准时间
完全无效,进度条按错误估计跑(例如卡在 59% 不动)。

改为创建 _calib_out 临时目录,校准后清理。
现在进度条显示正确的剩余时间估计(如 [00:00<00:11])。
2026-06-11 19:25:26 +08:00
admin b783cbb981 fix(fortran): 修复 read_coord 中 line(0:0) 字符串越界导致崩溃
错误码 3221225785 (0xC0000005 = STATUS_ACCESS_VIOLATION) 由
read_coord 中列数统计的双重条件导致:
  line(i:i) /= ' ' .and. (i == 1 .or. line(i-1:i-1) == ' ')
Fortran 不保证 .or. 短路求值,当 i=1 时 line(0:0) 触发
内存越界。拆分为嵌套 if 块,确保只有在 i>1 时才访问
line(i-1:i-1)。
2026-06-11 19:11:34 +08:00
admin 2ce8ded482 case06: 原子数 60→120,更新文档 2026-06-11 18:44:59 +08:00
admin 586d7c29b2 case06: 原子数 60→120,更新文档 2026-06-11 18:43:35 +08:00
admin 20bfdf2f18 feat: 新增 plot_wave_save_gif/plot_wave_save_mp4 开关
- 所有 input.txt 新增 plot_wave_save_gif / plot_wave_save_mp4 参数
- dynamics.py 将参数传入 plot_wave()
- plot_wave.py 根据 save_gif/save_mp4 标志条件保存文件
- 默认均为 0(不输出文件,只显示动画窗口)
2026-06-11 13:31:33 +08:00
admin 131f52fe19 docs: case05纵波 + case06横波一维原子链
- 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)
2026-06-11 13:27:43 +08:00
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