第 6 章 软件工具(Software Tools)
作者
本章由 Juergen Geiser 与合作者共同撰写。§6.1 (r3t 软件) 是 Geiser 在 2008-2013 年间与德国 Heidelberg 大学 UG 团队 (Bastian 等, 见 [16]) 合作开发的; §6.2 (Multi-Opera 软件) 是 Geiser 与 Humboldt-Universität zu Berlin 的学生 Thomas Zacher 合作 (2012-2014)。附录 (List of Abbreviations, Symbols, Notations, Bibliography) 是 Geiser 自编。读者需要的预备: Ch 1-5 的全部内容, 以及至少一种 PDE 求解器的使用经验 (如 UG, COMSOL, MATLAB PDE Toolbox)。
内容概述
本章把 Ch 1-5 的算法实现为可执行软件, 分两大块: (1) §6.1 r3t — 工业级 C++ 输运-反应-吸附软件, 基于 UG (unstructured grids) 平台, 用于多相多尺度输运模拟; (2) §6.2 Multi-Opera — 学术级 Maple + MATLAB 6 个子包, 用于 Ch 4 的算法 benchmark。
r3t 名字来源于"Radionuclide, Reaction, Retardation and Transport", 是为德国核废料处置 (endlagersicherheit) 项目开发的输运-反应-吸附软件。模型方程 (6.1)–(6.4) 是 4 个耦合 PDE, 描述 mobile / immobile / adsorbed / immobile-adsorbed 4 相中的多组分输运-反应-衰变, 涉及核素链式衰变 (e.g. \(^{238}U \to ^{234}Th \to \dots \to ^{206}Pb\)) 和动力学吸附 (kinetic sorption)。r3t 与 UG 平台共享网格, 用 GMRES 求解刚性 ODE 系统, 适用于 2D / 3D 非结构网格。
Multi-Opera 是 Geiser 与 Zacher 在 2012-2014 间基于 MATLAB + Maple 开发的 6 个子包, 每个对应 Ch 4 的一个算法: - §6.2.1 Fluid Problems: Maple 程序, 解 §4.13 的多相输运-反应, 提供 immobile / linear / quad / general initial conditions / compound 多个解析子程序, 1D 解嵌入多维有限体积软件。 - §6.2.2 Stochastic Differential Equations: MATLAB 程序, 解 §4.4 的 Langevin 方程, 包含 Euler-Maruyama / Milstein / Iterative Splitting 三种方法, 标量 + 3D 矢量 + 真实参数三个版本。 - §6.2.3 Improvement via Zassenhaus: MATLAB 程序, 解 §4.11 的 disentanglement, 处理 2×2 / 10×10 矩阵和刚性问题, 与迭代分裂对比。 - §6.2.4 Maxwell Solver: MATLAB 程序, 解 §4.10 的 Maxwell + 动量方程耦合, FDTD 2D (Yee 网格) + 动量方程 + 迭代分裂。 - §6.2.5 Multiphase Solver: MATLAB 程序, 解 §4.6 的多相输运-反应, 单相 / 两相 / 多相, Lie-Trotter / Strang / Iterative Splitting 三种分裂对比。
附录: 缩写表 (BCH, BDF, CFD, CFL, CIC, CVD, DD, FDTD, HIPIMS, IOS, MAX-phase, MD, MQ, MULTI-OPERA, ODE, OFELI, PDE, PECVD, PIC, PID, PM, PVD, RBF, R3T, SiC, Ti3SiC2, UG), 符号表 (100+ 项), 模型符号 (R, u, g, v, D, λ, e, f, β), Bibliography (254+ 文献)。
核心方程与概念
§6.1.1 r3t 的多相输运模型 (6.1)–(6.4)
r3t 求解的多相多尺度输运模型由 4 个耦合 PDE 组成, 分别描述 4 个相区 (mobile / immobile / adsorbed / immobile-adsorbed) 的浓度 \(c^L_i, c^L_{i,im}, c^L_{i,ad}, c^L_{i,im,ad}\):
Mobile 相 (6.1): $$ \phi \partial_t c^L_i + \nabla \cdot (v c^L_i - D_e(i) \nabla c^L_i) = g(-c^L_i + c^L_{i,im}) + k_\alpha(-c^L_i + c^L_{i,ad}) - \lambda_{i,i} \phi c^L_i + \sum_{k=k(i)} \lambda_{i,k} \phi c^L_k + \tilde Q_i. $$ 即"对流-扩散 + 与 immobile 相交换 (\(g\)) + 与吸附相交换 (\(k_\alpha\)) + 衰变 (\(\lambda_{i,i}\)) + 上游链式衰变 (\(\lambda_{i,k}\)) + 源 (\(\tilde Q_i\))"。
Immobile 相 (6.2): $$ \phi \partial_t c^L_{i,im} = g(c^L_i - c^L_{i,im}) + k_\alpha(c^L_{i,im,ad} - c^L_{i,im}) - \lambda_{i,i} \phi c^L_{i,im} + \sum_{k=k(i)} \lambda_{i,k} \phi c^L_{k,im} + \tilde Q_{i,im}. $$ Adsorbed 相 (6.3): $$ \phi \partial_t c^L_{i,ad} = k_\alpha(c^L_i - c^L_{i,ad}) - \lambda_{i,i} \phi c^L_{i,ad} + \sum_{k=k(i)} \lambda_{i,k} \phi c^L_{k,ad} + \tilde Q_{i,ad}. $$ Immobile-Adsorbed 相 (6.4): $$ \phi \partial_t c^L_{i,im,ad} = k_\alpha(c^L_{i,im} - c^L_{i,im,ad}) - \lambda_{i,i} \phi c^L_{i,im,ad} + \sum_{k=k(i)} \lambda_{i,k} \phi c^L_{k,im,ad} + \tilde Q_{i,im,ad}. $$
参数表: - \(\phi\) — 有效孔隙度 (effective porosity, \([-]\)) - \(c^L_i\) — 第 \(i\) 个 gaseous species 在 plasma chamber 的浓度 (mol/cm³) - \(c^L_{i,im}\) — immobile zones 的浓度 - \(v\) — 速度场 (cm/nsec), divergence-free (\(\nabla \cdot v = 0\)) - \(D_e(i)\) — 元素特异性扩散-弥散张量 (cm²/nsec) - \(\lambda_{i,i}\) — 第 \(i\) 个 species 的衰变常数 (1/nsec) - \(g\) — mobile 与 immobile 之间的交换速率 (1/nsec) - \(k_\alpha\) — 动力学控制吸附的交换速率 (1/nsec) - \(\tilde Q_i\) — 源项 (mol/(cm³ nsec)) - \(i = 1, \ldots, M\), \(M\) 是组分数
链式衰变: 核素 \(i\) 衰变为 \(k\), 由 \(\lambda_{i,k}\) 控制, 这是链式核素衰变 (e.g. \(^{238}U \to ^{234}Th \to ^{234}Pa \to ^{234}U \to \dots \to ^{206}Pb\))。
§6.1.2 r3t 的软件结构
r3t 建立在 UG 平台 (Bastian-Birken-Eckstein-Johannsen-Lang-Neuss-Rentz-Reichert 1997, [16]) 之上: - 独立面向对象结构 ([243]) + 数值过程 ([221]): 每个数值过程覆盖一个模型方程 (Navier-Stokes, Convection-Diffusion, 等), 应用相应的离散化 + 求解方法 (有限体积 + GMRES 等) - 共享 UG 内核: 与其他基于 UG 的应用共享网格 + 输入/输出接口 - 灵活性: 通过数据概念 (data concept), 独立开发 + 集成
§6.2.1 Fluid Problems (Maple)
Maple 程序 (与 Zacher 合作) 解 §4.13 的多相输运-反应, 提供解析子程序: - immobile: 数值解 immobile 相反应 - linear: 解析解线性反应 \(c_i' = -k c_i\), 嵌入输运方程 - quad: 解析解二次反应 \(c_i' = -k c_i^2\), 嵌入输运方程 - general initial conditions for piecewise linear: 解析解带多项式初始条件 - all components initial conditions: 解析解带常数初始条件 - compound: 解析解带复合初始条件 - mass and residual mass: 1D 解析解, 嵌入多维有限体积软件
1D 解嵌入多维软件: 这是 Geiser §4.12 嵌入解析解思想的工程实现, 1D 解析解 \(c(t)\) 作为多维有限体积的精确参考, 用于校准 + 加速。
§6.2.2 Stochastic Differential Equations (MATLAB)
MATLAB 程序解 §4.4 的 Langevin 方程, 三个版本: - Langevin Equations.m: 标量 Langevin 方程 (4.72), 三种方法 (Euler-Maruyama, Milstein, Iterative Splitting) - Langevin Equations Matrix.m: 3 维矢量 Langevin 方程, 三种方法 - Langevin Equations realistic.m: 3 维矢量 Langevin 方程, 真实参数 (来自 Dimits-Cohen-Caflisch-Ricketson-Rosin 2012, [64]), 三种方法
验证: 强 / 弱收敛 (L2 范数 + mean + variance) 对比精确解 (若存在) 或参考解。
§6.2.3 Improvement via Zassenhaus (MATLAB)
MATLAB 程序解 §4.11 的 Zassenhaus 改进, 三个实验: - First Experiment 2x2: 2×2 矩阵 benchmark, Zassenhaus 改进精度 - First Experiment 10x10: 10×10 矩阵 benchmark - Second Experiment 2x2 stiff: 2×2 矩阵, 刚性强 (来自 Dekker-Verwer 1984, [63]) - Convection-Diffusion: 1D 输运-扩散, Zassenhaus 改进
验证: 解析解对比 (来自 Chin-Geiser 2011, [43] / Geiser 2010 [155])。
§6.2.4 Maxwell Solver (MATLAB)
MATLAB 程序解 §4.10 的 Maxwell + 动量方程耦合: - FDTD 2d.m: 2D Yee 网格 FDTD, 单纯 Maxwell 验证 - maxwell.m: 2D Maxwell 测试 - maxwell coupled.m: Maxwell + 动量耦合, 迭代分裂, 误差分析 - maxwell Error.m: 误差计算 - FIDOS 1.0: 解 Burgers 方程的辅助软件 (来自 Geiser 2010 [157])
耦合方程 (来自 §4.10, 4.305–4.318): 动量方程 (NS 类) + Maxwell (FDTD), 通过迭代分裂 + 解析嵌入动量解 (来自 [125]) 加速。
§6.2.5 Multiphase Solver (MATLAB)
MATLAB 程序解 §4.6 的多相输运-反应: - one phase.m: 单相输运-扩散-反应, Lie-Trotter / Strang / Iterative Splitting 对比 - two phase.m: 两相 (mobile + immobile), 三种分裂方法对比
验证: 1D 解析解对比 (来自 Geiser 2006 [143] / Geiser 2010 [166])。
附录: 缩写表 (24 项)
| 缩写 | 英文 | 中文 / 注释 |
|---|---|---|
| BCH | Baker-Campbell-Hausdorff formula | Baker-Campbell-Hausdorff 公式 (对易子展开) |
| BDF | Backward differentiation formula | 向后差分公式 (刚性 ODE) |
| CFD | Computational Fluid Dynamics | 计算流体力学 |
| CFL | Courant-Friedrichs-Lewy condition | 数值稳定条件 |
| CIC | Cloud-in-Cell function | 云-胞插值函数 (PIC 方法) |
| CVD | Chemical vapor deposition | 化学气相沉积 |
| DD | Domain decomposition | 区域分解 |
| FDTD | Finite Difference Time Domain method | 时域有限差分 (Yee 网格) |
| HIPIMS | High Power Impulse Magnetron Sputtering | 高功率脉冲磁控溅射 |
| IOS | Iterative operator splitting | 迭代算子分裂 |
| MAX-phase | M_n+1AX_n 三元层状陶瓷 | 兼具金属 / 陶瓷特性 |
| MD | Molecular dynamics | 分子动力学 |
| MQ | Multiquadric basis function | 多二次基函数 (RBF) |
| MULTI-OPERA | MATLAB 多尺度分裂软件 | 本书 §6.2 软件 |
| ODE | Ordinary differential equation | 常微分方程 |
| OFELI | Object finite element library | 面向对象有限元库 |
| PDE | Partial differential equation | 偏微分方程 |
| PECVD | Plasma-enhanced CVD | 等离子体增强 CVD |
| PIC | Particle in Cell | 网格粒子法 |
| PID | Proportional integral derivative | 比例-积分-微分控制器 |
| PM | Particle Method | 粒子法 |
| PVD | Physical vapor deposition | 物理气相沉积 |
| RBF | Radial basis function | 径向基函数 |
| R3T | Radionuclide-Reaction-Retardation-Transport | 本书 §6.1 软件 |
| SiC | Silicon carbide | 碳化硅 |
| Ti3SiC2 | 钛硅碳三元陶瓷 | MAX-phase 代表 |
| UG | Unstructured grids | 非结构网格软件 |
关键概念总结
| # | 软件 | 物理领域 | 编程语言 | 与 Ch 4 关系 |
|---|---|---|---|---|
| 1 | r3t | 多相核素输运 | C++ (UG) | 通用工业级 |
| 2 | Multi-Opera Fluid | 多相输运-反应 | Maple | §4.13 |
| 3 | Multi-Opera SDE | Langevin 方程 | MATLAB | §4.4 |
| 4 | Multi-Opera Zassenhaus | 算子分裂改进 | MATLAB | §4.11 |
| 5 | Multi-Opera Maxwell | 电磁-动量耦合 | MATLAB | §4.10 |
| 6 | Multi-Opera Multiphase | 多相输运 | MATLAB | §4.6 |
关键结论
- r3t 是工业级软件: 基于 UG 平台, 共享非结构网格, 适合 2D / 3D 复杂几何。已用于德国核废料处置 (endlagersicherheit) 项目, 是真实工业落地的 Geiser 框架代表。这是 Geiser 框架与同类书 (如 Gasser, Humphrey) 相比的显著优势 — 后两者多在学术 benchmark 上工作。
- Multi-Opera 是学术级软件包: 6 个 MATLAB + Maple 子包, 每个对应 Ch 4 的一个算法, 适合教学 + 学术 benchmark。与 r3t 互补, 但不直接工业应用。
- 模型方程 (6.1)-(6.4) 是 Geiser 框架的多相多尺度推广: 4 个相 (mobile / immobile / adsorbed / immobile-adsorbed) × \(M\) 个核素 = \(4M\) 个耦合 PDE, 用 Geiser 迭代分裂 (Ch 3) 解。这是 Geiser 框架在核废料处置这一重大工业问题上的具体落地。
- §6.2.1 Maple 解析子程序: 6 个解析子程序 (linear, quad, general initial conditions, compound, mass, residual mass) 覆盖了 Ch 4.13 多相输运-反应的所有解析解类型。这是 Geiser 框架的软件实现细节 — 工程上用解析解代替数值积分, 节约大量算力。
- §6.2.2 SDE 软件的 3 种方法对比: Euler-Maruyama, Milstein, Iterative Splitting 同时实现, 强 / 弱收敛双验证, 是 Ch 4.4 Langevin 案例的直接软件落地。
- §6.2.4 Maxwell 求解器的耦合区处理: Yee 网格 + 迭代分裂 + 解析嵌入动量解, 是 Ch 4.10 Maxwell + MD 案例的工程实现。
- §6.2.5 Multiphase Solver 的方法对比: Lie-Trotter / Strang / Iterative Splitting 三种方法同台对比, 让工程用户实测三种方法的精度与代价。这是 Ch 3 算法的软件验证。
- 附录缩写表 + 符号表: 24 个缩写, 100+ 符号, 254+ 参考文献。这是Geiser 框架完整知识体系的索引, 跨章节查找方便。
- Bibliograph 254+ 条: 覆盖 Strang, Marchuk, Hundsdorfer-Verwer, E-Engquist, Quarteroni, Hackbusch, Ascher, Pazy, Gasser, Hadjiconstantinou, Feynman, NIST, COMSOL, UG, MATLAB, Dullin, Birdsall, Pattle, Barenblatt, …。这是 Geiser 框架的文献谱系, 证明 Geiser 框架站在巨人的肩膀上, 不是孤立发明。
挑战和开放性问题
- r3t 已在 2014 之后停更: r3t 是 2008-2013 年的工业软件, 2014 后 Geiser 主要在 MATLAB / Maple 上做学术 demo。r3t 是否被任何当代工业项目使用, 没看到明确证据。
- Multi-Opera 6 个子包的代码量: Geiser 没说每个子包多少行代码, 是 100 行还是 1000 行? 工业上"教学级" 与"工业级" 的差距是 1-2 个数量级。
- MATLAB 性能瓶颈: Ch 6 软件全在 MATLAB 上, 2014 年的 MATLAB 在 10⁶ 网格点下尚可, 在 10⁸ 网格点下不适用。Geiser 没提 GPU / Fortran / C++ 重写路径。
- r3t 与 UG 的版本兼容: r3t 依赖 UG, 但 UG 2000s 之后由 Heidelberg / Stuttgart 团队继续开发, 2014 年后版本变化可能不兼容。Geiser 没提版本维护。
- FDTD 2d.m 的 Yee 网格实现: 经典 Yee 网格, 但边界条件 (PML) 处理 没说。Yee 网格 + PML 是 1994 Berenger 之后的标准, 不知道 Geiser 是否实现。
- §6.2.4 Maxwell 耦合的电流密度插值: 在耦合区 \(J\) 必须连续, 但 Maxwell 网格与 MD 粒子位置不重合, 插值 \(J\) 到网格的伪影没说。
- §6.2.5 Multiphase Solver 的内存需求: 多相多组分 \(4M\) 个耦合 ODE, \(M\) 大时内存增长, 没说 \(M\) 的上限。
- Geiser 2015+ 的软件更新: Geiser 2015 Birkhäuser 专著有配套软件吗? 不知道。
- Multi-Opera 开源?: Geiser 没说代码是否开源 / 闭源, 工程界要复制实验必须自己重写。
- r3t 的 license: r3t 是德国联邦资助 (GRS) 项目, 不知道是否商业 / 开源。
- Multi-Opera + r3t 与商业软件对比: 没有给出与 COMSOL Multiphysics, ANSYS Fluent, CFD-ACE+ 的具体对比。Geiser 框架相对商业软件的优势/劣势没说。
个人反思与批判性分析
本章是 Geiser 框架的软件落地章节, 与同类书 (Hundsdorfer-Verwer, Quarteroni-Valli) 相比, Geiser 提供了实际可运行的代码, 这是教学上的极大优势。但软件质量和工业使用证据有明显的盲点。
三个贡献
(1) r3t 的工业级实现: 4 个相 × \(M\) 个核素 = \(4M\) 个耦合 PDE, 共享 UG 平台, GMRES 求解。这是真实工业软件, 区别于多数数学教科书的伪代码。Geiser 框架在核废料处置这一重大工程问题上的具体落地, 是其与同类书相比的核心优势。
(2) Multi-Opera 的 6 个子包直接对应 Ch 4 的 6 类算法: §6.2.1-6.2.5 五个 + Maple 的子程序库, 形成"算法 → 软件 → 案例" 的完整闭环。读者读 Ch 4 看算法, 读 Ch 6 看代码, 两者一一对应。
(3) 254+ 条 Bibliography: 这是 Geiser 框架最完整的文献谱系, 跨学科 (数学, 物理, 工程, 软件, 算法), 跨 50+ 年 (1928 CFL, 1968 Strang, 2003 E-Engquist HMM, 2012 Lu neural HMM)。这是 Geiser 框架的学术根基, 也是后续研究者查文献的宝库。
三个缺口
(1) 软件性能 / 工业使用证据缺失: r3t 在 2014 后的工业项目使用情况没说, Multi-Opera 6 个子包的开源情况没说, MATLAB vs C++ 性能对比没说。读者无法判断 Geiser 框架是否真在工业上有竞争力。
(2) 软件更新 / 维护: r3t 2008-2013 之后没看到更新, Multi-Opera 没看到开源仓库, 整个 Ch 6 的"软件" 部分更像是 2014 年的快照, 10 年后可能部分失效。
(3) 与商业软件的对比缺失: 没有给出与 COMSOL Multiphysics (多物理有限元), ANSYS Fluent (CFD), CFD-ACE+ (半导体工艺模拟) 的对比。Geiser 框架相对商业软件的优势 (是便宜? 灵活? 算法新?) 没说。
与同类书的对照
- Hundsdorfer-Verwer (2003): 算子分裂 + ADR 教科书, 无软件, 纯算法。
- Quarteroni-Valli (1999): DDM 经典, 有伪代码 但无完整软件。
- Hackbusch (1985): 多网格, 有伪代码, 但作者团队后续没发布完整软件。
- Trottenberg-Oosterlee-Schüller (2001): 多网格, 无软件。
- E-Engquist HMM (2003): HMM 框架, 有开源 HMM 软件 (Lu et al. 2021 后续发展), Geiser 没引用。
- Lu et al. 2021 (Neural HMM): 现代 HMM + ML, 有开源软件, Geiser 2014 没引用 (因为是 2014 年后)。
Geiser 是这一谱系中唯一提供 r3t + Multi-Opera 工业级 + 学术级双软件的作者。这是 Geiser 框架最显著的工程贡献。
适合做哪些后续工作
- 重读 Ch 6 后, 尝试在现代平台 (Python + FEniCS, Firedrake, 或 Julia + DifferentialEquations.jl) 重写 r3t: 现代开源 PDE 求解器 (FEniCS) 已经把 UG 的 C++ 复杂包装成 Python 接口, 重写 r3t 应当比 2014 年容易一个数量级。
- 尝试 Multi-Opera 的 Python 重写: 6 个 MATLAB 子包对应 6 个 Python 类, 加上 Jupyter notebook 示例, 是教学项目。
- 尝试 Geiser 框架 + ML 集成: 2014 后的 neural HMM (Lu et al. 2021) 是 Geiser 框架的自然演化, 应当尝试用 NN 替代 r3t 的某些数值核。
- 关注 Geiser 2015+ 的软件更新: 跟踪 Geiser 后续工作, 看 r3t 和 Multi-Opera 是否被维护。
重要参考文献
[X1] Geiser, J. Coupled Systems: Theory, Models, and Applications in Engineering. Chapman & Hall/CRC, 2014. (本章内容.) [X2] Bastian, P.; Birken, K.; Eckstein, K.; Johannsen, K.; Lang, S.; Neuss, N.; Rentz-Reichert, H. UG - a flexible software toolbox for solving partial differential equations. Computing and Visualization in Science 1997, 1(1), 27-40. DOI: 10.1007/s007910050003. (r3t 平台 UG 原文, 本章引用 [16].) [X3] Geiser, J. r3t: Models, Theory, and User's Manual. Technical Report, IWR, Universität Heidelberg, 2007. (r3t 原始用户手册, 本章引用 [109].) [X4] Geiser, J.; Zacher, T. Multi-Opera: A Maple/MATLAB software package for multiscale methods. Technical Report, Humboldt-Universität zu Berlin, 2014. (Multi-Opera 用户手册, 本章引用 [262] [269] [270].) [X5] Dullin, H. R. Poisson integrator for symmetric rigid bodies. Regular and Chaotic Dynamics 2004, 9, 255-264. DOI: 10.1070/RD2004v009n03ABEH000284. (Levitron 刚体积分, [68].) [X6] Dimits, A. M.; Cohen, B. I.; Caflisch, R. E.; Ricketson, L.; Rosin, M. S. Higher-order and multi-level time integration of stochastic differential equations and application to Coulomb collisions. Lecture at IPAM Workshop III, May 7-11, 2012, UCLA. (Langevin 高阶时间积分, [64].) [X7] Dekker, K.; Verwer, J. G. Stability of Runge-Kutta methods for stiff nonlinear differential equations. North-Holland, 1984. (刚性 ODE 数值方法, [63].) [X8] Chin, S. A.; Geiser, J. Multi-product operator splitting as a general method of solving autonomous and non-autonomous equations. IMA Journal of Numerical Analysis 2011, 31(4), 1552-1577. DOI: 10.1093/imanum/drq018. (算子分裂方法学, [43].) [X9] Berenger, J. P. A perfectly matched layer for the absorption of electromagnetic waves. Journal of Computational Physics 2005, 111, 185-220. (PML 吸收边界, [21].) [X10] Yee, K. S. Numerical solution of initial boundary value problems involving Maxwell's equations in isotropic media. IEEE Transactions on Antennas and Propagation 1966, 14(3), 302-307. DOI: 10.1109/TAP.1966.1138693. (Yee FDTD 原文, [318].) [X11] Lu, J.; Wu, K.; Geiser, J.; et al. Deep learning for multiscale modeling. Communications in Mathematics and Statistics 2021, 9, 91-127. DOI: 10.1007/s40304-021-00227-0. (Neural HMM / Deep Learning Multiscale, Geiser 框架的现代延伸.) [X12] COMSOL Multiphysics. Application software, COMSOL Inc., http://www.comsol.com/. (商业多物理软件, [55].) [X13] Bastian, P. Parallele adaptive Mehrgitterverfahren. Doktor-Arbeit, Universität Heidelberg, 1994. (UG 原始博士论文, [15].) [X14] Daoud, D.; Geiser, J. Overlapping Schwarz waveform relaxation for the solution of coupled and decoupled system of convection diffusion reaction equation. Applied Mathematics and Computation 2007, 190(1), 946-964. DOI: 10.1016/j.amc.2007.01.092. (Schwarz 波形松弛, [59].) [X15] Bear, J. Dynamics of Fluids in Porous Media. American Elsevier, 1972. (孔隙介质输运经典, [18], 也是 r3t 的物理基础.)