我需要运行一个fluent仿真,任务为:设置一个锅炉流体域,锅炉顶部有多个喷嘴,可以使用hollow...

作成日: 2026年8月19日

使用モデル GPT-5.6 Thinking by Chat01

質問

我需要运行一个fluent仿真,任务为:设置一个锅炉流体域,锅炉顶部有多个喷嘴,可以使用hollow cone进行替代,然后喷嘴喷出液滴,这些液滴可能发生碰撞、合并等行为,然后我要测量其在某一高度颗粒的速度。因为我是用云计算机跑这个内容,所以颗粒的文件也得要保存才行,现在告诉我实现这个任务从头到尾的全部设置过程

思考

你这个任务里,真正决定结果是否可信的不是“能不能把 hollow cone 画出来”,而是三件事:喷嘴的 parcel 数量是否足够、碰撞区网格与 parcel 统计是否匹配、时间步是否做过独立性检查。标准碰撞模型主要在同一单元内寻找可能碰撞的 parcel,因此网格过细但 parcel 太少,反而可能把碰撞概率人为压低;官方也提醒碰撞结果可能有网格和粒子时间步依赖。

所以我下面会给你“能先跑通”的推荐起始值,但像时间步、Number of Streams、局部网格尺寸,最后一定要至少做 2–3 组敏感性检查。

Worked for 1m 3s

回答

可以。下面我按 “从零建模 → 多喷嘴 Hollow Cone → 液滴碰撞/合并 → 瞬态计算 → 指定高度测速 → 粒子文件保存 → 云计算续算” 给你一套完整流程。

以下流程按近版 ANSYS Fluent 2025 R2 / 2026 R1 的界面和模型逻辑写。旧版本菜单位置可能略有变化,但模型设置基本一致。Fluent 的 Cone injection 在 3D 中原生支持 hollow-cone,并可定义位置、轴向、速度、半锥角、外半径、swirl fraction 和总质量流量等。(Ansys Help)

我先假设你的问题是:

一个锅炉气相流体域,顶部有多个向下喷水喷嘴;不建真实喷嘴内部几何,而用 DPM Hollow Cone 代替;液滴进入锅炉后会运动、相互碰撞和合并;最后要得到某一个高度平面上所有穿越液滴的速度,并且云计算结束后这些粒子数据必须保存下来。


一、推荐的整体模型

你的模型结构建议是:

物理对象Fluent 模型
锅炉内部气体Continuous Phase
水滴DPM
喷嘴Cone → Hollow Cone Injection
液滴碰撞Stochastic Collision
液滴合并Coalescence
重力Gravity
湍流对液滴扩散Discrete Random Walk,建议
水滴蒸发根据任务决定
液滴破碎根据 Weber 数/实际喷嘴决定
指定高度测速Plane + DPM Sample Trajectories
测速数据文件.dpm
云端断点续算.cas.h5 + .dat.h5 Autosave
完整粒子历史Particle History Export,可选

对于液滴碰撞/合并,优先采用 DPM 的 Stochastic Collision + Coalescence,而不是 DEM。Fluent 官方也是把液滴碰撞和合并放在该喷雾碰撞模型中。(Ansys Help)


二、Step 1:建立锅炉流体域

假如你的锅炉内部大致是圆筒或方形腔体:

  1. 在 SpaceClaim / Discovery / DesignModeler 建立锅炉内部的流体体积
  2. 不需要建立真实喷嘴内部的小孔。
  3. 顶部喷嘴的位置只需要知道:
    • X
    • Y
    • Z
    • 喷射方向
    • 喷孔直径/有效半径
  4. 给边界命名,例如:
text
boiler_wall gas_inlet gas_outlet bottom

如果锅炉内气体本身基本静止,那么可以没有真实气体 inlet,但必须根据你的真实设备设置压力出口、通风口等。

喷嘴不需要成为真实几何

假设第一个喷嘴中心:

text
x = 0.50 m y = 0.50 m z = 5.00 m

