近年来,多物理场耦合仿真技术的重要性日益凸显,preCICE作为通用开源耦合框架提供跨软件、跨物理场耦合方案。本书系统介绍了开源多物理场耦合框架preCICE的核心原理、软件架构、适配器开发流程与工程应用算例。从理论与实践两个维度出发,既深入介绍了preCICE支持的分区耦合算法、数据映射与通信机制,又详细剖析了OpenFOAM、Fluent等主流求解器的耦合适配器开发方法,并结合典型流固、流热、固固耦合算例进行演示。

近年来,多物理场耦合仿真技术的重要性日益凸显,preCICE作为通用开源耦合框架提供跨软件、跨物理场耦合方案。本书系统介绍了开源多物理场耦合框架preCICE的核心原理、软件架构、适配器开发流程与工程应用算例。从理论与实践两个维度出发,既深入介绍了preCICE支持的分区耦合算法、数据映射与通信机制,又详细剖析了OpenFOAM、Fluent等主流求解器的耦合适配器开发方法,并结合典型流固、流热、固固耦合算例进行演示。
前言
第1章 preCICE概述 1
1.1 简介 1
1.2 术语 3
1.3 典型算例 9
1.3.1 二维弹性板流固耦合模拟 9
1.3.2 加热板流热耦合模拟 14
1.4 安装 17
1.4.1 不同系统的preCICE安装 17
1.4.2 求解器链接到preCICE 27
1.5 官方适配器 28
1.5.1 OpenFOAM 28
1.5.2 CalculiX 31
1.5.3 deal.II 34
1.5.4 SU2 37
1.5.5 FEniCS 40
1.5.6 Code_Aster 42
第2章 分区耦合理论与算法 45
2.1 分区耦合算法简介 45
2.2 耦合方案 46
2.2.1 基本耦合方案 46
2.2.2 显式耦合方案 48
2.2.3 隐式耦合方案 52
2.3 加速方法 54
2.3.1 概述 54
2.3.2 分类与实现 54
2.4 数据映射 68
2.4.1 映射方法 68
2.4.2 R-Tree数据结构 76
2.4.3 PETSc库 76
2.5 多对多通信 77
2.5.1 集中式通信模型 77
2.5.2 分布式通信模型 78
2.5.3 集中式通信模型与分布式通信模型的差异 79
2.5.4 通信实现方式 79
第3章 preCICE软件架构 87
3.1 总体设计 87
3.2 功能层 88
3.2.1 mesh模块 90
3.2.2 com模块 98
3.2.3 mapping模块 108
3.2.4 cplscheme模块 115
3.3 接口层 125
第4章 耦合代码开发流程 138
4.1 适配概述 138
4.1.1 求解器适配 138
4.1.2 耦合代码开发模式 139
4.2 深度集成式接口开发 140
4.2.1 流体求解器代码示例 140
4.2.2 preCICE关键API函数调用 141
4.2.3 耦合网格定义和数据访问 143
4.2.4 扩展API 146
4.3 中间件对接式开发 164
4.3.1 Adapter类定义 164
4.3.2 初始化 166
4.3.3 数据读取 167
4.3.4 数据写出 168
4.3.5 配置文件 168
4.3.6 特殊功能 169
4.4 可扩展插件化集成 188
4.4.1 求解器接口 188
4.4.2 preCICE接口 190
第5章 适配器开发实践 196
5.1 适配器开发方式 196
5.2 deal.II适配器开发 197
5.2.1 开发思路 197
5.2.2 代码实现 199
5.3 CalculiX适配器开发 208
5.3.1 开发思路 208
5.3.2 代码实现 212
5.4 OpenFOAM适配器开发 220
5.4.1 开发思路 220
5.4.2 代码实现 223
5.5 Code_Aster适配器开发 233
5.5.1 开发思路 233
5.5.2 代码实现 235
5.6 风雷适配器开发 248
5.6.1 软件简介 248
5.6.2 适配器开发方式 249
5.6.3 代码实现 251
5.7 Fluent适配器开发 268
5.7.1 开发思路 268
5.7.2 代码实现 274
第6章 preCICE多物理场仿真算例 282
6.1 分区热传导模拟 282
6.1.1 问题描述 282
6.1.2 求解器信息 283
6.1.3 算例配置 283
6.1.4 运行命令与后处理 298
6.1.5 高级设置 298
6.1.6 直接访问设置 310
6.2 热交换器流热耦合模拟 317
6.2.1 问题描述 317
6.2.2 求解器信息 318
6.2.3 算例配置 319
6.2.4 运行命令与后处理 331
6.3 加热板流热耦合模拟 332
6.3.1 问题描述 332
6.3.2 求解器信息 333
6.3.3 算例配置 333
6.3.4 运行命令与后处理 343
6.3.5 注意事项 344
6.4 弹性竖板流固耦合模拟 345
6.4.1 问题描述 345
6.4.2 求解器信息 347
6.4.3 算例配置 347
6.4.4 运行命令与后处理 357
6.5 一维弹性管流固耦合模拟 358
6.5.1 问题描述 358
6.5.2 求解器信息 359
6.5.3 算例配置 359
6.5.4 运行命令与后处理 371
6.6 三维弹性管流固耦合模拟 374
6.6.1 问题描述 374
6.6.2 求解器信息 375
6.6.3 算例配置 375
6.7 分区弹性梁变形模拟 386
6.7.1 问题描述 386
6.7.2 求解器信息 388
6.7.3 算例配置 388
6.7.4 运行命令与后处理 393
6.8 分区管道流动模拟 394
6.8.1 问题描述 394
6.8.2 求解器信息 395
6.8.3 算例配置 395
6.8.4 运行命令与后处理 407
第7章 preCICE常用测试工具介绍 409
7.1 preCICE工具概述 409
7.2 人工求解器测试环境 410
7.2.1 ASTE工具适用场景 410
7.2.2 安装ASTE核心模块、VTK库及相关依赖项 410
7.2.3 命令行界面 412
7.3 内置工具 419
7.3.1 XML配置信息输出 419
7.3.2 preCICE版本 420
7.3.3 配置检查 420
参考文献 422