SpaceClaim流体域创建学习笔记

📋 目录

  1. 为什么需要流体域?
  2. 流体域的本质理解
  3. 方法一: 直接创建流体域
  4. 方法二: 抽取流体域
  5. 两种方法的对比与选择
  6. 常见问题与批判性思维
  7. 实践练习

1. 为什么需要流体域?

1.1 从真实世界说起

想象你正在设计一辆汽车。工程师关心的问题是:

  • 空气如何流过车身?
  • 阻力有多大?
  • 会不会产生升力?

但问题来了:空气在哪里?

在现实世界中,空气无处不在,但在计算机仿真中,我们需要明确定义流体(如空气、水)所占据的空间区域。这个区域就是流体域(Fluid Domain)

1.2 实际应用场景

应用领域 固体几何 流体域 分析目标
汽车外流场 车身 车身周围的空气空间 阻力、升力、压力分布
管道流动 管壁 管道内部的水/油空间 压降、流速分布
散热器设计 散热片 散热片间隙的空气 换热效率、温度场
泵设计 叶轮、壳体 泵内部的液体空间 扬程、效率

1.3 核心理解

物理世界:        [固体] + 流体(无边界)
CFD仿真:         [固体] + [流体域](必须有边界) + [计算网格]
                          ↑
                    这是我们要创建的!

关键认知: CFD求解器(如Fluent)只能在封闭的、有明确边界的流体域上进行计算。


2. 流体域的本质理解

2.1 流体域是什么?

简单定义: 流体域是一个三维实体,代表流体在某个时刻占据的空间。

数学角度:

  • 流体域 Ω ⊂ ℝ³,是一个有界区域
  • 边界 ∂Ω 包括: 入口、出口、壁面、对称面等
  • 在 Ω 内求解 Navier-Stokes 方程

2.2 两种典型情况

情况A: 外流场(External Flow)
        流体域边界(远场)
    ┌─────────────────────┐
    │                     │
    │      ╔═══╗          │  ← 流体(空气)占据
    │      ║车身║          │     除固体外的全部空间
    │      ╚═══╝          │
    │                     │
    └─────────────────────┘

特点: 固体在流体中,流体域包围固体

情况B: 内流场(Internal Flow)
    ╔═══════════════════╗
    ║ 管壁(固体)       ║
    ║  ┌─────────────┐ ║
    ║  │             │ ║  ← 流体(水)只占据
    ║  │   流体域    │ ║     固体内部空间
    ║  └─────────────┘ ║
    ╔═══════════════════╗

特点: 固体包围流体,流体域在固体内部

2.3 为什么有两种创建方法?

这两种物理情况的差异,直接导致了两种不同的创建策略:

方法 适用场景 核心思想 难点
直接创建 外流场 用基本几何体构建流体域 需要规划边界位置
抽取方法 内流场 从固体中"提取"流体空间 模型需封闭、无泄漏

3. 方法一: 直接创建流体域

3.1 方法概述

核心思想: 把流体域看作一个普通的几何实体,用SpaceClaim的建模工具直接创建。

适用场景:

  • 外流场分析(汽车、飞机、建筑物)
  • 简单规则的内流场

3.2 操作步骤详解

步骤1: 导入或创建固体模型
目标: 获得需要分析的固体几何
工具: File → Open 或 Design → Modeling Tools

实例: 导入一个车身模型 car_body.stp

检查清单:

  • ✓ 模型是否完整?
  • ✓ 单位是否正确?(mm, m, inch)
  • ✓ 是否有明显的几何缺陷?
步骤2: 创建包围流体域
2.1 确定流体域尺寸

经验法则 (以车身为例):

流体域尺寸:
  前方距离:  3~5 倍车长
  后方距离:  8~10 倍车长 (尾流发展需要更长距离)
  侧向距离:  3~5 倍车宽
  上下距离:  3~5 倍车高

物理原因:

  • 前方: 流体需要平稳发展到来流状态
  • 后方: 尾流涡结构需要充分发展
  • 侧向/上下: 避免边界效应影响主要流动