向下喷射,如果 Z 轴向上,则:

text
Axis = (0, 0, -1)

后面直接在 Fluent DPM Injection 里面定义。


三、Step 2:划分网格

这里非常重要,因为碰撞模型和 CFD 网格有关

标准 DPM 随机碰撞模型主要根据同一 CFD 单元内的 parcel 进行碰撞统计,因此不能简单地认为“网格越细越好”。网格非常细但每个单元只有极少 parcel 时,碰撞统计可能反而不足;Fluent 也明确提醒碰撞模型可能出现网格依赖。(Ansys Help)

建议重点加密三个位置:

text
喷嘴出口附近 喷雾互相重叠区域 你要测速度的高度平面

例如:

text
● ● ● ● ← 喷嘴 \ / \ / \ / \ X / ← 喷雾碰撞区域 \ / \ / -------------------- ← velocity_sample_plane

不建议

不要把 Injection 原点恰好放在一个很特殊的网格顶点上。Fluent 官方特别指出,喷雾源位于 mesh vertex 时,随机碰撞模型更容易产生网格相关的人造结构。(Ansys Help)

比较稳妥的方法是:

text
喷嘴几何出口 Injection 起点稍微位于流体内部

比如移动约一个非常小的距离,确保起点确实在 fluid cell 中。


四、Step 3:启动 Fluent

建议:

text
3D Double Precision Parallel CPU Solver

如果第一次做这个模型,我不建议一开始用 GPU DPM。

虽然新版 GPU Fluent 已经支持部分 Cone/DPM 功能,但 DPM 功能存在额外限制;CPU Fluent 的 DPM 功能目前更完整。(Ansys Help)


五、Step 4:General

进入:

text
General

推荐:

text
Solver: Pressure-Based Time: Transient Velocity Formulation: Absolute

因为你需要:

  • 喷射时间过程;
  • parcel 运动;
  • 碰撞;
  • 合并;
  • 某一时刻/时间段通过测量面的颗粒。

碰撞/破碎喷雾开启后,Fluent 会使用 Unsteady Particle Tracking。(Ansys Help)


六、Step 5:打开重力

进入:

text
Setup → General → Gravity

如果 Z 轴向上:

text
X = 0 Y = 0 Z = -9.81 m/s²

这个千万别漏。

对毫米级以下水滴,重力、气动力和湍流扩散都会影响最终速度。


七、Step 6:Continuous Phase 设置

湍流模型

一般推荐先用:

text
k-ω SST

或者你已有锅炉 CFD 模型,就保持原来的湍流模型。

如果锅炉内部存在:

  • 高温烟气;
  • 强回流;
  • 炉膛燃烧;
  • 大尺度旋涡;

那么气相流场对液滴速度影响会很强,最好先把气相流场计算合理。


八、Step 7:决定是否考虑水滴蒸发

这里分两种情况。

情况 A:目前只研究喷雾碰撞和速度

第一版可以先关闭蒸发。

这样模型更容易验证:

text
Air + Water particles + Drag + Gravity + Turbulent Dispersion + Collision + Coalescence

建议你先完成这个版本

情况 B:是真实高温锅炉

那后面应该考虑:

text
Energy Species Transport Water Vapor Droplet Vaporization

Fluent 的 Droplet 类型可以考虑液滴加热、蒸发和沸腾;粒子质量传递需要 Droplet 类型。(Ansys Help)

如果你目前的目标只是验证碰撞和测速度,先不要同时加:

text
蒸发 + 辐射 + breakup + combustion + collision + coalescence

否则很难判断结果错在哪里。


九、Step 8:Discrete Phase Model

进入:

text
Setup → Models → Discrete Phase

建议基本设置:

text
Interaction with Continuous Phase

是否打开取决于喷液量。

如果液滴量很小,只关心气体对液滴:

text
One-Way Coupling

如果喷液量较大,液滴明显会影响气体:

text
Interaction with Continuous Phase = ON

