第 16 章 教程-混合罐

(第一部分)在Ansys Fluent中设置、处理和保存多相案例的初始流体场,该流体场稍后可用于与Rocky DEM的双向Fluent耦合。

(第二部分)使用您在第一部分创建的.cas和.dat文件来设置双向多相仿真的Rocky部分,然后结合Ansys Fluent运行它。

16.1. 第一部分:Fluent案例设置

16.1.1. 目标

本教程的主要目的是使用Ansys Fluent设置和处理一个多相CFD案例,以便稍后在采用Rocky的双向耦合仿真中使用。


重要:  即使您已经熟悉CFD,也请先学习第一部分,以了解采用Rocky进行多相耦合案例的主要限制和需求。


  • 本教程的第二部分将介绍如何设置Rocky项目。

所考虑的场景是一个混合罐,其中,固体材料(颗粒)从空气落入水中,然后被旋转的叶轮混合。

您将了解如何:在Ansys Fluent中设置、处理和保存多相案例的初始流体场,该流体场稍后可用于与Rocky的双向Fluent耦合。

16.1.2. 前提条件

要完成本教程,您需要拥有Ansys Fluent2025 R1的有效许可证。


重要:  本高级教程假设您已经熟悉Ansys Fluent UI和项目工作流程。

  • 如果不是这种情况,请在开始本教程之前,参考Ansys Fluent用户文档,了解有关Fluent用法的基本介绍。


16.1.3. 几何结构介绍

 

本教程中的几何结构由以下部分组成:

  • (1)罐壁面

  • (2)混合轴

  • (3)混合叶轮


注意:  这些几何结构来自您将在本教程中导入的Fluent .cas文件。


16.1.4. 打开Ansys Fluent

要设置Fluent案例,请执行以下操作:

  1. 打开Ansys Fluent。

  2. Fluent Launcher中,在Dimension下方,确保选择了3D;此外,在Options下方,确保选择了Double Precision(如图所示)。


    重要:  与Rocky耦合需要Double Precision和3D。


  3. 单击Start

     

16.1.5. 导入案例

对于本教程,我们分别对罐和叶轮进行网格划分。

因此,空气和水相遇的受影响的几何体(BOI)区域可以有更高的分辨率。

这两个区域将通过Fluent中的滑动界面方法一起求解。

 

对于本教程,我们已经在提供的Fluent文件中创建了网格界面。按照下面的步骤打开它。

  1. 此处下载dem_tut16_files.zip文件。

  2. dem_tut16_files.zip解压缩到您的工作目录。

  3. File菜单中,指向Read,然后单击Case

  4. Select File对话框中,从dem_tut16_files/mesh文件夹中选择Mixing_Tank.cas.h5,然后单击OK

16.1.6. 流体网格设置