批判性思考 🤔:

问: 为什么后方需要更长? 答: 因为尾流中的涡旋结构会延续很远,如果边界太近,会产生非物理的反射效应,污染解的准确性。

2.2 创建长方体流体域
操作路径: Design → Box

参数设置 (假设车长 L=4.5m):

Origin Point: 选择合适的原点(建议以车为参考)
Dimensions:
  Length (X): 60m  (前15m + 车长4.5m + 后40.5m)
  Width  (Y): 30m  (两侧各15m,车宽约1.8m)
  Height (Z): 20m  (地面到顶部)

技巧: 使用 Move 工具将车身移动到流体域内的合适位置

2.3 创建其他形状流体域(可选)

对于某些情况,长方体不是最优选择:

圆柱形流体域 (适合对称问题):

工具: Design → Cylinder
应用: 机翼绕流、圆柱绕流等轴对称问题
优势: 网格更规整,计算量更小

自定义形状:

工具: Design → Sketch → Pull
步骤: 
  1. 在合适平面上绘制草图
  2. 用Pull拉伸成三维实体
  3. 使用Blend/Chamfer优化边角
步骤3: 布尔运算减去固体

目的: 从流体域中"挖掉"固体占据的空间

操作路径: Design → Combine
选择: 
  1. 选中流体域长方体 (Target Body)
  2. 选中车身模型 (Tool Body)
  3. Operation: Subtract (减去)
执行: ✓ 完成

结果:

原始:  [████████████]  ← 完整长方体
       [  ╔═══╗    ]  ← 车身
       
处理后: [██╚═══╝████]  ← 流体域(中空)

重要检查 ⚠️:

  • 检查减法操作后,车身是否完全消失
  • 检查流体域内表面是否光滑,无残留面片
  • 使用 Select → Edges 检查是否有开放边(泄漏)
步骤4: 命名与共享拓扑
4.1 命名重要面

为什么要命名? 在Fluent中设置边界条件时,需要通过名称识别各个面。

选择工具: Select → Faces
操作: 右键 → Rename

推荐命名规范:

inlet         → 入口面
outlet        → 出口面
wall_car      → 车身表面
wall_ground   → 地面
wall_sides    → 侧面墙(可含顶面)
symmetry      → 对称面(如果有)

技巧: 使用 Selection Filter 快速选择多个共面

4.2 共享拓扑(Share Topology)

概念: 使相邻体之间的接触面成为共享面,确保网格节点重合。

操作: Design → Share Topology
选择: 选中所有相关体
执行: ✓

何时需要?

  • 多区域问题(如固体+流体的共轭传热)
  • 多相流中不同相的交界面

本例中: 通常外流场不需要共享拓扑,因为车身是固定的壁面边界。

步骤5: 检查与准备导出

几何检查清单:

✓ 流体域是否为单个连通体?
✓ 所有外表面是否正确命名?
✓ 是否存在小的间隙或重叠? (用 Check Geometry)
✓ 尺寸单位是否与计划一致?

使用Check Geometry工具:

Tools → Check Geometry
检查项:
  - Duplicate Faces: 重复面
  - Short Edges: 过短的边
  - Small Faces: 过小的面
  - Sliver Faces: 细长面

导出设置:

File → Save As
格式: .scdoc (SpaceClaim原生) 或 .x_t/.sat (通用格式)
注意: 确保在Design模式下,而非Prepare模式

3.3 完整代码流程(SpaceClaim脚本示例)

虽然SpaceClaim主要通过GUI操作,但理解逻辑流程很重要:

# 伪代码: 直接创建流体域流程

# 1. 导入固体模型
solid_body = Import("car_body.stp")

# 2. 创建包围盒
bbox = GetBoundingBox(solid_body)
expansion = [3*L, 5*L, 3*L, 10*L, 3*H, 3*H]  # 前后左右上下
fluid_box = CreateBox(
    center=bbox.center + offset,
    dimensions=bbox.size + expansion
)