这就是 two-way momentum coupling 的基本思路。


十、Step 9:打开液滴碰撞和合并

进入 DPM:

text
Discrete Phase Model → Physical Models

打开:

text
Stochastic Collision = ON Coalescence = ON

Fluent 中先开启 Stochastic Collision 后才会提供 Coalescence 选项。(Ansys Help)

物理上会出现类似:

text
drop A + drop B collision ↙ ↘ bounce coalesce larger drop

合并后 parcel 的:

  • 速度;
  • 直径;
  • parcel 中代表的液滴数量

都会发生相应变化。(Ansys Help)


十一、Step 10:Breakup 暂时怎么处理

第一次跑建议:

text
Breakup = OFF

先研究:

text
喷射 → 飞行 → 碰撞 → 合并 → 测速

等这一套验证完,再考虑:

text
TAB Wave KHRT SSD

Fluent 支持多种 secondary breakup 模型,包括 TAB、Wave、KHRT、SSD 等。(Ansys Help)

为什么不要第一次就开?

因为如果同时开启:

text
Breakup + Collision + Coalescence

你会同时看到:

text
大滴 → 小滴 小滴 + 小滴 → 大滴

最后粒径为什么变化会很难判断。


十二、Step 11:湍流对液滴扩散

如果气相是湍流,建议启用:

text
Turbulent Dispersion → Discrete Random Walk

否则每个 Hollow Cone 可能看起来异常“整齐”。

实际喷雾经过湍流后会产生随机轨迹扩散。


十三、Step 12:建立第一个 Hollow Cone 喷嘴

路径:

text
Setup → Models → Discrete Phase → Injections → New

选择:

text
Injection Type = cone

然后:

text
Cone Type = hollow-cone

Fluent 的 3D Cone Injection 原生提供:

text
point-cone hollow-cone ring-cone solid-cone

(Ansys Help)

关键参数

假设:

text
nozzle_01

Injection Name

text
nozzle_01

Particle Type

如果是真正液滴并后续考虑传热/蒸发:

text
Particle Type = Droplet

Material:

text
water-liquid

如果第一版明确完全不考虑蒸发,也可以建立简化的无相变版本,但正式锅炉喷水建议最终回到 Droplet。


Position

例如:

text
X = 0.5 Y = 0.5 Z = 5.0 m

位置指 Hollow Cone 的起始位置。(Ansys Help)


Axis

顶部往下喷:

text
X Axis = 0 Y Axis = 0 Z Axis = -1

这三个量定义喷雾锥中心轴方向。(Ansys Help)


Velocity Magnitude

例如:

text
20 m/s

这里应该尽量使用:

text
喷嘴出口实测速度

如果只有质量流量,可以先估:

U=m˙ρAU=\frac{\dot m}{\rho A}

例如一个圆喷孔:

A=πD24A=\frac{\pi D^2}{4}

不过 Hollow Cone 喷嘴真实出口速度最好还是来自喷嘴资料或实验。

需要注意:Fluent 这里的 Velocity Magnitude 是总喷雾速度大小,Hollow Cone 有 swirl 时其中也包括旋转速度分量。(Ansys Help)


Cone Half Angle

这个非常容易填错。

假设喷嘴厂家给的是:

text
喷雾总角度 = 60°

那么 Fluent 填:

text
Cone Half Angle = 30°

Fluent 定义的是半锥角,因此总开角为:

θtotal=2θhalf\theta_{total}=2\theta_{half}

(Ansys Help)


Outer Radius

例如喷孔直径:

text
D = 2 mm

可以从:

text
Outer Radius ≈ 1 mm

开始。

Hollow Cone 的 parcel 会从定义的圆周附近释放,Outer Radius 决定这个释放圆的尺度。(Ansys Help)


Dispersion Angle

第一版可以:

text

如果实际喷雾不是非常薄的理想锥面:

text
2° ~ 5°

可以作为后续校准参数。