导入了Fluent .cas文件后,我们就可以开始设置Fluent案例了。

  1. 使用下表中的信息来可视化和设置网格。


    提示:  如果您在这些表格中遇到了不熟悉的设置或过程,请参考您的Ansys文档以找到详细说明。


    步骤位置参数或操作设置
    ASetup | General显示网格(impeller, opening, shaft, walls | Display
    检查网格
    TimeTransient
    Gravity(已启用)
    Gravitational AccelerationY方向上设置为-9.81 [m/s2]

16.1.7. 流体相设置

对于本教程,我们希望两个流体相分别代表水和空气,因此我们将使用多相方法。


重要:  尽管我们将在本教程中仅仿真两个流体相,但欧拉相的数量将设置为3(相数+ 1),以说明所需的颗粒相。


  1. 使用下表中的信息来设置流体材料。


    注意:  我们将保留空气流体的默认设置。


    步骤位置参数或操作设置
    AStep | Materials | FluidCreate New Fluid
    Nameparticles
    Chemical Formulaparticles


    注意:  这种新的颗粒流体材料将被用作所需的分散相。

    对于该材料,在Fluent中设置的属性稍后将被Rocky覆盖。

    要创建每个新的流体材料,从Create/Edit Materials对话框中,单击Change/Create并在询问覆盖其他材料时选择No


    步骤位置参数或操作设置
    BStep | Materials | FluidCreate New Fluid
    Namewater-liquid
    Chemical Formulah20<l>
    Constant Density998.2 [kg/m3]
    Constant Viscosity0.001003 [kg/(m s)]

  2. 接下来,使用下表中的信息设置Eulerian Muliphase模型,定义三种相材料,并设置各相之间的相互作用。

    步骤位置参数或操作设置
    AStep | Materials | MultiphaseModels | Inhomogeneous ModelsEulerian
    … | Number of Eulerian Phases3
    … | Eulerian Parameters(全部清除)
    … | FormulationImplicit


    重要:  任何Rocky耦合多相案例都需要这前四个设置。


    步骤位置参数或操作设置
    B… | Phases | phase-1 - Primary PhaseNamewater
    Phase Materialwater-liquid ⯆
    C… | Phases | phase-2 - Secondary PhaseNameair
    Phase Materialair ⯆
    Constant Diameter0.005 [m]
    D… | Phases | phase-3 - Secondary PhaseNameparticles
    Phase Materialparticles ⯆

  3. 单击Apply更新相名称,以进入下一步。

    步骤位置参数或操作设置
    E… | Phase Interaction | Forces | water : airSurface Tension Force Modeling(已启用)
    Surface Tension Coefficientconstant ⯆ 0.072 [N/m]
    F… | Phase Interaction | Interfacial AreaInterfacial Area [m-1] (所有三个)ia-symmetric ⯆


    注意:  流体-颗粒相间传递是在Rocky侧计算的,而不是在Fluent中,因此我们不需要担心设置这个第三相(颗粒)的值。

    流体-颗粒动量交换项是在Rocky侧计算的,而不是在Fluent中,因此我们只需要定义流体相之间的相互作用。

    流体之间必须定义的唯一相互作用是Drag。对于本教程,Drag Coefficient保留为默认值(schiller-naumann),而Interfacial Area参数在步骤F中进行了定义。

    由于本教程包括一个自由表面问题,我们也选择考虑表面张力。


16.1.8. 湍流定义

  1. 使用下表中的信息来设置湍流模型。

    步骤位置参数或操作设置
    ASetup | Models | ViscousModelk-epsilon (2-eqn)
    Near-Wall TreatmentScalable Wall Functions
    Options | Production Limiter(已启用)
    Turbulence Multiphase ModelPer Phase


    注意:  湍流模型的选择取决于应用。

    因为对于这个问题,流体相是完全分离的,Turbulent Multiphase Model应该设置为Per Phase


16.1.9. 单元区域条件

为了说明叶轮的旋转,我们需要定义一个网格运动。

  1. 使用下表中的信息来设置单元区域条件。

    步骤位置参数或操作设置
    ASetup | Cell Zone Conditions | Fluid | movingregionMesh Motion(已启用)
    Speed12 [rad/s]
    Rotation-Axis Direction0, -1, 0 [ - ]


    注意:  如果在Fluent中为任何区域指定了移动网格,那么在导入Fluent .cas文件后,此处定义的Zone Namemovingregion)将成为Rocky中新的Motion Frame。(我们将在本教程的第二部分中介绍这一点。)


16.1.10. 边界条件

  1. 使用下表中的信息在shaft组件上设置边界条件。

    步骤位置参数或操作设置
    ASetup | Boundary Conditions | shaftWall MotionMoving Wall
    MotionRotational
    Speed12 [rad/s]
    Rotation-Axis Direction0, -1, 0 [ - ]


    注意:  这应该与我们之前为movingregion区域定义的旋转相匹配。


现在,压力出口条件必须设置为顶部开口。

  1. 选择Boundary Conditions后,从Task Page中,双击opening组件并执行以下操作:

    1. 保持waterparticles Phases的默认设置。(无回流体积分数)。

    2. 对于空气相,在Multiphase选项卡上,将Backflow Volume Fraction更改为1


注意:  每个剩余的表面被建模为非滑动边界。


 

