第1章 基礎... 1
1.1 你好,流體模擬... 1
1.1.1 定義狀態... 2
1.1.2 計算運動... 3
1.1.3 邊界處理... 5
1.1.4 可視化... 6
1.1.5 最終結果... 13
1.2 如何閱讀本書... 13
1.2.1 獲取代碼... 13
1.2.2 閱讀代碼... 14
1.2.3 閱讀數學表達式... 21
1.3 數學... 21
1.3.1 坐標系... 22
1.3.2 向量... 22
1.3.3 矩陣... 34
1.3.4 線性方程組... 38
1.3.5 場... 43
1.3.6 插值... 57
1.4 幾何... 64
1.4.1 幾何表面... 64
1.4.2 隱式表面... 68
1.4.3 從隱式表面到顯式表面... 71
1.4.4 從顯式表面到隱式表面... 72
1.5 動畫... 73
1.6 基於物理的動畫... 78
1.6.1 基礎入門... 78
1.6.2 物理動畫示例... 80
1.7 流體動畫... 93
1.7.1 重力... 94
1.7.2 壓力... 95
1.7.3 黏性力... 97
1.7.4 密度約束... 98
第2章 基於粒子的模擬方法... 100
2.1 像修拉一樣看世界... 100
2.2 數據結構... 101
2.2.1 粒子系統數據... 101
2.2.2 粒子系統案例... 104
2.2.3 鄰居搜索... 110
2.3 光滑粒子法... 117
2.3.1 基礎... 118
2.3.2 動力學... 132
2.3.3 結果和局限性... 139
2.4 具有較大時間步長的不可壓縮SPH.. 141
2.4.1 預測與校正... 142
2.4.2 實現... 142
2.4.3 結果... 149
2.5 處理... 151
2.6 討論和延伸閱讀... 157
第3章 基於網格的模擬方法... 159
3.1 像素化世界... 159
3.2 數據結構... 160
3.2.1 網格類型... 161
3.2.2 網格系統數據... 169
3.3 微分算子... 172
3.3.1 有限差分... 172
3.3.2 梯度... 174
3.3.3 散度... 176
3.3.4 旋度... 178
3.3.5 拉普拉斯算子... 181
3.4 流體模擬... 182
3.4.1 碰撞處理... 184
3.4.2 對流... 190
3.4.3 重力... 201
3.4.4 黏性力... 201
3.4.5 壓力與不可壓性... 214
3.5 煙霧模擬... 223
3.5.1 浮力... 224
3.5.2 對流與耗散... 225
3.6 帶界面的流體... 226
3.6.1 在網格上定義界面... 226
3.6.2 自由界面流動... 233
3.6.3 結果... 243
3.7 討論和延伸閱讀... 245
第4章 混合求解器... 246
4.1 為什麼要混合... 246
4.2 胞中粒子法... 246
4.2.1 從粒子到網格的轉換... 249
4.2.2 從網格到粒子的轉換... 250
4.2.3 移動粒子... 251
4.2.4 結果... 252
4.3 流體隱式粒子法... 253
4.4 其他方法... 256
4.4.1 粒子水平集法... 256
4.4.2 渦旋粒子法... 257
4.5 討論和延伸閱讀... 257
附錄A 基礎知識增補... 259
A.1 共軛梯度和預條件共軛梯度的實現... 259
A.2 自適應時間步長... 264
附錄B 基於粒子的模擬方法增補... 266
B.1 SPH核函數... 266
B.2 PCISPH推導... 267
附錄C 基於網格的模擬方法增補... 271
C.1 網格上的向量與矩陣... 271
C.2 迭代求解器... 274
C.2.1 雅可比方法... 274
C.2.2 高斯-賽德爾方法... 276
C.2.3 共軛梯度法... 277