Fluent 的 Hollow Cone Dispersion Angle 会让喷射角围绕平均 Cone Half Angle 形成统计分布。(Ansys Help)


Swirl Fraction

不知道真实旋流时:

text
0

如果真实喷嘴有旋流,可以后面加入。

正负号控制旋流方向;方向按照喷雾轴的右手规则定义。(Ansys Help)


十四、Step 13:液滴直径

如果你只知道一个代表粒径,比如:

text
d = 200 μm

第一轮可以:

text
Diameter = 2e-4 m

但是正式计算最好采用粒径分布。

例如:

text
Rosin-Rammler

设置类似:

text
Min Diameter Max Diameter Mean Diameter Spread Parameter

如果实验有:

text
D10 D50 D90 D32

最好依据实验拟合。

碰撞问题里粒径尤其重要。

因为:

  • 大液滴惯性大;
  • 小液滴更容易跟随气流;
  • 相对速度决定碰撞机会;
  • 合并之后粒径还会继续变化。

十五、Step 14:Number of Streams——这是重点

例如:

text
Number of Streams = 500

不要把它理解成:

实际只有 500 个水滴。

Fluent DPM 中一个 parcel 可以代表大量实际液滴。

对于 Hollow Cone,Number of Streams 决定从喷射圆周产生多少代表性 parcel。官方文档也明确指出 Hollow Cone 的 Number of Streams parcels 从 injection plane circumference 释放。(Ansys Help)

建议第一轮:

text
每喷嘴 200~1000 streams

例如:

text
4 个喷嘴 × 500

随后做:

text
500/nozzle 1000/nozzle 2000/nozzle

比较目标高度的:

text
平均速度 速度分布 D32 碰撞/合并程度

如果结果还有明显变化,就说明 parcel 数不够。

如果使用粒径分级,Fluent 官方也要求 Number of Streams 至少足够覆盖所有粒径类别。(Ansys Help)


十六、Step 15:质量流量

假设每个喷嘴:

text
0.02 kg/s

则:

text
Total Flow Rate = 0.02 kg/s

4 个喷嘴:

m˙total=4×0.02=0.08  kg/s\dot m_{total}=4\times0.02=0.08\;kg/s

Fluent 的 Cone Injection 有独立的 Total Flow Rate 输入。(Ansys Help)

一定检查:

text
N喷嘴 × 单喷嘴质量流量

是不是和设备总喷水量一致。


十七、Step 16:Start Time / Stop Time

因为这是 transient DPM。

例如持续喷射 2 秒:

text
Start Time = 0 s Stop Time = 2 s

如果:

text
Start Time = 0 Stop Time = 0

那么在 unsteady tracking 中通常只会在计算开始时产生一次粒子,不是持续喷水。Fluent 官方特别说明了这一点。(Ansys Help)

所以连续喷水不要误填成:

text
0 → 0

而应该覆盖整个需要喷射的模拟时间。

例如:

text
0 → 5 s

十八、多个喷嘴怎么建立

假设锅炉顶部有 6 个相同喷嘴。

建立:

text
nozzle_01

之后复制 injection,然后只修改:

text
X Y Z Axis

例如:

喷嘴XYZAxis
nozzle_010.50.550,0,-1
nozzle_021.00.550,0,-1
nozzle_031.50.550,0,-1
nozzle_040.51.050,0,-1
nozzle_051.01.050,0,-1
nozzle_061.51.050,0,-1

其他参数保持一致。

一定点击:

text
Update Injection Display

检查所有锥体:

text
位置正确 方向正确 锥角正确 没有向锅炉外喷

Fluent 支持直接预览 cone injection 的位置和方向。(Ansys Help)


十九、DPM Numerics 设置

建议:

text
Unsteady Particle Tracking = ON

如果你打开 Collision,Fluent 本身也会切到 unsteady particle tracking。(Ansys Help)

第一版可以使用:

text
Use Fluid Flow Time Step

也就是:

ΔtparticleΔtflow\Delta t_{particle}\approx\Delta t_{flow}