# 3. 布尔减法
fluid_domain = Subtract(fluid_box, solid_body)

# 4. 命名边界
faces = GetFaces(fluid_domain)
NameFace(faces.inlet, "inlet")
NameFace(faces.outlet, "outlet")
NameFace(faces.car_surface, "wall_car")
# ... 其他面

# 5. 检查
CheckGeometry(fluid_domain)

# 6. 导出
Export(fluid_domain, "fluid_domain_external.scdoc")

3.4 实例: 汽车外流场

问题设定:

  • 车型: 某轿车模型
  • 车长: 4.5m, 车宽: 1.8m, 车高: 1.5m
  • 分析: 风阻系数(Cd),以速度 100 km/h

流体域设计:

尺寸参数:
  前方: 15m
  后方: 45m
  左右: 各15m
  高度: 从地面10m
  总尺寸: 60m × 30m × 10m

边界条件规划:
  入口(西):  Velocity Inlet, 27.8 m/s
  出口(东):  Pressure Outlet, 0 Pa (gauge)
  地面:      Moving Wall (与车速相同) 或 No-slip Wall
  车身:      No-slip Wall
  顶/侧:     Symmetry 或 Free-slip Wall

预期结果:

  • 压力分布: 前部高压,后部低压
  • 速度场: 车身表面附近有边界层
  • 涡结构: 尾流中有明显涡旋

4. 方法二: 抽取流体域

4.1 方法概述

核心思想: 当固体模型是一个封闭的容器时,其内部的"空腔"就是流体域。我们需要将这个空腔"实体化"。

物理类比:

想象一个水壶:
  实体模型 = 壶壁+壶身+壶嘴(外形)
  流体域   = 如果你能冻住水壶里的水,它的形状
  
抽取过程 = 用"魔法"把壶里的水变成实体

适用场景:

  • 管道系统
  • 泵、阀门内部流动
  • 热交换器
  • 任何"流体在容器内"的情况

4.2 操作步骤详解

步骤1: 准备固体模型

要求: 模型必须是完全封闭的,没有任何泄漏孔洞。

1.1 检查模型封闭性
方法1: 视觉检查
  - 使用 Shaded 和 Wireframe 视图切换
  - 旋转模型,寻找可疑的开口

方法2: 使用工具检查
  Tools → Check Geometry → Show Edges
  - 红色边 = 开放边(bad!)
  - 正常边 = 内部边

常见问题:

  • 导入CAD模型时的容差问题导致微小间隙
  • 设计中故意留下的通气孔、螺纹孔
  • 模型简化过程中的破面
1.2 修复模型(如有必要)

修复小间隙:

工具: Design → Pull → Pull to Next
选择: 需要延伸的面
操作: 拖动至封闭

填充孔洞:

工具: Design → Delete → Delete Face
选择: 孔洞周围的面
结果: 自动填充孔洞(适合简单孔)

或:
工具: Design → Surface → Fill
选择: 孔洞边界边
结果: 创建填充面

合并小间隙:

工具: Tools → Options → Modeling → 提高容差
建议: 从 1e-6 提高到 1e-5 或 1e-4
风险: 可能造成过度简化
步骤2: 添加封盖(Cap Ends)

问题: 管道两端是开口的,需要人为封闭。

方法A: 使用Fill工具

操作: Design → Surface → Fill
步骤:
  1. 选择入口边界的环形边
  2. 点击 Fill
  3. 重复出口

方法B: 拉伸草图

操作: Design → Sketch → Circle → Pull
步骤:
  1. 在开口端面上绘制圆(或对应形状)
  2. 确保与边界重合
  3. 用 Pull 生成薄片
  4. Combine → Unite 合并到主体

重要: 记住封盖的位置,后续需要删除或标记为边界!

步骤3: 执行流体域抽取
方法A: Volume Extract (推荐)

SpaceClaim没有直接的"Volume Extract",但可以通过以下方式实现:

