船舶 CAE 全景:从 MarineFlow 与 SAM 认识流体、结构和数值求解 / Marine CAE with MarineFlow, SAM, Fluid Mechanics, and Structural Analysis
📅 创建时间:2026-07-20 🏷️ 标签:#船舶CAE #MarineFlow #SAM #CFD #有限元 #并行计算 📚 前置知识:高中力学与基本微积分;不了解数值计算也可以从本篇开始 📚 相关知识:[[../00-overview]] [[/02-systems-and-performance/03-parallel-computing/00-parallel-computing-overview]] [[/05-solver-basics]]
文档目标
MarineFlow 和 SAM 分别代表船舶工业软件中的两条核心计算链:
text
MarineFlow:流体如何作用于船舶?
SAM:船舶结构受到作用后如何变形、振动或失稳?本专题不把重点放在某个界面按钮或某个开发框架,而是尝试建立一套可以迁移的认知:
- 软件解决什么工程问题
- 工程问题背后是什么物理过程
- 物理过程怎样写成方程
- 方程怎样通过网格变成代数系统
- 矩阵和迭代过程为什么耗时
- 哪些步骤可以并行,适合 CPU、GPU 还是集群
- 哪些情况下改算法比增加硬件更有效
两个软件在船舶设计中的位置
text
船舶总体设计
│
├─ 流体性能
│ ├─ 船体阻力
│ ├─ 自由液面和兴波
│ ├─ 螺旋桨推力与效率
│ ├─ 空化
│ └─ 流场压力脉动
│ ↓
│ MarineFlow
│
└─ 结构性能
├─ 船体静强度
├─ 板架与加筋板
├─ 模态和振动
├─ 响应谱
├─ 屈曲和失稳
└─ 弹塑性
↓
SAM两者并不是彼此孤立。例如 MarineFlow 得到的船体表面压力,可以作为 SAM 的结构载荷;SAM 得到的结构变形,也可能反过来改变流体域。这就形成流固耦合。
CAE 软件共同的五层结构
第一层:真实对象
船体、螺旋桨、海水、空气、板、梁、加强筋、焊接结构和设备质量。
第二层:物理模型
对真实对象进行必要抽象:
- 海水是否视为不可压缩流体
- 是否考虑湍流
- 是否考虑自由液面
- 结构是否线弹性
- 是否考虑塑性和大变形
- 连接是否视为完全固定
第三层:数学方程
流体常见方程:
text
质量守恒 + 动量守恒 + 湍流模型 + 相界面方程结构常见方程:
text
静力:Ku = f
动力:Mü + Cų + Ku = f(t)
模态:Kφ = ω²Mφ第四层:数值离散
计算机不能直接求解连续空间中的无限多个未知量,因此需要:
- 用网格把空间划分为有限区域
- 用时间步把连续时间离散化
- 把微分方程转换为代数方程
第五层:工程软件
软件负责把复杂过程包装成可操作流程:
text
几何 → 网格 → 属性 → 边界条件 → 求解 → 后处理 → 校核MarineFlow 的主线
MarineFlow 可以理解成面向船舶流体问题的集成平台:
text
船体/螺旋桨几何
→ 建立流体计算域
→ 生成表面与体网格
→ 设置流体、速度、压力、湍流和自由液面
→ 选择稳态或瞬态求解
→ 并行计算
→ 查看压力、速度、波面、推力、阻力和空化它背后的主要数值方法是有限体积法。每个网格控制体都满足离散后的质量和动量守恒。
SAM 的主线
SAM 可以理解成面向海洋结构的通用有限元平台:
text
板架/梁/壳/实体模型
→ 材料和截面
→ 装配
→ 分析步
→ 约束和载荷
→ 结构网格
→ 创建 Job
→ 求解
→ 查看位移、应力、模态、屈曲和塑性结果它背后的主要数值方法是有限元法。各单元产生局部矩阵,再组装成全局稀疏矩阵。
为什么工业求解会很慢
耗时不只来自“公式计算”:
text
总时间
├─ 几何修复与网格生成
├─ 单元/控制体离散
├─ 稀疏矩阵组装
├─ 线性方程求解
├─ 非线性或时间步迭代
├─ 多进程通信
├─ 结果文件写入
└─ 后处理和可视化不同场景瓶颈不同:
- 小模型可能是启动和前处理占主导
- 大型静力有限元可能受矩阵分解和内存容量限制
- CFD 常受稀疏矩阵迭代、网格通信和时间步数量限制
- GPU 程序可能受显存带宽而不是浮点算力限制
- 多节点计算可能受网络通信和最慢进程限制
专题目录
| 编号 | 主题 | 主要问题 |
|---|---|---|
| 01 | 两个软件的应用边界 | 应该在什么场景使用哪个软件? |
| 02 | CAE 通用工作流 | 一次仿真从需求到结论经历什么? |
| 03 | 船舶流体物理 | 阻力、兴波、湍流、空化从哪里来? |
| 04 | CFD 控制方程 | 流体方程表达了什么守恒关系? |
| 05 | MarineFlow 使用路线 | 怎样建立和检查一个流体算例? |
| 06 | 船舶结构物理 | 板、梁、壳为什么会变形和失稳? |
| 07 | 有限元方法 | 结构怎样变成 Ku=f? |
| 08 | SAM 使用路线 | 怎样建立和判断一个结构算例? |
| 09 | 静力、模态、屈曲与非线性 | 不同分析类型在求什么? |
| 10 | 流固耦合 | 流体载荷怎样传给结构? |
| 11 | 离散系统与矩阵 | 工业求解会产生什么矩阵? |
| 12 | 串行求解算法 | 不并行时应该怎样提高效率? |
| 13 | 并行加速场景映射 | 什么方程适合什么并行方法? |
| 14 | CPU/GPU/MPI 求解架构 | 各级硬件怎样协作? |
| 15 | 验证与可信度 | 如何知道结果不是“彩色的错误”? |
| 16 | 综合案例 | 怎样把知识串成完整工程流程? |
学习时始终追问的六个问题
- 当前模型忽略了哪些真实因素?
- 边界条件是否代表真实约束?
- 网格是否足以解析关键物理区域?
- 求解器收敛是否等于物理结果正确?
- 当前瓶颈是算法、内存、通信还是 I/O?
- 结果是否经过理论、试验或其他软件验证?
下一篇:[[01-software-scenarios]]