admin
|
db50ac6d4d
|
feat: 外部引擎实时进度条 + C引擎read_bonds rewind修复
1. 引擎端:C/C++/Fortran 主循环每 1% 输出 progress 到 stdout
2. compute.py:读取 "[xxx] progress: N/total" 行更新 tqdm
3. 移除不准的时间估算逻辑,改用真实引擎进度
4. C引擎 read_bonds:rewind 后补 fgets 跳表头
5. gitignore 添加 output_test/
|
2026-06-11 21:36:30 +08:00 |
|
admin
|
9d5997afec
|
fix(c): read_bonds 中 rewind 后未跳过表头行导致成键数据全为空
rewind(f) 将文件指针拉回开头(含表头 'n1 n2 bond_name'),
后续 fscanf 试图将 'n1' 解析为 %d 全部失败,导致:
- bond_pairs 直接用未初始化的栈垃圾 → 随机索引
- bond_stiffness/rest_lengths 保持默认值 1.0/2.0
- 弹簧力无法正确传播 → 第一个原子动后后面全不动
修复:rewind 后加 fgets(line, ...) 再次跳过表头。
|
2026-06-11 19:38:10 +08:00 |
|
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 |
|