case06: 原子数 60→120,更新文档
This commit is contained in:
@@ -6,7 +6,7 @@
|
||||
|
||||
| 参数 | 值 |
|
||||
|---|---|
|
||||
| 原子数 | 60 |
|
||||
| 原子数 | 120 |
|
||||
| 排列 | 沿 x 轴等间距排列,间距为 1 |
|
||||
| 约束 | 原子**沿 z 方向自由振动**(fix_x=1, fix_y=1, fix_z=0),x, y 锁定 |
|
||||
| 弹簧 | 劲度系数 k=1.0,原长 L₀=1.0 |
|
||||
|
||||
@@ -155,7 +155,7 @@
|
||||
<!-- ============================================================ -->
|
||||
<header class="hero">
|
||||
<h1>一维原子链驱动力学模拟</h1>
|
||||
<p class="subtitle">60 个原子沿 x 轴排列 · 弹簧连接 · z 方向受迫振动</p>
|
||||
<p class="subtitle">120 个原子沿 x 轴排列 · 弹簧连接 · z 方向受迫振动</p>
|
||||
<span class="badge">case06 · examples/case06</span>
|
||||
</header>
|
||||
|
||||
@@ -185,7 +185,7 @@
|
||||
|
||||
<div class="card">
|
||||
<h3>1.1 一维原子链</h3>
|
||||
<p>60 个原子沿 <strong>x 轴</strong> 等间距排列,原子间距为 1。相邻原子之间用 <strong>理想弹簧</strong> 连接,弹簧的劲度系数 <em>k</em> = 1.0,原长 <em>L</em>₀ = 1.0(与原子间距一致,初始状态弹簧无拉伸)。</p>
|
||||
<p>120 个原子沿 <strong>x 轴</strong> 等间距排列,原子间距为 1。相邻原子之间用 <strong>理想弹簧</strong> 连接,弹簧的劲度系数 <em>k</em> = 1.0,原长 <em>L</em>₀ = 1.0(与原子间距一致,初始状态弹簧无拉伸)。</p>
|
||||
<p>每个原子被限制在 <strong>z 方向</strong> 自由振动,x 和 y 方向锁定(<code>fix_x=1, fix_y=1, fix_z=0</code>)。</p>
|
||||
</div>
|
||||
|
||||
@@ -415,13 +415,13 @@ step_animation: 1 # 播放动画</pre>
|
||||
<pre>case06/
|
||||
├── input/
|
||||
│ ├── input.txt # 主配置文件(YAML 格式)
|
||||
│ ├── coord.txt # 原子坐标(60 个原子)
|
||||
│ ├── coord.txt # 原子坐标(120 个原子)
|
||||
│ ├── connection.txt # 弹簧连接关系(59 条键)
|
||||
│ ├── bond.txt # 弹簧参数(k=1.0, L₀=1.0)
|
||||
│ └── <strong>driver.txt</strong> # <span class="cm">驱动力定义(本案例新增)</span>
|
||||
├── output/
|
||||
│ ├── trajectory.txt # 全量轨迹数据(10000 步 × 60 原子)
|
||||
│ ├── display.txt # 抽帧后的动画数据(200 帧 × 60 原子)
|
||||
│ ├── trajectory.txt # 全量轨迹数据(50000 步 × 120 原子)
|
||||
│ ├── display.txt # 抽帧后的动画数据(500 帧 × 120 原子)
|
||||
│ ├── dynamics.log # 计算日志
|
||||
│ ├── animation.log # 动画启动日志(闪退时排查用)
|
||||
│ └── wave_animation.gif # 波形能量动画(step_plot_wave=1 时生成)
|
||||
|
||||
@@ -58,3 +58,63 @@ n1 n2 bond_name
|
||||
57 58 k1
|
||||
58 59 k1
|
||||
59 60 k1
|
||||
60 61 k1
|
||||
61 62 k1
|
||||
62 63 k1
|
||||
63 64 k1
|
||||
64 65 k1
|
||||
65 66 k1
|
||||
66 67 k1
|
||||
67 68 k1
|
||||
68 69 k1
|
||||
69 70 k1
|
||||
70 71 k1
|
||||
71 72 k1
|
||||
72 73 k1
|
||||
73 74 k1
|
||||
74 75 k1
|
||||
75 76 k1
|
||||
76 77 k1
|
||||
77 78 k1
|
||||
78 79 k1
|
||||
79 80 k1
|
||||
80 81 k1
|
||||
81 82 k1
|
||||
82 83 k1
|
||||
83 84 k1
|
||||
84 85 k1
|
||||
85 86 k1
|
||||
86 87 k1
|
||||
87 88 k1
|
||||
88 89 k1
|
||||
89 90 k1
|
||||
90 91 k1
|
||||
91 92 k1
|
||||
92 93 k1
|
||||
93 94 k1
|
||||
94 95 k1
|
||||
95 96 k1
|
||||
96 97 k1
|
||||
97 98 k1
|
||||
98 99 k1
|
||||
99 100 k1
|
||||
100 101 k1
|
||||
101 102 k1
|
||||
102 103 k1
|
||||
103 104 k1
|
||||
104 105 k1
|
||||
105 106 k1
|
||||
106 107 k1
|
||||
107 108 k1
|
||||
108 109 k1
|
||||
109 110 k1
|
||||
110 111 k1
|
||||
111 112 k1
|
||||
112 113 k1
|
||||
113 114 k1
|
||||
114 115 k1
|
||||
115 116 k1
|
||||
116 117 k1
|
||||
117 118 k1
|
||||
118 119 k1
|
||||
119 120 k1
|
||||
|
||||
@@ -59,3 +59,63 @@ n mass radius x y z vx vy vz fix_x fix_y fix_z
|
||||
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
|
||||
61 1 0.1 60 0 0 0 0 0 1 1 0
|
||||
62 1 0.1 61 0 0 0 0 0 1 1 0
|
||||
63 1 0.1 62 0 0 0 0 0 1 1 0
|
||||
64 1 0.1 63 0 0 0 0 0 1 1 0
|
||||
65 1 0.1 64 0 0 0 0 0 1 1 0
|
||||
66 1 0.1 65 0 0 0 0 0 1 1 0
|
||||
67 1 0.1 66 0 0 0 0 0 1 1 0
|
||||
68 1 0.1 67 0 0 0 0 0 1 1 0
|
||||
69 1 0.1 68 0 0 0 0 0 1 1 0
|
||||
70 1 0.1 69 0 0 0 0 0 1 1 0
|
||||
71 1 0.1 70 0 0 0 0 0 1 1 0
|
||||
72 1 0.1 71 0 0 0 0 0 1 1 0
|
||||
73 1 0.1 72 0 0 0 0 0 1 1 0
|
||||
74 1 0.1 73 0 0 0 0 0 1 1 0
|
||||
75 1 0.1 74 0 0 0 0 0 1 1 0
|
||||
76 1 0.1 75 0 0 0 0 0 1 1 0
|
||||
77 1 0.1 76 0 0 0 0 0 1 1 0
|
||||
78 1 0.1 77 0 0 0 0 0 1 1 0
|
||||
79 1 0.1 78 0 0 0 0 0 1 1 0
|
||||
80 1 0.1 79 0 0 0 0 0 1 1 0
|
||||
81 1 0.1 80 0 0 0 0 0 1 1 0
|
||||
82 1 0.1 81 0 0 0 0 0 1 1 0
|
||||
83 1 0.1 82 0 0 0 0 0 1 1 0
|
||||
84 1 0.1 83 0 0 0 0 0 1 1 0
|
||||
85 1 0.1 84 0 0 0 0 0 1 1 0
|
||||
86 1 0.1 85 0 0 0 0 0 1 1 0
|
||||
87 1 0.1 86 0 0 0 0 0 1 1 0
|
||||
88 1 0.1 87 0 0 0 0 0 1 1 0
|
||||
89 1 0.1 88 0 0 0 0 0 1 1 0
|
||||
90 1 0.1 89 0 0 0 0 0 1 1 0
|
||||
91 1 0.1 90 0 0 0 0 0 1 1 0
|
||||
92 1 0.1 91 0 0 0 0 0 1 1 0
|
||||
93 1 0.1 92 0 0 0 0 0 1 1 0
|
||||
94 1 0.1 93 0 0 0 0 0 1 1 0
|
||||
95 1 0.1 94 0 0 0 0 0 1 1 0
|
||||
96 1 0.1 95 0 0 0 0 0 1 1 0
|
||||
97 1 0.1 96 0 0 0 0 0 1 1 0
|
||||
98 1 0.1 97 0 0 0 0 0 1 1 0
|
||||
99 1 0.1 98 0 0 0 0 0 1 1 0
|
||||
100 1 0.1 99 0 0 0 0 0 1 1 0
|
||||
101 1 0.1 100 0 0 0 0 0 1 1 0
|
||||
102 1 0.1 101 0 0 0 0 0 1 1 0
|
||||
103 1 0.1 102 0 0 0 0 0 1 1 0
|
||||
104 1 0.1 103 0 0 0 0 0 1 1 0
|
||||
105 1 0.1 104 0 0 0 0 0 1 1 0
|
||||
106 1 0.1 105 0 0 0 0 0 1 1 0
|
||||
107 1 0.1 106 0 0 0 0 0 1 1 0
|
||||
108 1 0.1 107 0 0 0 0 0 1 1 0
|
||||
109 1 0.1 108 0 0 0 0 0 1 1 0
|
||||
110 1 0.1 109 0 0 0 0 0 1 1 0
|
||||
111 1 0.1 110 0 0 0 0 0 1 1 0
|
||||
112 1 0.1 111 0 0 0 0 0 1 1 0
|
||||
113 1 0.1 112 0 0 0 0 0 1 1 0
|
||||
114 1 0.1 113 0 0 0 0 0 1 1 0
|
||||
115 1 0.1 114 0 0 0 0 0 1 1 0
|
||||
116 1 0.1 115 0 0 0 0 0 1 1 0
|
||||
117 1 0.1 116 0 0 0 0 0 1 1 0
|
||||
118 1 0.1 117 0 0 0 0 0 1 1 0
|
||||
119 1 0.1 118 0 0 0 0 0 1 1 0
|
||||
120 1 0.1 119 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 0.5 0 0 0.1 0 0 90 all
|
||||
1 0 0 2.0 0 0 0.1 0 0 90 all
|
||||
|
||||
@@ -8,11 +8,11 @@
|
||||
step_simulate: 1 # 运行物理模拟 → output/trajectory.txt
|
||||
step_sample: 1 # 抽帧 → output/display.txt
|
||||
step_plot: 0 # 绘制轨迹/能量图 → output/trajectory_plots.png
|
||||
step_plot_wave: 0 # 绘制波形能量动画
|
||||
plot_wave_save_gif: 0 # 输出波形 GIF(需 step_plot_wave=1)
|
||||
plot_wave_save_mp4: 0 # 输出波形 MP4(需 step_plot_wave=1)
|
||||
step_animation: 1 # 自动播放 VisPy 3D 动画窗口(需安装 vispy)
|
||||
step_plot_wave: 0 # 绘制波形能量动画
|
||||
force_calc: 0 # 强制重新计算:1=跳过缓存强算,0=自动使用已有输出
|
||||
plot_wave_save_gif: 1 # 输出波形 GIF(需 step_plot_wave=1)
|
||||
plot_wave_save_mp4: 1 # 输出波形 MP4(需 step_plot_wave=1)
|
||||
|
||||
# ── 计算引擎 ──────────────────────────────────
|
||||
# 可选: python, c, cpp, fortran, java
|
||||
@@ -35,14 +35,14 @@ plot_atom: 1
|
||||
|
||||
# ── 物理参数 ──────────────────────────────────
|
||||
# 三个方向分量分别对应 x, y, z
|
||||
G: [0.0, 0.0, 0.0] # 重力场分量 (m/s²)
|
||||
B: [0.0, 0.0, 0.0] # 阻尼分量
|
||||
G: [0.00, 0.00, 0.00] # 重力场分量 (m/s²)
|
||||
B: [0.02, 0.00, 0.02] # 阻尼分量
|
||||
|
||||
# ── 力开关(0=关闭, 1=开启)──────────────────
|
||||
gravity_field: 0 # 均匀重力场 (G)
|
||||
gravity_interaction: 0 # 原子间万有引力
|
||||
elastic_force: 1 # 弹簧键力
|
||||
damping_force: 0 # 阻尼 (B)
|
||||
damping_force: 1 # 阻尼 (B)
|
||||
driving_force: 1 # 驱动力(需 driver_file 定义)
|
||||
#
|
||||
gravity_strength: 1.0 # 万有引力强度(仅 gravity_interaction=1 时有效)
|
||||
@@ -63,10 +63,10 @@ warmup_steps: 0 # 默认 0(立即开始记录)
|
||||
|
||||
# 总模拟时间(秒),程序自动计算 NT = T_total / DT
|
||||
# 如果同时指定了 NT,以 NT 为准
|
||||
T_total: 50.0
|
||||
T_total: 2.0
|
||||
|
||||
# 抽帧间隔(每 NSTEP 步取一帧用于动画)
|
||||
NSTEP: 100
|
||||
NSTEP: 10
|
||||
|
||||
# ── 时间步长 ──────────────────────────────────
|
||||
DT: 0.001 # 时间步长 (s)
|
||||
|
||||
Reference in New Issue
Block a user