admin
|
b95a3579fc
|
feat: move_camera.txt 支持 all 关键词表示全程执行
在帧位置写 all 表示该段对所有帧生效:
all vx=0.1 ry=0.5 # 全程缓慢平移 + 旋转
等同于 start=0, end=INF,与普通区间段一样支持时间交叠。
|
2026-06-12 08:08:36 +08:00 |
|
admin
|
e40f7a49e4
|
feat: move_camera.txt 改为速度段格式驱动相机运动
格式:
1-60 vx=1.0 rx=10 # 1-60帧:x平移1/帧 + 绕x转10°/帧
30-90 vy=2.0 ry=20 rz=10 # 30-90帧:y平移2/帧 + 绕y转20°/帧 + 绕z转10°/帧
draw.py 每帧累加平移速度修改center,累加旋转速度修改
elevation/azimuth,实现连续平滑的相机运动。
|
2026-06-12 07:58:08 +08:00 |
|
admin
|
22b94011ee
|
feat: 运动相机支持 + move_camera.txt 关键帧驱动
input.txt 新增:
move_camera: 0 # 0=固定视角, 1=按 move_camera.txt 运动
move_camera.txt 格式(4列:帧号 距离 俯仰角 方位角):
0 40.0 0 0
100 80.0 -30 180
200 40.0 0 360
display.txt header 传递 camera_keyframes JSON 数组,
draw.py 按帧时间线性插值驱动相机运动(循环播放)。
|
2026-06-12 07:52:06 +08:00 |
|
admin
|
f1afb7c479
|
feat: 摄像机初始位置可在 input.txt 配置
新增 input.txt 字段:
camera_distance: 40.0 # 到场景中心的距离
camera_elevation: 0 # 俯仰角
camera_azimuth: 0 # 方位角
通过 display.txt header 传递到 draw.py,
不再硬编码在 draw.py 中。
|
2026-06-12 07:48:37 +08:00 |
|
admin
|
757a891a43
|
feat: display.txt 传递原子半径数组,draw.py 读取 per-atom 半径
之前所有原子使用统一的 ball_radius(来自 input.txt),
现在 display.txt header 包含 atom_radii 字段(逗号分隔
的半径数组),draw.py 据此为每个原子设置独立半径。
fallback:若没有 atom_radii 字段,仍使用 ball_radius。
|
2026-06-12 07:46:28 +08:00 |
|
admin
|
466a301d34
|
fix: alpha numpy 数组格式化问题导致逗号丢失
trajectory.txt 中的 alpha 以 numpy 数组形式加载,
str() 后变成 "[0. 0. 0. 0. 0. 0.]"(无逗号),
draw.py parse 不成功回退为默认 0.2。
新增 _fmt_alpha() 统一格式化为逗号分隔字符串。
|
2026-06-12 07:28:05 +08:00 |
|
admin
|
54aa20d7c5
|
fix: display.txt 缺失 alpha 透明度参数,draw.py 读取不到
alpha(盒子透明度)未写入 display.txt header,
draw.py 回退到默认 0.2 而非 input.txt 配置值。
现在 alpha 通过 header 字段正确传递。
Python 引擎:alpha 支持单值或数组 → 逗号分隔字符串
外部引擎:从 trajectory.txt 读取 alpha 值
|
2026-06-12 07:24:38 +08:00 |
|
admin
|
6b5e12da46
|
fix: display.txt 丢失 use_marker 导致强制使用 Sphere 渲染模式
新格式 display.txt 未包含 use_marker 字段,draw.py 中
USE_MARKER 被硬编码为 0(Sphere 模式),对 120 个原子
每帧更新 120 次 STTransform 极慢。
修复:将 use_marker 加入 display.txt header,draw.py 从
header 读取而非硬编码。case06 配置 use_marker: 1 会
自动启用 Marker(GPU 实例化)模式,动画流畅。
|
2026-06-12 07:04:29 +08:00 |
|
admin
|
a3fa8b90f6
|
feat: display.txt 新增 T_total 头字段(总模拟时间=NT×DT)
|
2026-06-12 06:55:38 +08:00 |
|
admin
|
ab3a847483
|
fix: display.txt 的 number of frames 改为实际抽帧数而非总步数
之前 number of frames 错误地填入了 record_steps(=NT),
实际应该填入 n_frames_actual(=NT/NSTEP)。如 NT=20000,
NSTEP=100 时抽得 200 帧,现在正确显示为 200。
总步数仍在 dynamic_steps 中记录。
|
2026-06-12 06:51:59 +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
|
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
|
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
|
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 |
|