admin
|
c3e50d265d
|
ui: 缩小 ball_info 字体 28 → 18,适配更多信息显示
|
2026-06-12 07:07:26 +08:00 |
|
admin
|
7417d47658
|
perf: 重写 load_display_txt 使用 np.genfromtxt 批量解析
旧实现逐行 split()+float() 解析数据行要几十秒,
新实现将数据行收集后用 np.genfromtxt 一次性批量解析,
加载 200帧×120原子 仅需 0.087s(比之前快 100x+)。
|
2026-06-12 07:01:52 +08:00 |
|
admin
|
0c332b7dfc
|
feat: display.txt 新增 dynamic_steps 头字段记录实际计算步数
|
2026-06-12 06:47:17 +08:00 |
|
admin
|
9d1f84d2bf
|
refactor: 引擎直接抽帧 + 新 display.txt 纯文本格式 + save_trajectory 开关
核心变更:
1. compute.py: run_simulation 直接按 NSTEP 抽帧写 display.txt(新格式)
- 新格式:纯文本,帧 1→n 分块,每行: n x y z vx vy vz
- 新函数 save_display_txt() / load_display_txt()
- save_trajectory 参数(默认0=不保留 trajectory.txt)
2. dynamics.py: 移除旧 JSON 采样逻辑,自动检测 display.txt
- Python 引擎直接读取引擎输出的 display.txt
- 外部引擎仍写 trajectory.txt,自动抽帧转 display.txt
3. draw.py: 适配 load_display_txt() 新格式
4. case06/input.txt: 添加 save_trajectory: 0, step_sample: 0
TODO: 外部引擎(C/C++/Fortran)内部抽帧写 display.txt
TODO: plot_wave.py 适配新格式
TODO: 其他案例 input.txt 更新默认值
|
2026-06-12 06:36:50 +08:00 |
|
admin
|
c158c74609
|
perf: 降低 JSON 输出精度 15→8 位 + 添加 I/O 阶段提示
- C/C++/Fortran 引擎:%.15g/setprecision(15)/g0 → %.8g/g0.8
- 添加 "正在写入轨迹数据…" 提示,说明 100% 后的等待原因
- trajectory.txt 文件从 419MB → 407MB(仍有优化空间)
|
2026-06-12 05:53:27 +08:00 |
|
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
|
8261017879
|
docs: 添加 examples/Readme.md 总览(6个案例介绍)
|
2026-06-11 13:32:23 +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 |
|
admin
|
6da82de49b
|
docs: 更新 case05 Readme.md —— 驱动力描述、使用说明
|
2026-06-10 15:42:34 +08:00 |
|
admin
|
854f00ae44
|
feat: 增加驱动力系统、Marker渲染模式、动画防闪退、案例文档
- 新增 driving_force 驱动力系统(driver.txt 定义,支持周期控制)
- 新增 use_marker 渲染开关(GPU实例化点精灵,提升大量原子性能)
- 修复动画闪退:独立控制台、错误日志、启动存活检测
- 重绘 draw.py 架构:双渲染模式 + 预分配键线缓冲区
- 修复 raw trajectory 采样时间变量遮蔽 bug
- 重构 case05: 60原子一维链 + 驱动力 + 完整案例文档
- 修复所有案例 Readme.md 编码(GBK → UTF-8)
- 所有 input.txt 新增 driver_file / driving_force / use_marker 参数
|
2026-06-10 15:34:53 +08:00 |
|
admin
|
5de80d4f7e
|
modified: CMakeLists.txt
modified: INSTALL.md
modified: README.md
modified: build_release_zip.py
modified: compute.py
new file: doc/index.html
modified: dynamics.py
modified: engines/c/main.c
modified: engines/cpp/main.cpp
modified: engines/fortran/main.f90
modified: examples/case01/input/coord.txt
renamed: examples/case01/input/parameters.yaml -> examples/case01/input/input.txt
modified: examples/case01/run_dynamics.py
new file: examples/case02/input/bond.txt
new file: examples/case02/input/connection.txt
new file: examples/case02/input/coord.txt
new file: examples/case02/input/input.txt
new file: examples/case02/run_dynamics.py
|
2026-05-20 16:03:59 +08:00 |
|
admin
|
45513fe334
|
init
|
2026-05-17 08:47:25 +08:00 |
|