技巧1: 填充内部空间

步骤:
  1. 确保模型完全封闭(包括封盖)
  2. Design → Fill → Fill by Surface
  3. 选中所有封闭体的表面
  4. 执行填充
  5. 内部空腔会自动生成一个独立实体
  6. 使用 Select → Bodies 选中内部实体

原理: SpaceClaim识别封闭曲面围成的"空洞",并创建实体填充。

方法B: 包络减法(常用)
步骤:
  1. 创建一个包围盒,完全包裹整个模型
  2. Design → Combine → Subtract
     - Target: 包围盒
     - Tool: 封闭的固体模型
  3. 得到的"外部空间"
  4. 然后再创建一个小包围盒,仅包裹内部流道
  5. 用该小包围盒与外部空间做 Intersect(交集)
  6. 剩下的就是流道内部

说明: 这个方法比较繁琐,但理解清楚布尔运算逻辑后很实用。

方法C: 使用专用插件(如SpaceClaim Extensions)

某些版本的SpaceClaim或Ansys Discovery有直接的 Enclosure 工具:

工具: Prepare → Enclosure
选项:
  - Internal Void: 提取内部空腔 ✓
  - External Flow: 创建外部流体域
  
步骤:
  1. 选中封闭的固体体
  2. 点击 Enclosure
  3. 选择 "Internal Void"
  4. 自动生成内部流体域实体

推荐: 如果有这个工具,这是最快捷的方法!

步骤4: 清理与优化流体域
4.1 删除辅助封盖面
操作: Select → Faces → 选中入口/出口的封盖面
      右键 → Delete (删除面,保留开口)
      
或: Design → Delete → Delete Face

目的: 恢复入口和出口的开放边界,为Fluent中的边界条件做准备。

4.2 检查流体域质量
检查项:
  ✓ 流体域是否为单一连通体? (无分离的碎片)
  ✓ 表面是否光滑? (无锯齿状边缘)
  ✓ 是否有极薄的区域? (会导致网格问题)
  ✓ 尺寸是否合理? (不要过大或过小)

使用Repair工具:

Tools → Repair → Remove Small Features
  参数: 设置阈值,例如 0.1mm
  作用: 去除微小的凸起、凹陷
4.3 简化几何(可选)

复杂的流体域会导致网格生成困难:

简化技巧:
  1. Defeaturing: 删除次要特征
     Tools → Simplify → Defeaturing
  
  2. 替换复杂曲面为简单形状
     例如: 螺旋管简化为直管+弯头
  
  3. 分区
     将复杂流体域分割成多个简单子域
     Design → Split Body

权衡: 简化 ↔ 精度

步骤5: 命名与导出

与方法一类似,需要命名关键面:

内流场典型命名:
  inlet          → 入口
  outlet         → 出口
  wall_pipe      → 管壁
  wall_internal  → 内部障碍物表面(如叶轮)
  interface      → 多区域交界面(如有)

4.3 实例: 简单管道流动

问题设定:

  • 直管,直径 D=50mm,长度 L=1m
  • 分析: 压降,流速分布
  • 流体: 水,入口速度 2 m/s

建模步骤:

步骤1: 创建管壁模型
  - Design → Cylinder
  - 外径: 50mm, 内径: 45mm (壁厚5mm)
  - 长度: 1000mm

步骤2: 封闭两端
  - Design → Fill
  - 选择两端的环形边
  - 创建端面

步骤3: 抽取流体域
  方法: 创建内部圆柱 (直径45mm, 长1000mm)
  这就是流体域!
  
  或使用包络减法:
  - 创建包围盒
  - 减去管壁几何
  - 得到"管芯"

步骤4: 删除端面
  - 删除入口和出口的封盖面

步骤5: 命名
  - 入口面: inlet
  - 出口面: outlet
  - 圆柱面: wall

步骤6: 导出
  - 保存为 pipe_fluid_domain.scdoc

4.4 实例: 复杂泵体内流道

