![]()
内容推荐 代码验证是确保科学计算代码中没有影响数值解精度的编程错误的必经途径。本书共十章,全面系统地介绍了计算机代码验证,包括背景、原理、流程、实施细节和示例。重点阐述了计算机代码验证的一种重要手段,即“基于人造解方法的精度阶验证”。通过求解Burgers方程和Navier-Stokes方程的示例阐明了该方法的优点。 本书面向计算科学和工程领域计算机代码的开发者和测试者,特别是微分方程模拟软件的研发人员,为其进行代码验证提供规范的实施准则和切实可行的操作指导。 目录 第一章 代码验证导论 第二章 数学模型和数值算法 2.1 数学模型 2.2 求解微分方程的数值方法 2.2.1 术语 2.2.2 有限差分示例 2.2.3 数值问题 2.2.4 代码精度阶验证 第三章 精度阶验证流程(OVMSP) 3.1 静态测试 3.2 动态测试 3.3 精度阶验证流程概述 3.4 详细流程 3.4.1 流程开始(第1步~第3步) 3.4.2 运行测试确定误差(第4步~第5步) 3.4.3 解释测试结果(第6步~第10步) 3.5 小结 第四章 设计覆盖测试套件 4.1 基本设计问题 4.2 与边界条件相关的覆盖问题 4.3 与网格和网格加密相关的覆盖问题 第五章 确定精确解 5.1 利用正问题获得精确解 5.2 人造精确解法 5.2.1 人造解构建准则 5.2.2 系数构建方针 5.2.3 示例:人造解构建 5.2.4 辅助条件的处理 5.2.5 源项深度探索 5.2.6 精确解的物理现实 第六章 精度阶验证流程的益处 6.1 编码错误分类 6.2 简单的偏微分方程代码 6.3 盲测 第七章 相关的代码开发活动 7.1 数值算法开发 7.2 代码鲁棒性测试 7.3 代码效率测试 7.4 代码确认操作 7.5 解验证 7.6 代码确认 7.7 软件质量工程 第八章 代码验证操作范例 8.1 笛卡儿坐标中的Burgers方程(代码1) 8.1.1 具有Dirichlet边界条件的稳态解 8.1.2 具有Neumann和Dirichlet混合条件的稳态解 8.2 曲线坐标中的Burgers方程(代码2) 8.2.1 稳态解 8.2.2 非稳态解 8.3 不可压缩Navier-Stokes方程(代码3) 8.4 可压缩Navier-Stokes方程(代码4) 第九章 进阶主题 9.1 计算机平台 9.2 查找表 9.3 自动时间推进选项 9.4 固有边界条件 9.5 含人工耗散项的代码 9.6 特征值问题 9.7 解的唯一性 9.8 解的光滑性 9.9 含激波捕获格式的代码 9.10 无阶近似代码的处理 第十章 总结与结论 参考文献 附录A 其他偏微分方程代码测试方法 附录B 正推法的实现问题 附录C 盲测结果 C.1 错误的数组索引 C.2 数组索引重复 C.3 错误的常数 C.4 错误的“Do循环”范围 C.5 变量未初始化 C.6 参数列表中错误的数组标签 C.7 内外层循环索引的颠倒 C.8 错误的符号 C.9 算子转置 C.10 错误的括号位置 C.11 差分格式的概念性或相容性错误 C.12 逻辑IF错误 C.13 无错误 C.14 错误的松弛因子 C.15 错误的差分 C.16 缺项 C.17 网格点变形 C.18 输出计算中错误的算子位置 C.19 网格单元数量的变化 C.20 冗余“Do循环” C.21 错误的时间步长 附录D 多孔介质-自由流界面方程的人造解 |