如果碰撞非常强或高速喷嘴局部网格很细,可以进一步让 particle timestep 更小。

一个实用的初始判断

建议使:

UpΔtpΔxU_p\Delta t_p \ll \Delta x

例如希望粒子一步移动不超过约局部单元尺寸的 10%~20%,可以先估:

Δtp0.1ΔxUp,max\Delta t_p\lesssim \frac{0.1\Delta x}{U_{p,max}}

比如:

text
最小局部网格 = 5 mm 最大液滴速度 = 20 m/s

则可以从:

Δtp0.1×0.00520=2.5×105s\Delta t_p\approx \frac{0.1\times0.005}{20} =2.5\times10^{-5}s

量级开始测试。

这不是 Fluent 的硬性规定,而是给你找初始时间步的工程方法。

关键是最终比较:

text
Δt Δt/2 Δt/4

目标高度液滴速度结果是否基本不变。

Fluent 官方明确提醒:碰撞结果可能出现 particle timestep dependence,因此碰撞问题尤其需要时间步独立性验证。(Ansys Help)


二十、Tracking Numerics

建议采用:

text
High Resolution Tracking

新版 Fluent 官方推荐从粒子第一次注入时就使用 high-resolution particle tracking,以提高定位和跟踪的精度与鲁棒性。(Ansys Help)

其他高级数值选项第一轮保持默认即可。

如果后面控制台出现大量:

text
incomplete lost aborted

再针对性排查:

text
Max Number of Steps 网格 粒子时间步 Injection 位置 边界

二十一、DPM 边界条件

进入每个 wall:

text
Boundary Conditions → wall → DPM

常见类型有不同物理意义。

如果液滴撞锅炉壁后直接沉积:

text
trap

通常比较适合锅炉喷水撞壁后不再进入主喷雾统计的情况。

如果液滴撞壁弹回:

text
reflect

如果是气体出口,通常让液滴:

text
escape

例如推荐第一版:

text
boiler_wall → trap bottom/outlet → escape gas_outlet → escape

除非你确实要研究:

text
液滴撞墙 → 形成液膜 → 再飞溅

否则先不要加 Wall Film。


二十二、初始化

进入:

text
Solution Initialization

选择:

text
Hybrid Initialization

然后:

text
Initialize

如果锅炉本身有烟气流动

最好:

先不喷颗粒,把连续相流场算稳定。

即:

text
Gas Flow Only 得到合理速度/温度/压力场 再打开 DPM injection 进行 transient spray

这样通常比气相和喷雾从 t=0 同时发展稳定得多。


二十三、时间步和总计算时间

比如锅炉高度:

text
5 m

液滴平均速度大约:

text
10 m/s

单纯穿越时间约:

t510=0.5st\sim\frac{5}{10}=0.5s

考虑阻力和气流后可能更久。

所以计算总时间例如可以设置:

text
2~5 s

直到目标 sampling plane 上的数据进入统计稳定阶段。


二十四、最重要的部分:建立“某一高度测速平面”

假设你想测:

text
Z = 2.0 m

进入类似:

text
Results → Surfaces → Plane

创建:

text
velocity_plane_z2

定义:

text
Z = 2.0 m

让它完全横穿锅炉流体域。

注意:

不要用普通 Surface Integral 去测 DPM 速度。

因为你真正需要的是:

每一个穿过 Z=2 m 平面的 parcel,当时的速度是多少。

这应该使用 DPM Sampling


二十五、开启 DPM Sample Trajectories

进入:

text
Results → Reports → Discrete Phase → Sample → Edit

新版名称通常是:

text
Sample Trajectories

选择:

Release From Injections

选中:

text
nozzle_01 nozzle_02 nozzle_03 ...

或者所有 injections。

Plane

选择:

text
velocity_plane_z2

然后:

text
Sort Sample Files = ON

建议打开。

对于 unsteady tracking,Fluent 会按照 parcel 穿过 sampling plane 的 flow-time 对文件排序。(Ansys Help)