16.1.11. 方法

  1. 使用下表中的信息来定义求解方法。

    步骤位置参数或操作设置
    ASolution | MethodsPressure-Velocity Coupling SchemePhase Coupled SIMPLE
    Transient FormulationFirst Order Implicit
    High Order Term Relaxation(已启用)
    查看Relaxation Options
    BRelaxation Options(对话框)Relaxation Factor0.6 [ - ]


    注意:  对于所有多相耦合仿真,必须将Pressure-Velocity Coupling Scheme设置为Phase Coupled SIMPLE

    此外,对于所有双向耦合仿真,必须将Transient Formulation设置为First Order Implicit

    Relaxation仅用于帮助更容易地运行本示例仿真,以实现教程的目的。


16.1.12. 控件

仅出于本教程的目的,我们将修改控件以增加稳定性。

  1. 使用下表中的信息定义Under-Relaxation Factors

    步骤位置参数或操作设置
    ASolution | ControlsPressure0.2 [ - ]
    Momentum0.5 [ - ]
    Volume Fraction0.7 [ - ]
    Turbulent Kinetic Energy0.7 [ - ]
    Turbulent Dissipation Rate0.7 [ - ]
    Turbulent Viscosity0.7 [ - ]

16.1.13. 初始化

为Rocky提供正确的初始体积分数场是很重要的。

对于本教程:

  • 空气相在整个域中以1.0的体积分数初始化,然后在水区域中被修补为0的体积分数。

  • 此外,空气湍流量在区域内被修补为零,反之亦然。这是通过两个单元寄存器区域完成的。


重要:  对于颗粒相,体积分数必须全部初始化为零。


16.1.14. 单元寄存器

  1. 初始化之前,使用下表中的信息定义两个新的单元寄存器。

    步骤位置参数或操作设置
    ASolution | Cell Registers创建新区域
    BRegion Register(对话框)Nameair
    Input Coordinates | Min-1, 0.1, -1 [m]
    Input Coordinates | Max1, 1, 1 [m]
    CSolution | Cell Registers创建新区域
    DRegion Register(对话框)Namewater
    Input Coordinates | Min-1, -1, -1 [m]
    Input Coordinates | Max1, 0.1, 1 [m]

16.1.15. 初始化和修补

  1. 然后,使用下表中的信息进行初始化,然后修补相。

    步骤位置参数或操作设置
    ASolution | InitializationReference FrameAbsolute
    air Volume Fraction1 [ - ]
    初始化
    修补
    BPatch(对话框)Phaseair ⯆
    VariableVolume Fraction
    Value0 [ - ]
    Registers to Patchwater
    修补
    CPatch(对话框)Phaseair ⯆
    VariableTurbulent Kinetic Energy
    Value0 [m2/s2]
    Registers to Patchwater
    修补
    DPatch(对话框)Phasewater ⯆
    VariableTurbulent Kinetic Energy
    Value0 [m2s2]
    Registers to Patchair (only)
    修补

16.1.16. 计算设置

  1. 最后,使用下表中的信息来设置计算。

    步骤位置参数或操作设置
    ARun CalculationTime Advancement TypeFixed
    Number of Time Steps50 [ - ]
    Time Step Size0.005 [s]
    Max Iterations/Time Step50 [ - ]


    重要:  对于Time Stepping Method,应始终选择Fixed

    确保您设置的Time Step Size值与Rocky和Fluent文件所需的最小初始输出频率值相匹配。



    提示:  在以后的Rocky设置中,您可以将输出频率更改为低于这个最小值。


16.1.17. 设置确认

此时在Fluent设置中,您的程序屏幕应该类似于下图所示。

 

16.1.18. 计算项目

  1. Run Calculation Task Page中,单击Calculate

  2. 让仿真运行几个时间步长,直到您可以确认它正在收敛(如图所示)。

     

  3. Stop处理案例。

在Rocky中,将稳定的CFD结果用作初始条件非常重要。

第二部分中,当我们在Rocky中定义CFD Coupling时,这些CFD结果将作为初始化文件导入。

  1. Case & Data写入名为Mixing_Tank_B.cas.h5的文件

  2. 关闭Fluent。

16.1.19. 结论