挑战: 泵体内流道形状复杂,有叶轮、蜗壳等。

策略:

步骤1: 获取外壳几何
  - 导入泵体装配模型
  - 包含: 蜗壳、叶轮、轴、进出口法兰

步骤2: 确保封闭性
  - 检查所有配合面是否密封
  - 填充螺栓孔、排气孔等非流道孔洞
  - 在进出口法兰端面添加封盖

步骤3: 分离固体与流体空间
  关键: 叶轮是固体,但周围需要流体
  
  方法:
  a) 如果有流道CAD模型 → 直接使用
  b) 如果没有 → 使用包络减法
     - 创建蜗壳内腔包围盒
     - 减去叶轮实体
     - 减去轴实体
     - 得到流体域

步骤4: 分区(推荐)
  将流体域分成:
  - 进口段
  - 叶轮区(旋转域)
  - 蜗壳区(静止域)
  - 出口段
  
  使用 Design → Split Body

步骤5: 创建Interface
  在旋转域与静止域交界处创建接口面
  这些面需要精确重合(Share Topology)

步骤6: 详细命名
  - inlet
  - outlet
  - wall_casing (壳体)
  - wall_impeller (叶轮)
  - interface_rotor_stator (旋转-静止交界面)

5. 两种方法的对比与选择

5.1 方法对比表

对比维度 直接创建 抽取方法
典型场景 外流场:汽车、飞机、建筑 内流场:管道、泵、阀门
几何起点 固体模型(作为"障碍物") 封闭容器模型
操作核心 创建包围体 + 布尔减法 识别/填充内部空腔
难度 ★★☆ 中等 ★★★ 较难(需确保封闭)
灵活性 高(容易调整流体域大小) 低(受固体几何约束)
常见问题 边界位置选择不当 模型泄漏,抽取失败
网格友好性 较好(规则外形) 取决于内部几何复杂度

5.2 决策流程图

开始
  ↓
问题类型判断
  ↓
流体在物体外部? ——是→ [直接创建法]
  ↓否                   ↓
流体在容器内部?           创建包围体
  ↓是                   ↓
  |                    布尔减法
  |                     ↓
模型是否封闭? ——否→ 修复/简化模型
  ↓是                   ↓
  |                   命名导出
封盖开口端
  ↓
[抽取方法] ← - - - - - - ┘
  ↓
提取内部空腔
  ↓
删除封盖
  ↓
命名导出
  ↓
结束

5.3 混合策略

某些复杂情况需要结合两种方法:

案例: 散热器分析

问题: 散热片浸泡在空气中
  - 散热片表面: 固体壁面
  - 散热片间隙: 流体域(内部)
  - 散热片外部: 流体域(外部)

策略:
  1. 对于间隙流道: 使用抽取方法
     - 将散热片间隙看作"管道"
     - 抽取内部流体域
  
  2. 对于外部流场: 使用直接创建
     - 创建包围盒
     - 减去散热片实体
     - 减去步骤1中的内部流体域
  
  3. 在交界面处使用 Share Topology 连接

6. 常见问题与批判性思维

6.1 流体域边界应该放多远?

问题: 在外流场中,边界距离物体多远才合适?

错误理解: ❌ “边界越远越好,这样更精确” ❌ “边界尽量近,节省计算资源”

正确理解: ✓ 需要在精度和成本之间平衡

分析框架:

# 理论分析
无穷远边界 → 理论最精确,但计算成本 → ∞
有限边界   → 引入边界效应,但可接受

边界效应影响 ∝ 1/(r为距离)
计算成本   ∝ r³ (对于三维问题)

最优距离 = argmin(精度损失 + 计算成本)

实用准则:

流动类型 推荐距离 原因
低速外流场(汽车) 前方3-5L, 后方10L 尾流涡影响范围大
高速外流场(飞机) 前方10c, 后方20c (c=翼弦) 激波影响范围更大
建筑物绕流 各向5H (H=建筑高度) 城市边界层影响