然后点:

text
Start

要在开始正式 transient calculation 之前点 Start。

Unsteady DPM 情况下,点击 Start 会先打开 sampling 文件并写入 header;之后每当 parcel 穿过指定平面时,其状态就会写入文件。计算结束后再点 Stop。(Ansys Help)


二十六、它最后会生成什么?

假如平面叫:

text
velocity_plane_z2

Fluent 会在工作目录生成类似:

text
velocity_plane_z2.dpm

DPM sampling 文件会记录粒子穿越平面时的状态,官方说明可用于记录诸如位置、速度、粒径、温度、质量流等粒子信息。(Ansys Help)

对于 unsteady sample 文件,你会看到类似数据概念:

text
x y z u v w diameter temperature parcel-mass mass n-in-parcel particle-time flow-time particle-id

官方的 unsteady DPM 文件格式也包含位置、三个速度分量、直径、parcel mass、parcel 中的粒子数量以及 flow-time 等字段。(Ansys Help)


二十七、怎么得到颗粒速度?

文件中有:

text
u v w

速度大小就是:

V=u2+v2+w2V=\sqrt{u^2+v^2+w^2}

如果喷射主要沿 -Z:

还应该单独保存:

ww

因为你可能真正想知道的是:

text
vertical particle velocity

而不是总速度 magnitude。

因此最好最后同时输出:

text
V u v w diameter flow-time x y

这样才能分析:

text
哪个喷嘴 什么位置 什么粒径 什么时刻 速度是多少

二十八、千万不要直接对 .dpm 每一行做普通平均

这是 DPM 后处理最容易犯的错误之一。

一个 parcel 可能代表:

text
1000 droplets

另一个可能代表:

text
100000 droplets

所以:

V1+V2++VNN\frac{V_1+V_2+\cdots+V_N}{N}

不一定是你真正需要的物理平均速度。

Fluent 官方针对 unsteady particle sample 建议,对速度这类 intensive variable 使用:

text
parcel-mass

进行 weighting。(Ansys Help)

所以推荐计算:

Vˉm=imparcel,iViimparcel,i\bar V_m= \frac{\sum_i m_{parcel,i}V_i} {\sum_i m_{parcel,i}}

类似地:

wˉm=imparcel,iwiimparcel,i\bar w_m= \frac{\sum_i m_{parcel,i}w_i} {\sum_i m_{parcel,i}}

这通常比简单的 parcel 算术平均更合理。


二十九、Fluent 内部也能直接做速度分布

进入:

text
Results → Reports → Discrete Phase → Histogram

Read:

text
velocity_plane_z2.dpm

然后:

text
Variable = particle velocity Weight = parcel-mass

Fluent 可以生成 DPM sample 的概率分布 histogram;对于 unsteady tracking 的速度、温度、位置等量,官方推荐使用 parcel-mass weighting。(Ansys Help)

你最终可以得到:

text
速度 PDF 累计速度分布 粒径分布 速度-粒径相关性

例如非常有价值的结果:

text
Diameter vs Vertical Velocity

可以直接回答:

大液滴是不是比小液滴下降更快?


三十、如果想看测量平面上的速度空间分布

Fluent 还支持直接根据 DPM Sampling 构建平面上的统计结果。

即:

text
Sample .dpm Histogram Contour Plots from DPM Sample Data

可以形成类似:

text
nozzle 1 nozzle 2 ↓ ↓ 12 m/s 11 m/s 8 m/s collision zone ------------------------------- Z = 2 m sampling plane

Fluent 会把 sampling plane 分成网格区域,对各区域中的 DPM sampling events 做加权统计。(Ansys Help)

这对于多喷嘴问题非常有用。


三十一、云计算最重要:一定配置 Autosave

进入:

text
Solution → Calculation Activities → Autosave → Edit

例如:

text
Save Data File Every = 100 time steps

File Name:

text
/project/boiler/backup/boiler_run

选择文件名附带:

text
time-step

或者:

text
flow-time

得到:

text
boiler_run-00100.dat.h5 boiler_run-00200.dat.h5 boiler_run-00300.dat.h5 ...

并保存对应 case。

Fluent 的 Autosave 能按 transient time steps 或 flow time 自动保存 case/data;默认如果不改路径,会保存到当前 Fluent working directory。(Ansys Help)


三十二、云计算目录建议

不要让所有东西存在临时目录。

建议一开始把 Fluent 工作目录设置成云平台的永久磁盘/持久化挂载目录

text
/project/boiler_case/

目录结构建议:

text
boiler_case/ ├── case/ │ ├── boiler.cas.h5 │ └── boiler.dat.h5 ├── autosave/ │ ├── boiler_001000.dat.h5 │ ├── boiler_002000.dat.h5 │ └── ... ├── dpm_sample/ │ └── velocity_plane_z2.dpm ├── particle_history/ ├── monitor/ └── journal/

这里最重要的是三类文件:

text
.cas.h5 .dat.h5 .dpm

其中:

text
.cas.h5

保存模型/网格/设置。

text
.dat.h5

用于保存当前流场与可续算的 solution state;Fluent 的相关文档也明确使用 case/data 对作为 continuation/restart 数据。(Ansys Help)

而:

text
velocity_plane_z2.dpm

是你最终真正用来做液滴测速统计的文件。


三十三、如果还要保存“所有颗粒轨迹”,再开 Particle History Export

如果你只是要:

Z=2 m 处液滴速度

.dpm sampling 已经够了。

但如果你还希望以后看到:

text
每个时刻锅炉里有哪些颗粒 它们在哪里 怎么运动

建议额外设置:

text
Solution → Calculation Activities → Automatic Export → Particle History Data Export

可以选择 particle variables 并按照:

text
Time Step

或者:

text
Flow Time

定期导出粒子历史。Fluent 官方支持 transient calculation 过程中自动导出 Particle History Data。(Ansys Help)

例如:

text
every 20 time steps

而不是每一步都导。

否则文件量可能非常大。


三十四、我的云计算保存方案建议

你可以采用三层保险:

第一层:Restart

text
Autosave case/data 每 50~200 steps

目的:

云机器掉线后继续算。

第二层:真正的测量结果

text
velocity_plane_z2.dpm

目的:

保存所有穿过指定高度的液滴数据。

第三层:可视化粒子历史

text
Particle History Export 每 10~50 steps

目的:

以后做粒子动画和轨迹分析。

这样即使云机器被释放,你只要把整个持久化目录下载下来即可。


三十五、正式计算之前做一个很短的测试

千万不要一开始直接提交:

text
50000 time steps

先跑:

text
20~100 steps

检查以下现象:

text
喷嘴位置对不对 喷射方向对不对 Hollow Cone角度对不对 液滴有没有向下走 Gravity对不对 粒子有没有大量lost/incomplete 不同喷嘴喷雾有没有发生交叠 Sample plane有没有生成.dpm文件 .dpm文件里面有没有数据 Autosave文件有没有落到永久目录

确认后再提交长作业。


三十六、Particle Tracks 检查

进入:

text
Results → Graphics → Particle Tracks

选择所有喷嘴:

text
nozzle_01 ... nozzle_N

Color By 推荐分别检查:

text
Particle Velocity Particle Diameter Particle Residence Time

尤其看:

按 Diameter 着色

如果开启 Coalescence 后:

text
100 μm \ collision / 150 μm >150 μm

在喷雾重叠区看到粒径增大,这是判断合并是否真正发生的重要手段之一。


三十七、Collision 模型的一个关键限制

你以后如果发现:

网格加密以后反而碰撞明显减少了。

不要立即认为是物理现象。

标准碰撞算法存在 parcel/mesh statistics 影响。Fluent 官方说明标准方法主要允许位于同一 cell 的 parcel 参与碰撞统计,因此很细的网格配上较少 parcel 会产生问题;新版还提供 Extended Collision Stencil 作为这种特殊情况下的扩展方法。(Ansys Help)

