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 - 更新案例文档
This commit is contained in:
@@ -1,2 +1,2 @@
|
||||
bond_name k rest_length
|
||||
k1 50.0 1.0
|
||||
k1 100.0 1.0
|
||||
|
||||
@@ -1,61 +1,61 @@
|
||||
n mass radius x y z vx vy vz fix_x fix_y fix_z
|
||||
1 1 0.1 0 0 1 0 0 0 1 1 0
|
||||
2 1 0.1 1 0 0 0 0 0 1 1 0
|
||||
3 1 0.1 2 0 0 0 0 0 1 1 0
|
||||
4 1 0.1 3 0 0 0 0 0 1 1 0
|
||||
5 1 0.1 4 0 0 0 0 0 1 1 0
|
||||
6 1 0.1 5 0 0 0 0 0 1 1 0
|
||||
7 1 0.1 6 0 0 0 0 0 1 1 0
|
||||
8 1 0.1 7 0 0 0 0 0 1 1 0
|
||||
9 1 0.1 8 0 0 0 0 0 1 1 0
|
||||
10 1 0.1 9 0 0 0 0 0 1 1 0
|
||||
11 1 0.1 10 0 0 0 0 0 1 1 0
|
||||
12 1 0.1 11 0 0 0 0 0 1 1 0
|
||||
13 1 0.1 12 0 0 0 0 0 1 1 0
|
||||
14 1 0.1 13 0 0 0 0 0 1 1 0
|
||||
15 1 0.1 14 0 0 0 0 0 1 1 0
|
||||
16 1 0.1 15 0 0 0 0 0 1 1 0
|
||||
17 1 0.1 16 0 0 0 0 0 1 1 0
|
||||
18 1 0.1 17 0 0 0 0 0 1 1 0
|
||||
19 1 0.1 18 0 0 0 0 0 1 1 0
|
||||
20 1 0.1 19 0 0 0 0 0 1 1 0
|
||||
21 1 0.1 20 0 0 0 0 0 1 1 0
|
||||
22 1 0.1 21 0 0 0 0 0 1 1 0
|
||||
23 1 0.1 22 0 0 0 0 0 1 1 0
|
||||
24 1 0.1 23 0 0 0 0 0 1 1 0
|
||||
25 1 0.1 24 0 0 0 0 0 1 1 0
|
||||
26 1 0.1 25 0 0 0 0 0 1 1 0
|
||||
27 1 0.1 26 0 0 0 0 0 1 1 0
|
||||
28 1 0.1 27 0 0 0 0 0 1 1 0
|
||||
29 1 0.1 28 0 0 0 0 0 1 1 0
|
||||
30 1 0.1 29 0 0 0 0 0 1 1 0
|
||||
31 1 0.1 30 0 0 0 0 0 1 1 0
|
||||
32 1 0.1 31 0 0 0 0 0 1 1 0
|
||||
33 1 0.1 32 0 0 0 0 0 1 1 0
|
||||
34 1 0.1 33 0 0 0 0 0 1 1 0
|
||||
35 1 0.1 34 0 0 0 0 0 1 1 0
|
||||
36 1 0.1 35 0 0 0 0 0 1 1 0
|
||||
37 1 0.1 36 0 0 0 0 0 1 1 0
|
||||
38 1 0.1 37 0 0 0 0 0 1 1 0
|
||||
39 1 0.1 38 0 0 0 0 0 1 1 0
|
||||
40 1 0.1 39 0 0 0 0 0 1 1 0
|
||||
41 1 0.1 40 0 0 0 0 0 1 1 0
|
||||
42 1 0.1 41 0 0 0 0 0 1 1 0
|
||||
43 1 0.1 42 0 0 0 0 0 1 1 0
|
||||
44 1 0.1 43 0 0 0 0 0 1 1 0
|
||||
45 1 0.1 44 0 0 0 0 0 1 1 0
|
||||
46 1 0.1 45 0 0 0 0 0 1 1 0
|
||||
47 1 0.1 46 0 0 0 0 0 1 1 0
|
||||
48 1 0.1 47 0 0 0 0 0 1 1 0
|
||||
49 1 0.1 48 0 0 0 0 0 1 1 0
|
||||
50 1 0.1 49 0 0 0 0 0 1 1 0
|
||||
51 1 0.1 50 0 0 0 0 0 1 1 0
|
||||
52 1 0.1 51 0 0 0 0 0 1 1 0
|
||||
53 1 0.1 52 0 0 0 0 0 1 1 0
|
||||
54 1 0.1 53 0 0 0 0 0 1 1 0
|
||||
55 1 0.1 54 0 0 0 0 0 1 1 0
|
||||
56 1 0.1 55 0 0 0 0 0 1 1 0
|
||||
57 1 0.1 56 0 0 0 0 0 1 1 0
|
||||
58 1 0.1 57 0 0 0 0 0 1 1 0
|
||||
59 1 0.1 58 0 0 0 0 0 1 1 0
|
||||
60 1 0.1 59 0 0 0 0 0 1 1 0
|
||||
1 1 0.1 0 0 1 0 0 0 0 1 1
|
||||
2 1 0.1 1 0 0 0 0 0 0 1 1
|
||||
3 1 0.1 2 0 0 0 0 0 0 1 1
|
||||
4 1 0.1 3 0 0 0 0 0 0 1 1
|
||||
5 1 0.1 4 0 0 0 0 0 0 1 1
|
||||
6 1 0.1 5 0 0 0 0 0 0 1 1
|
||||
7 1 0.1 6 0 0 0 0 0 0 1 1
|
||||
8 1 0.1 7 0 0 0 0 0 0 1 1
|
||||
9 1 0.1 8 0 0 0 0 0 0 1 1
|
||||
10 1 0.1 9 0 0 0 0 0 0 1 1
|
||||
11 1 0.1 10 0 0 0 0 0 0 1 1
|
||||
12 1 0.1 11 0 0 0 0 0 0 1 1
|
||||
13 1 0.1 12 0 0 0 0 0 0 1 1
|
||||
14 1 0.1 13 0 0 0 0 0 0 1 1
|
||||
15 1 0.1 14 0 0 0 0 0 0 1 1
|
||||
16 1 0.1 15 0 0 0 0 0 0 1 1
|
||||
17 1 0.1 16 0 0 0 0 0 0 1 1
|
||||
18 1 0.1 17 0 0 0 0 0 0 1 1
|
||||
19 1 0.1 18 0 0 0 0 0 0 1 1
|
||||
20 1 0.1 19 0 0 0 0 0 0 1 1
|
||||
21 1 0.1 20 0 0 0 0 0 0 1 1
|
||||
22 1 0.1 21 0 0 0 0 0 0 1 1
|
||||
23 1 0.1 22 0 0 0 0 0 0 1 1
|
||||
24 1 0.1 23 0 0 0 0 0 0 1 1
|
||||
25 1 0.1 24 0 0 0 0 0 0 1 1
|
||||
26 1 0.1 25 0 0 0 0 0 0 1 1
|
||||
27 1 0.1 26 0 0 0 0 0 0 1 1
|
||||
28 1 0.1 27 0 0 0 0 0 0 1 1
|
||||
29 1 0.1 28 0 0 0 0 0 0 1 1
|
||||
30 1 0.1 29 0 0 0 0 0 0 1 1
|
||||
31 1 0.1 30 0 0 0 0 0 0 1 1
|
||||
32 1 0.1 31 0 0 0 0 0 0 1 1
|
||||
33 1 0.1 32 0 0 0 0 0 0 1 1
|
||||
34 1 0.1 33 0 0 0 0 0 0 1 1
|
||||
35 1 0.1 34 0 0 0 0 0 0 1 1
|
||||
36 1 0.1 35 0 0 0 0 0 0 1 1
|
||||
37 1 0.1 36 0 0 0 0 0 0 1 1
|
||||
38 1 0.1 37 0 0 0 0 0 0 1 1
|
||||
39 1 0.1 38 0 0 0 0 0 0 1 1
|
||||
40 1 0.1 39 0 0 0 0 0 0 1 1
|
||||
41 1 0.1 40 0 0 0 0 0 0 1 1
|
||||
42 1 0.1 41 0 0 0 0 0 0 1 1
|
||||
43 1 0.1 42 0 0 0 0 0 0 1 1
|
||||
44 1 0.1 43 0 0 0 0 0 0 1 1
|
||||
45 1 0.1 44 0 0 0 0 0 0 1 1
|
||||
46 1 0.1 45 0 0 0 0 0 0 1 1
|
||||
47 1 0.1 46 0 0 0 0 0 0 1 1
|
||||
48 1 0.1 47 0 0 0 0 0 0 1 1
|
||||
49 1 0.1 48 0 0 0 0 0 0 1 1
|
||||
50 1 0.1 49 0 0 0 0 0 0 1 1
|
||||
51 1 0.1 50 0 0 0 0 0 0 1 1
|
||||
52 1 0.1 51 0 0 0 0 0 0 1 1
|
||||
53 1 0.1 52 0 0 0 0 0 0 1 1
|
||||
54 1 0.1 53 0 0 0 0 0 0 1 1
|
||||
55 1 0.1 54 0 0 0 0 0 0 1 1
|
||||
56 1 0.1 55 0 0 0 0 0 0 1 1
|
||||
57 1 0.1 56 0 0 0 0 0 0 1 1
|
||||
58 1 0.1 57 0 0 0 0 0 0 1 1
|
||||
59 1 0.1 58 0 0 0 0 0 0 1 1
|
||||
60 1 0.1 59 0 0 0 0 0 1 1 1
|
||||
|
||||
@@ -1,2 +1,2 @@
|
||||
n amp_x amp_y amp_z freq_x freq_y freq_z phi_x phi_y phi_z period
|
||||
1 0 0 1 0 0 0.1 0 0 90 all
|
||||
1 0.5 0 0 1 0 0 0 0 0 all
|
||||
@@ -5,15 +5,16 @@
|
||||
# ── 流程控制 ──────────────────────────────────
|
||||
# 每步用 0/1 单独开关,1=执行,0=跳过
|
||||
# 依赖关系:抽帧依赖模拟结果,绘图依赖模拟+抽帧
|
||||
step_simulate: 1 # 运行物理模拟 → output/trajectory.txt
|
||||
step_sample: 1 # 抽帧 → output/display.txt
|
||||
step_simulate: 0 # 运行物理模拟 → output/trajectory.txt
|
||||
step_sample: 0 # 抽帧 → output/display.txt
|
||||
step_plot: 0 # 绘制轨迹/能量图 → output/trajectory_plots.png
|
||||
step_animation: 1 # 自动播放 VisPy 3D 动画窗口(需安装 vispy)
|
||||
step_animation: 0 # 自动播放 VisPy 3D 动画窗口(需安装 vispy)
|
||||
step_plot_wave: 1 # 绘制波形图
|
||||
force_calc: 0 # 强制重新计算:1=跳过缓存强算,0=自动使用已有输出
|
||||
|
||||
# ── 计算引擎 ──────────────────────────────────
|
||||
# 可选: python, c, cpp, fortran, java
|
||||
engine: python # 默认使用 Python 引擎
|
||||
engine: python # 默认使用 python 引擎
|
||||
|
||||
# ── 盒子 ──────────────────────────────────────
|
||||
box_a: 80.0 # 立方体半边长,粒子被限制在 [-box_a, box_a]³ 内
|
||||
@@ -60,7 +61,7 @@ warmup_steps: 0 # 默认 0(立即开始记录)
|
||||
|
||||
# 总模拟时间(秒),程序自动计算 NT = T_total / DT
|
||||
# 如果同时指定了 NT,以 NT 为准
|
||||
T_total: 100.0
|
||||
T_total: 10.0
|
||||
|
||||
# 抽帧间隔(每 NSTEP 步取一帧用于动画)
|
||||
NSTEP: 50
|
||||
|
||||
Reference in New Issue
Block a user