本教程的第一部分到此结束,其中Ansys Fluent可用于设置多相CFD仿真,该仿真稍后将与Rocky进行双向耦合。

在本教程中,您可以:

  • 使用Ansys Fluent设置和处理CFD案例的初始流体场,包括两种流体(waterair)和一种颗粒相(particles)。

  • 了解采用Rocky进行多相案例耦合时需要哪些Fluent设置。

下一步是什么?

  • 您已经准备好进入第二部分,创建Rocky项目,并将其与此CFD案例进行双向耦合。

16.2. 第二部分:Rocky耦合设置

16.2.1. 目标

本教程的主要目的是使用我们在第一部分中创建的.cas和.dat文件,用于设置双向多相仿真的Rocky部分,然后与Ansys Fluent一起耦合运行。

提醒一下,所考虑的场景是一个混合罐,其中,固体材料(颗粒)从空气落入水中,然后被旋转的叶轮混合。

您将了解如何:

  • 从Fluent .cas文件导入几何结构组件

  • 从Fluent .cas文件导入几何结构运动

  • 启用收集CFD耦合颗粒统计数据

  • 在Rocky中设置并运行多相双向Fluent耦合仿真

您将使用这些功能:

  • CFD耦合颗粒统计模块

  • 自定义几何结构导入

  • 运动坐标系

  • 双向Fluent CFD耦合

16.2.2. 前提条件

要完成本教程,您需要在运行耦合仿真的同一台机器上安装以下两项:

  • (1)Ansys Fluent2025 R1的有效许可证。

  • (2)Rocky 2025 R1的许可证。


重要:  本高级教程假设您已经熟悉以下程序和资源:

  • Rocky 2025 R1程序。

    • 如果不是这种情况,建议您在开始本教程之前至少完成教程01-05

  • Ansys Fluent程序。

    • 如果不是这种情况,请在开始本教程之前,参考Ansys Fluent用户文档,了解有关Fluent用法的基本介绍。


16.2.3. 几何结构介绍

 

本教程中的几何结构由以下部分组成:

  • (1)罐壁面

  • (2)混合轴

  • (3)混合叶轮


注意:  这些几何结构来自您在第一部分从Fluent中导出的Fluent .cas文件。


16.2.4. 项目创建

  1. 请执行下列操作之一:

    • 如果您已经完成了本教程的第一部分,请确保您拥有导出的Mixing_Tank_B.cas.h5Mixing_Tank_B.dat.h5文件。(第二部分将使用这些文件。)

    • 如果您没有完成第一部分中的项目,请确保您已经下载并解压缩了随本PDF提供的dem_tut16_files zip文件夹。

  2. 打开Rocky 2025 R1

  3. 创建新项目。

  4. 将空项目保存到您选择的位置。

16.2.5. 项目设置

对于本教程,我们希望完成以下所有操作:

  • 启用Coarse Grain Modeling (CGM)来帮助仿真微米级颗粒。


    提示:  如欲了解有关使用CGM的分步示例,请参考教程17-混合三通。


  • 使用CFD Coupling Particle Statistics模块收集颗粒-流体相互作用统计数据,以便进行后处理。


    提示:  如欲了解有关使用该模块的分步示例,请参考教程13-风移器。


  • 导入我们在多相Fluent案例中使用的相同几何结构运动定义。

  1. 使用下表中的信息开始设置您的Rocky项目。


    提示:  如果您在这些表格中遇到了不熟悉的设置或过程,请参考Rocky用户手册和/或其他教程(通过教程索引),以找到您需要的详细说明。


    步骤数据实体编辑器位置参数或操作设置
    AStudyStudyStudy NameMixing Tank
    BPhysicsPhysics | Coarse-GrainingEnable Coarse-Graining(已启用)
    CModulesModulesCFD Coupling Particle Statistics(已启用)
    DModules

    CFD Coupling Particle Statistics

    CFD Coupling Particle StatisticsDrag Force(已启用)
    Pressure Gradient Force(已启用)
    EGeometriesImport WallMixing_Tank_B.cas.h5Import Unit设置为“m”

导入.cas文件后,有三个我们在Rocky仿真中不需要的几何结构组件,我们可以删除它们。