所以至少做:

CaseMeshStreams/nozzleΔt
Abaseline500Δt
Bbaseline1000Δt
Cbaseline2000Δt
Dfiner2000Δt
Ebaseline2000Δt/2

然后比较:

text
Z=H: 平均速度 平均竖直速度 D32 速度标准差 粒径分布 通过质量

如果 A→B→C 变化越来越小,同时 C、D、E 接近,结果才比较可信。


三十八、对于你的任务,我建议的第一版参数组合

如果你现在主要目标是先把整个流程跑通,可以从这套简化模型开始:

参数第一版建议
SolverPressure Based
TimeTransient
Turbulencek-ω SST
GravityON
DPMON
Particle TypeDroplet / 简化时无相变
InjectionCone
Cone TypeHollow Cone
Number Streams500/nozzle
Cone Half Angle按真实喷嘴
Velocity按喷嘴实际出口速度
Diameter先单一粒径,之后 Rosin-Rammler
Swirl Fraction0
Dispersion0–小角度
Stochastic CollisionON
CoalescenceON
Breakup第一版 OFF
Evaporation第一版 OFF
Turbulent DispersionON
Wall DPM BCtrap
Outlet DPM BCescape
Particle TrackingUnsteady
SamplingZ=目标高度
Sample File.dpm
Autosave每 50–200 steps
Particle History可选

三十九、最终你应该拿到的文件

仿真结束以后,至少保留:

text
boiler_final.cas.h5 boiler_final.dat.h5 velocity_plane_z2.dpm boiler_autosave_XXXXX.dat.h5

如果开启 Particle History:

text
particle_history_XXXXX.*

再保存一个:

text
boiler_setup.jou

也非常推荐。

以后换一台云机器:

text
Read case/data → Continue Calculation

就不用重新设置模型。


四十、你的完整 Fluent 工作流可以简化成这张逻辑图

text
锅炉 fluid domain Mesh Transient continuous phase Gravity + Turbulence DPM Stochastic Collision Coalescence Create nozzle_01 Cone → Hollow Cone 复制 N 个 nozzle 设置 Position + Axis Velocity + Cone Angle Diameter + Mass Flow Initialize gas field Create Z = H plane DPM Sample Trajectories START SAMPLING Autosave ON Run Transient 液滴运动 ↙ ↘ collision coalescence larger droplets crossing Z = H plane velocity_plane.dpm u, v, w, diameter parcel-mass, time V = √(u²+v²+w²) parcel-mass weighted statistics

最关键的 5 个设置

如果你只记住五件事,就是:

喷嘴用:

text
DPM → Cone → Hollow Cone

Hollow Cone 本身就是 Fluent 官方支持的 cone injection 类型。(Ansys Help)

液滴碰撞合并:

text
Stochastic Collision = ON Coalescence = ON

(Ansys Help)

多喷嘴不能只增加喷嘴数量,还必须保证:

text
Number of Streams 足够大

因为你做的是统计碰撞。

指定高度测速不要用普通 Surface Average,而用:

text
Plane + DPM Sample Trajectories

它会在粒子实际穿越平面时把状态写入 .dpm 文件。(Ansys Help)

云计算一定同时保存:

text
.cas.h5 + .dat.h5 + velocity_plane.dpm

并打开 Autosave。Transient Autosave 可以按 time step 或 flow time 自动保存。(Ansys Help)

如果你后续把锅炉尺寸、喷嘴数量和坐标、喷嘴流量、喷孔直径、喷雾角、初始液滴直径/粒径分布、喷射速度、你要测量的高度,以及 Fluent 版本发给我,我可以直接在这套流程基础上替你整理成一张 “Fluent 每个窗口具体填什么数值”的参数表,包括每个喷嘴的 X/Y/Z/Axis、建议网格尺寸、时间步、Streams 数量和 sampling 设置。

このQ&Aを共有