验证方法:

网格独立性测试 + 边界独立性测试
  1. 固定网格,改变边界距离(如5L, 10L, 15L)
  2. 对比关键参数(如阻力系数)
  3. 当变化<1-2%, 说明边界足够远

6.2 为什么抽取的流体域有时失败?

常见原因分析:

原因1: 模型未完全封闭

症状: 抽取工具报错或生成异常几何
诊断: 使用 Check Geometry → Show Open Edges
      红色边 = 泄漏点
解决: 使用 Fill/Extend/Blend 修复

原因2: 容差问题

症状: 面与面之间有微小间隙(0.001mm级别)
诊断: 放大100倍检查配合面
解决: 调整SpaceClaim容差设置
      Tools → Options → Modeling → 容差 = 1e-5

原因3: 复杂几何导致算法失败

症状: 抽取时卡死或崩溃
原因: 内部有细长通道、尖角、薄壁
解决: 
  - 简化几何(Defeaturing)
  - 分段抽取,再合并
  - 使用包络减法替代自动抽取

原因4: 多体/多腔问题

症状: 只抽取了一部分流道
原因: 模型内有多个不连通的空腔
诊断: 使用 Select → Bodies 查看体数量
解决: 
  - 确认哪些腔室需要包含
  - 单独抽取后用 Combine → Unite 合并

6.3 流体域需要多精细?

批判性问题:

“如果我的实体模型有螺纹孔、倒角、圆角,流体域要全部保留吗?”

答案: 不一定!需要根据物理重要性判断。

特征重要性评估:

评估准则:
  1. 特征尺寸 vs 主流道尺寸
     如果 d_feature / d_main < 0.01 → 可能不重要
  
  2. 距离关注区域的距离
     远离→不重要, 近距离→重要
  
  3. 对流动的影响
     位于主流路径上→重要
     位于死角、回流区→不太重要
  
  4. 分析目标
     如果关注局部细节→保留
     如果只关注总体性能→简化

实例判断:

特征 管道内流分析 汽车外流分析 判断
M8螺纹孔 管径200mm 车长4500mm ❌ 不重要,简化掉
导流板 位于主流路径 位于车尾 ✓ 重要,保留
0.5mm倒角 管道弯头处 车身边缘 视网格能力而定
表面粗糙度 - - 用壁面函数处理

操作建议:

工作流:
  1. 初步建模: 保留主要特征,移除明显不重要的
  2. 快速网格测试: 看能否生成合理网格
  3. 粗糙计算: 快速判断流场模式
  4. 根据结果决定: 是否需要加回某些特征

6.4 为什么要命名边界?

表面理解: “方便在Fluent中识别和设置边界条件”

深层理解:

几何模型(SpaceClaim) → 网格文件(Meshing) → 求解器(Fluent)
     ↓                      ↓                    ↓
  拓扑信息(面、边)      网格区域(Zones)      边界条件(BCs)
     ↓                      ↓                    ↓
  需要"标签"!          继承"标签"          通过"标签"识别

没有命名会怎样?

后果:
  ✗ Fluent中所有面显示为 "wall-1", "wall-2" ...
  ✗ 无法判断哪个面是入口,哪个是出口
  ✗ 设置边界条件变成"猜谜游戏"
  ✗ 修改模型后,编号可能改变,之前的设置失效

命名最佳实践:

1. 使用描述性名称
   ✓ inlet_main, outlet_bypass
   ✗ face1, surface_a

2. 遵循命名规范(团队内统一)
   ✓ wall_*, inlet_*, outlet_*
   ✗ 随意命名

3. 对称/周期边界成对命名
   ✓ periodic_left, periodic_right
   ✓ symmetry_plane

4. 对于复杂模型,使用分层命名
   ✓ region1_inlet, region1_outlet
   ✓ region2_inlet, region2_outlet

6.5 共享拓扑(Share Topology)到底做了什么?

常见困惑:

“我的模型看起来已经贴合了,为什么还要Share Topology?”