我们还将创建一个注入颗粒的入口。

  1. 使用下表中的信息继续设置您的Rocky项目。

    步骤数据实体编辑器位置参数或操作设置
    AGeometries

    interface_mr

    删除几何结构
    BGeometries

    interface_tank

    删除几何结构
    CGeometries

    opening

    删除几何结构
    DGeometries创建Circular Surface
    EGeometries

    Circular Surface <01>

    Circular SurfaceCenter Coordinates0, 0.0125, 0 [m]
    Max Radius0.07 [m]
    Min Radius0.008 [m]

16.2.6. 几何结构运动同步

为了使我们的耦合仿真正常运行,DEM部分中的impellershaft几何结构需要使用与CFD求解器中相同的速度和位置旋转。

为了确保运动完全相同并保持同步,Rocky将根据Fluent保存在.cas文件中的运动信息自动创建一个新的运动坐标系。

当我们在本教程的后面部分设置了项目的CFD耦合部分后,这个运动坐标系就会出现。

现在,我们将跳过Motion Frames步骤,稍后再返回来。

16.2.7. 项目设置

对于本教程,我们将有两个颗粒组,我们希望每个组有不同的材料。

因此,我们将修改Default Particles材料,然后为第二个颗粒组创建这个材料的副本。

  1. 使用下表中的信息继续设置您的Rocky项目。

    步骤数据实体编辑器位置参数或操作设置
    AMaterials

    Default Particles

    MaterialUse Bulk Density(已清除)
    Density1100 [kg/m3]
    Young's Modulus1e+06 [N/m2]
    复制
    BMaterials

    Default Particles <01>

    MaterialDensity1300 [kg/m3]


注意:  我们将保留所有Material Interactions的默认设置。


接下来,让我们使用相同的CGM Scale Factor但不同的材料来创建两个球形颗粒组。

我们还可以定义释放这两个颗粒组的输入,并减少注入时间,直到仿真的最开始。

  1. 使用下表中的信息继续设置您的Rocky项目。

    步骤数据实体编辑器位置参数或操作设置
    AParticles创建颗粒
    BParticles

    Particle <01>

    Particle | SizeCGM Scale Factor3 [ - ]
    Size0.0005 [m] @ 100%
    CParticles创建颗粒
    DParticles

    Particle <02>

    ParticleMaterialDefault Particles <01> ⯆
    Particle | SizeCGM Scale Factor3 [ - ]
    Size0.0005 [m] @ 100%
    EInlets and Outlets创建Particle Inlet
    FInputs

    Particle Inlet <01>

    Particle InletEntry PointCircular Surface <01> ⯆
    Particle Inlet | Particles添加行(x2)
    (1) Particle | Mass Flow RateParticle <01> ⯆ @ 0.15 [t/h]
    (2) Particle | Mass Flow RateParticle <02> ⯆ @ 0.15 [t/h]
    … | TimeStop1 [s]

16.2.8. 导入CFD解决方案

对于CFD Coupling步骤,我们将选择2-Way下方的Fluent选项。

  • Rocky中的该选项考虑了作用在颗粒上的流体力,并将颗粒信息传递回Fluent。

  • 选择此选项将使我们能够选择我们在本教程的第一部分创建的同一个.cas文件。


    重要:  紧随该选择之后的验证步骤要求在我们进行Rocky设置的同一台机器上拥有有效且活动的Ansys Fluent版本。


对于本教程,我们希望Rocky考虑阻力和湍流扩散的相互作用。

我们还将利用我们在第一部分中导出的.dat文件,以开始初始流体场仿真。

  1. 使用下表中的信息设置您的双向Fluent耦合选项。

    步骤数据实体编辑器位置参数或操作设置
    ACFD CouplingCoupling Mode2-Way | Fluent ⯆
    选择Fluent CAS文件Mixing_Tank_B.cas.h5
    BCFD Coupling

    2-Way Fluent

    2-Way Fluent | InteractionsTurbulent Dispersion(已启用)
    2-Way Fluent | FluentRocky Phaseparticles ⯆
    Use Data Initialization(已启用)
    Import File(按钮)
    Load FileMixing_Tank_B.dat.h5
    Execution modeLocal Parallel ⯆
    Solver Processes6 [ - ]
    Keep all files(已清除)
    Files to keep2 [ - ]
    Additional Args-g


    注意:  对于Solver Processes,根据您可用的处理器数量输入一个值。

    Additional Argument是可选的,但可使耦合仿真的Fluent部分以批处理模式运行(即不使用GUI),从而加快处理速度。


  2. 单击Open

