(第一部分)项目设置与处理
(第二部分)后处理
注意: 这是一个高级教程。
本教程的主要目的是介绍SPH实体参数,并在Rocky中处理纯流体仿真。
考虑的场景是溃坝。
您将了解如何:
配置流体材料
收集流体碰撞数据
创建流体入口
您将使用这些功能:
SPH
SPH Boundary Interaction Statistics
Eulerian Solution
Inlets and Outlets
重要: 与其他Rocky教程相比,本高级教程包含更少的细节、截图和步骤。
高级教程旨在面向更熟悉Rocky用户界面(UI)并且已经很好地了解常见设置和后处理任务的用户。
如果您尚未达到这种熟悉程度,建议您在开始本教程之前至少完成教程01-05。
要开始设置本教程,请执行以下操作:
在此处下载
dem_tut24_files.zip文件。将
dem_tut24_files.zip解压缩到您的工作目录。打开Rocky2025 R1。
创建一个新项目。
将空项目保存到您选择的位置。
提示: 如果您在这些表格中遇到了不熟悉的设置或过程,请参考Rocky用户手册和/或其他教程,以找到您需要的详细说明。
请使用下表中的信息开始设置Rocky项目。
步骤 数据实体 编辑器位置 参数或操作 设置 A Study 01 Study Study Name Dam Break B Modules Modules SPH Boundary Interaction Statistics (已启用) C Modules ﹂SPH Boundary Interaction Statistics
SPH Boundary Interaction Boundary Properties | Nodal Forces (已启用) Boundary Curves | Force (已启用) D Geometries Import Wall column.stl、container.stl和gate.stl的Import Unit均设置为“m” 注意: 通过启用步骤C中的复选框,模块将收集边界的力相互作用数据。
Boundary Properties字段为每个时间步长的每个边界三角形启用值,您可使用这些值执行操作。
Boundary Curves字段可为每个时间步长启用对应于参考边界的平均值。
让导入的三个壁面透明,增强可视化。
在本教程中,将为gate创建一个Translation运动,以便放水填充由水库和闸门限定的空间。
要创建并分配gate的Motion Frame,请按照下表操作。
| 步骤 | 数据实体 | 编辑器位置 | 参数或操作 | 设置 |
|---|---|---|---|---|
| A | Motion Frames | Create Motion Frame | ||
| B | Motion Frames ﹂Frame <01> | Frame | Name | Gate Opening |
| Add Motion | ||||
| Motions | Start Time | 0.5 [s] | |||
| … | Stop Time | 0.9 [s] | |||
| … | Velocity | 0, 1, 0 [m/s] | |||
| C | Geometries ﹂gate | Wall | Motion Frame | Gate Opening ⯆ |
要可视化gate运动,可以在Motion Preview窗口预览(从Motion Frames点击Preview按钮)。
在Materials步骤中,我们将使用边界(默认边界)的默认值,而且我们会将Fluid Material 设置为表示Water。
从Data面板中,在Materials下方选择Default Fluid,并在Data Editors面板中定义Name。
SPH 步骤允许您定义SPH Solver、Kernel、Boundary Conditions和其它与流体相关的属性。
注意: 本教程案例使用默认SPH Solver WCSPH(Weakly Compressible SPH)设置。也可根据应用使用IISPH(Implicit Incompressible SPH)或DFSPH(无散度SPH),其可在各种场景中提高性能。
本教程将使用Fluid Dynamics、Wall Boundary Conditions、Positions Correction及每个高级字段的默认选项,而且我们将设置Kernel | Element Size。
从Data面板中选择SPH实体,然后在Data Editors的Model Parameters选项卡上定义Sound Speed和Element Size。
提示: 有关Sound Speed的更多信息,请参阅用户手册。在本教程中,我们将默认值更改为一个合理的值,以便获得一致的结果并缩短仿真时间。
通过打开的3D View,在Node color部分的Coloring选项卡中为流体(SPH单元)设置首选颜色。
Inlets and Outlets步骤可帮助您为流体创建两种类型的入口:
Volumetric Inlet,对流体和颗粒的作用是一样的。
Fluid Inlet,在定义的Time以恒定速率通过相关几何结构注入流体。
在本教程中,我们将创建一个Volumetric Inlet,用Water填充container 的一部分。
按照下表中的步骤创建并定义入口。
步骤 数据实体 编辑器位置 参数或操作 设置 A Inlets and Outlets Create Volumetric Inlet B Inlets and Outlets ﹂Volumetric Inlet <01>
Volumetric Inlet Name Water Fill Volumetric Inlet | SPH Mass 800 [kg] … | Region Seed Coordinates 0.2, 0.15, 0.305 [m] Box Bounds | Center Coordinates 0.2, 0.15, 0.305 [m] … | Dimensions 0.4, 0.3, 0.61 [m]
在3D View中,当选择Water Fill Inlet时,可以可视化要填充的区域。
注意: 此外,您还可以通过点击并拖动附加到每个面或立方体区域中心的滑块手柄来用鼠标设置区域的尺寸和中心(对于本教程而言,请保持您刚刚定义的值)。
在Domain Settings步骤中,我们将定义一个自定义边界框,其可超出壁面几何结构的限制。
这样做将允许Rocky计算可能跳到水库区域上方的单元(由于与柱子或水库的碰撞而飞溅)。
在默认情况下,Rocky会根据Walls的边界自动创建一个Domain框。
任何超出这些限制的单元都将从仿真中消除。
这些默认设置都不适合溃坝仿真,因为水会溅过水库区域。
使用下表中的信息来设置Domain和Solver。
步骤 数据实体 编辑器位置 参数或操作 设置 A Domain Settings Domain Settings Use Boundary Limits (已清除) Min Values 0, 0, 0 [m] Max Values 1.6, 0.75.0.61 [m] B Solver Solver | Time Simulation Duration 3.5 [s] Output Settings | Time Interval 0.01 [s] Solver | General Simulation Target GPU ⯆
您可以在3D View中检查所生成的域。
注意: 在这种情况下,GPU是首选,但也可通过CPU运行仿真。
本教程的目的是在处理完流体(SPH)仿真之后对其进行分析。我们将从第一部分结束的地方继续。
您将了解如何:
创建流体表面
在3D View窗口中可视化SPH Properties
分析Eulerian Solution
您将使用这些功能:
Animation面板
Eulerian Solution
Time plot
User Process - Cube
User Process - Plane
如果您已完成本教程的第一部分,请确保Rocky项目是打开的。(第二部分将从第一部分终止的地方继续。)
如果您没有完成第一部分,请执行以下所有操作:
在此处下载
dem_tut24_files.zip文件。将
dem_tut24_files.zip解压缩到您的工作目录。打开Rocky2025 R1。
重要: 要使用所提供的Rocky项目文件,必须要有Rocky2025 R1或更高版本。如果您有较早版本的Rocky,请升级到最新版本或从头完成第一部分。
从Rocky程序中,点击Open Project按钮,找到
dem_tut24_files文件夹,然后从tutorial_24_A_pre-processing文件夹中打开tutorial_24_pre-processing.rocky文件。处理仿真。(从Simulation工具栏中,点击Start按钮。)
我们先按速度给流体单元着色。
从Data面板中选择SPH,然后从Data Editors面板选择Properties选项卡。
选择Velocity,然后将其拖放到3D View窗口上。
为了将SPH数据表示为连续流体,我们来使用Eulerian Solution继续执行后处理。
我们将首先按Velocity为单元着色,以便比较我们通过为SPH单元着色得到的结果。
从Data面板的SPH 字段选择Eulerian Solution,然后在Data Editors面板中选择Coloring选项卡。
展开Faces,然后在下拉列表中选择Velocity作为Property。
使用eye图标使Eulerian Solution可见,并隐藏除Velocity色阶以外的所有内容。
注意: 这就只能查看来自域的最外部单元的数据。要查看特定区域的结果,您可以从Eulerian Solution实体创建一个cube、cylinder或平面User Process,并按相同的过程执行。
在本教程中,我们关注的是分析Water与column(水库中间)碰撞的区域。
我们将创建一个Plane,以便用Eulerian Solution(连续数据)可视化该区域。
我们还将创建一个Cube,使用SPH(离散)实体查看该区域的单元。
使用下表中的步骤创建两个User Processes。
步骤 项 位置 参数或操作 设置 A Eulerian Solution 创建一个Plane User Process B User Processes ﹂Plane <01>
Plane Angle 90 [dega Plane Normal 0, 1, 0 [ - ] Coloring Edges (已清除) Faces | Property Velocity ⯆ C Windows (Panel) 创建一个New 3D View D SPH 创建一个Cube User Process E User Processes ﹂Cube <01>
Cube Center 0.8, 0.38, 0.305 [m] Magnitude 1.6, 0.75, 0.02 [m] Coloring Nodes (已启用) Nodes | Property Velocity ⯆
最后,我们来为SPH(离散)和Eulerian Solution(连续)数据之间的流体视图实现可视化并对其进行比较。
在Windows面板中,选择3D View <01> ,并使用眼图图标隐藏除Plane <01>、column和Velocity 色阶之外的所有内容。
选择最近创建的3D View <02> ,并使用眼图图标隐藏除Cube <01>、column和Velocity 色阶之外的所有内容。
在Data面板上,从Color Scales中选择Velocity,并在Data Editors面板中确保将Limits options定义为Automatic PER View。
使用鼠标以一种可以对其进行比较的方式调整视图(如图所示)。
提示: 如果您在工作区使用全屏,请使用位于右上方的按钮,这样可以调节窗口。
使用时间条上的slider 选择要分析的时间步长。
我们还将使用Filter User Process来可视化流体表面。
为了表示这一点,我们将根据定义为Weight的属性的值来限制Eulerian Solution数据。
插值网格每个节点的属性(速度和密度等)的值基于内核半径内部SPH单元值使用内核函数*的插值。
Weight属性给出影响每个网格节点的所有SPH单元的权重之和。
该属性可用来定义流体表面,因为它与节点周围SPH单元的聚集度有关。
如果该区域没有SPH单元,则Weight返回0。
当该区域充满单元时,该函数往往会返回接近1的值。
* 有关SPH内核函数的更多信息,请参阅SPH技术手册。
为了更好地理解Weight 的计算方法,请查看下图。
A点:Weight大约为1
B点:Weight = 0
C点:0 < Weight < 1
由于C周围的体积一半是空的,一半全部是单元,因此Weight往往会返回0.5。(在以下Rocky中参见复制方案中的Color Scale)
使用下表中的步骤创建一个基于权重的等值面。
步骤 数据实体 编辑器位置 参数或操作 设置 A Eulerian Solution 创建一个Filter User Process B User Processes ﹂Filter <01>
Property Name Water Surface Property Weight ⯆ Mode Cut ⯆ Cut Value 0.5 [ - ] Coloring Transparency (已启用) Faces | Property Velocity ⯆ Edges (已清除)
提示: 确保已启用Faces复选框,其它选项已针对Property <01> | Coloring禁用。
您可以在3D View中可视化所有时间步长的结果表面。
我们来制作一段动画,让所创表面的流体行为可视化。
提示: 隐藏除Geometries和Water Surface外的一切。
按照下表中的步骤制作一段仿真视频。
步骤 项 参数或操作 设置 A Tools (菜单) Enable Animation Panel B Animation FPS 100 [ - ] Time (0s) Add Key Frame(按钮) Frame | Number of Frames 350 [ - ] Time (3.5s) Add Key Frame(按钮) 点击Play按钮预览,然后点击Export Animation按钮将影片保存至AVI文件。
在溃坝仿真中,壁面几何结构流体力的大小是所关注的结果。
在本教程中,我们将分析column在所有时间步长中,在X(流体流动)方向产生的流体力。
此外,我们还将在column triangle中可视化最大值的流体力,以便查看其出现在壁面上的位置。
按照下表中的步骤创建两个力值的Time Plot。
步骤 数据实体 编辑器位置 参数或操作 设置 A Geometries ﹂column
Curves SPH : Force : X Show curve in new Plot Properties SPH : Force : Nodal : X 根据Max在所选Time Plot中显示
生成的数列图如下所示。
通过检查数列图值可以看到,柱子三角形中的最大力值出现在0.84s时段。
注意: 您的结果可能与本教程中显示的结果略有不同。
按照表格,在3D View中按节点力为column着色,以便可视化力出现的壁面区域。
步骤 数据实体 编辑器位置 参数或操作 设置 A Geometries ﹂coloring
Coloring Transparency (已禁用) Faces (已启用) Faces | Property SPH : Force : Nodal : X ⯆ 在打开的3D View中,从Time Toolbar选择最大力发生的时间(本教程是0.84s)。
通过隐藏除column和SPH 外的所有内容,您可以在3D View中可视化最大流体力出现的点:Force : Nodal : X Color Scale。
注意: 最大的力出现在水第一次与柱子碰撞的时候,出现的位置在柱子的底部。您可以使用快捷键Shift+X在普通视图中查看该面。