核心概念:

视觉贴合 ≠ 拓扑连接

场景A: 两个立方体紧贴
  视觉: [ ][ ] 看起来接触
  实际: [ ] [ ] 有两个独立的面,只是位置重合
  
场景B: Share Topology后
  视觉: [ ][ ] 看起来一样
  实际: [==] 共用一个面,节点重合

为什么重要?

网格生成阶段:
  未Share Topology:
    - 两侧独立生成网格
    - 接触面的节点不重合
    - 会有微小间隙或重叠
    → 导致插值误差、收敛问题

  Share Topology后:
    - 接触面只生成一套网格
    - 两侧共享节点
    - 完全匹配
    → 保证通量守恒、数值稳定

何时必须使用?

必须:
  ✓ 多区域问题(固体-流体界面,共轭传热)
  ✓ 旋转机械(旋转域-静止域界面)
  ✓ 多孔介质与自由流交界

可选:
  ≈ 单纯的流体域内部分区(便于网格控制)

不需要:
  ✗ 固定壁面边界(单侧接触)
  ✗ 完全独立的流体域

6.6 CFD分析的误差来源

批判性思维训练:

当CFD结果与实验不符时,可能的原因:

1. 几何误差(5-20%)
   - 流体域尺寸不当
   - 简化过度
   - 建模错误

2. 网格误差(10-30%)
   - 网格过粗
   - 边界层分辨率不足
   - 过渡区网格质量差

3. 物理模型误差(20-50%)
   - 湍流模型选择不当
   - 忽略了重要物理现象(如传热、相变)
   - 边界条件设置错误

4. 数值误差(1-5%)
   - 离散格式精度
   - 收敛不充分
   - 时间步长选择

5. 实验误差(5-15%)
   - 测量不确定度
   - 实验条件与仿真假设不符

启示:

流体域创建是CFD的第一步,虽然看似简单,但错误会传递和放大!


总结与提升路径

核心要点回顾

┌─────────────────────────────────────┐
│  1. 流体域 = CFD的计算空间          │
│  2. 外流场 → 直接创建法             │
│  3. 内流场 → 抽取法                 │
│  4. 关键: 封闭性、命名、检查        │
│  5. 精度与成本需平衡                │
└─────────────────────────────────────┘

进阶学习方向

  1. 高级几何处理
    • 参数化建模
    • 拓扑优化前的流体域准备
    • 复杂装配体的流体域提取
  2. 特殊流体域
    • 旋转机械的多参考系
    • 自由液面的VOF域设置
    • 多孔介质区域定义
  3. 自动化脚本
    • SpaceClaim Python/IronPython脚本
    • 批量处理多个几何变体
    • 与优化循环集成
  4. 网格策略协同
    • 流体域分区与网格类型匹配
    • 边界层网格的几何准备
    • 局部加密区的几何控制

附录: 快速参考卡

常用工具速查

功能 SpaceClaim工具 快捷键
创建长方体 Design → Box B
布尔减法 Design → Combine → Subtract -
填充孔洞 Design → Fill -
检查几何 Tools → Check Geometry -
选择面 Select → Faces -
命名 右键 → Rename F2
共享拓扑 Design → Share Topology -

典型尺寸参考

应用 流体域尺寸建议 依据
汽车外流 前3-5L, 后10L, 侧5L, 高5L 尾流影响
飞机外流 前10c, 后20c, 侧10c 激波扩散
建筑绕流 各向5H 边界层
管道内流 进口5D, 出口10D 充分发展

问题诊断检查表

✓ 模型是否完全导入?
✓ 单位是否正确?
✓ 流体域是否封闭?(外流) / 是否有开口?(内流的进出口)
✓ 是否有泄漏边?(红色边)
✓ 流体域是否为单一体?
✓ 边界是否全部命名?
✓ 几何尺寸是否合理?
✓ 是否有过小的特征?(< 0.1mm)
✓ 文件是否成功保存?
Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