16.2.9. 导入的运动坐标系

 

现在导入了.cas文件后,我们可以在Data面板的Motion Frames下方看到一个名为"movingregion" Motion Frame的新条目。

该项将自动以我们在Fluent(第一部分)中为网格运动设置的Zone Name命名。

Data Editors面板中查看此项时,已经定义了Rotation运动(如图所示)。

 

请注意,这些选项被全部禁用。这是为了确保Rocky中的运动与Fluent中的运动完全匹配。

16.2.10. 分配导入的运动坐标系

即使运动坐标系是自动创建的,我们仍然必须手动将其分配给我们想要移动的几何结构。

对于本教程,我们只希望impellershaft旋转,因此我们将只给这两个组件分配新运动。

  1. 使用下表中的信息来分配几何结构运动。

    步骤数据实体编辑器位置参数或操作设置
    AGeometries

    impeller

    WallMotion Frame"movingregion" Motion Frame ⯆
    BGeometries

    shaft

    WallMotion Frame"movingregion" Motion Frame ⯆


    提示:  完成分配后,您可以在Motion Preview窗口中预览这些运动。


16.2.11. 完成项目设置

最后,我们需要定义Solver设置。

对于本教程,请务必注意Fluent Outputs Multiplier,它可让您更改输出频率。


提示:  该值较高将导致产生较少的Rocky和Fluent文件。


  1. 使用下表中的信息完成Rocky设置。

    步骤数据实体编辑器位置参数或操作设置
    ASolverSolver | TimeSimulation Duration3 [s]
    Output Settings | Fluent Outputs Multiplier2 [s]
    Solver | GeneralSimulatio TargetCPU ⯆


    提示:  当您选择CPU时,请记住一些CPU已经分配给了CFD求解器。仅选择您希望Rocky在这里使用的CPU。


16.2.12. 设置确认

打开3D View窗口后,您的Data面板和工作区应类似于下图。

 

16.2.13. 仿真项目

  1. 如果Fluent已打开,请将其关闭,并在Solver实体中,单击Start

出现Simulation Summary屏幕(如图所示),然后开始处理。

由于2-Way Fluent耦合计算,还会出现一个新对话框(如图所示)。

 

 

16.2.14. 设置确认


提示:  从Fluent获取所有信息后,黑色对话框关闭。在Rocky中,您可以使用Auto Refresh复选框在处理期间在3D View窗口中查看结果。


 

16.2.15. 后处理选项

完成仿真处理后,您可以选择以多种方式对结果进行后处理,如下所述。

  • Rocky中,您可以按照以下教程中列出的相同步骤对仿真的CFD和DEM结果进行后处理:

    • 教程13-风移器 | 第三部分:单向耦合(Workbench)

    • 教程14-流化床 | 第三部分:Rocky后处理

  • 在Fluent中,您可以使用该程序中包含的工具对仿真的CFD结果进行后处理,也可以使用其他程序,如Ansys CFD-Post或Ansys EnSight。


    提示:  请参阅您的Ansys文档,了解如何使用这些工具的更多信息。


16.2.16. 结论

本教程的第二部分到此结束。

我们在第一部分中创建的.cas和.dat文件可用于设置双向多相仿真的Rocky部分,然后将其与Ansys Fluent耦合运行。

在本教程中,您可以:

  • 从Fluent .cas文件导入几何结构组件到Rocky

  • 从CFD .cas文件导入网格运动到Rocky,并将其分配给几何结构

  • 使用Rocky设置并运行与Fluent的双向耦合多相仿真

下一步是什么?如果您成功完成了本教程,那么您就可以继续学习下一个教程了。