资源描述
Flow3d 9.3.2 Hydraulics Tutorial水力教程
本练习的目的是模拟水从水库通过薄壁堰流进下游水池。
图1 水流模拟
在设计中,模拟的第一步是需要完全了解要分析的问题。用流体力学知识,分析工程中哪些参数重要,怎样简化问题,可能出现什么问题,以及希望得到什么样的结果。
确定液体流动特性,如黏性、表面张力及能量作用大小的常用方法,是计算无量纲参数,如雷诺数、邦德数、韦伯数。
Re (Reynold’s Number)
雷诺数
=Inertial Force/Viscous Force
=贯性力/黏性
=UL/ν
Bo (Bond Number)
邦德数
=Gravitational Force/Surface Tension Force
=重力/表面张力
=gΔρL2/σ
We (Weber Number)
韦伯数
=Inertial Force/Surface Tension Force
=惯性力/表面张力
=LU2ρ/σ
这里U是特征速度,L是特征长度,g是重力加速度,ρ是密度,σ 是表面张力系数。
对本问题,水从18cm高堰流过,水流在堰底的速度可近似按自由落体运动分析得出:
Velocity = sqrt(2*980*18) = 187.8 cm/s
流体的雷诺数为:
Re = 30cm x 187.8cm/s / 10-2cm^2/s = 5.6 x 105
雷诺数大,意味着与贯性力相比,黏性力不可忽略。因此,我们不需要精细的网格求解壁黏性剪切层。当然,由于流态的紊乱,液体内部有很多黏性剪切力,因此,需要在模型中指定黏性参数。
邦德数按下式求得:
Bo = 980cm/s^2 * 1 gm/cc * (30cm)^2/(73gm/s^2) = 1.2 x 104
韦伯数按下式求得:
We = 30cm * (187.8 cm/s)^2 * 1gm/cc / (73gm/s^2) = 1.45 x 104
再者,大的邦德数和大的韦伯数表明,与重力和惯性力相比,表面张力可忽略。模型是这种情况时,不考虑表面张力。
问题的大小(模型运行的时间)可以利用堰中心顺水流平面的对称特性进行简化。因此,我们仅仅需要模拟整个范围的一部分(即堰的后半部分),就可也得到堰的全部信息。我们已经对问题进行了简化,下面是如何建立这些条件,如何确定几何条件,利用flow3d求解问题。
建模
总体参数
点击“Model Setup”表的“General”表,“General”是确定整个问题的参数,如结束时间、结束条件、界面追踪,流体模式,液体的数量,提示选项,单位及精度。
对本教程,我们是想看流场,当液体达到几乎稳定状态时,它的时间是1.0s。因此,通常设定结束时间为1.0s。对一个实际问题,可能运行这种模拟的时间会更长一些。但是,我们感兴趣的是速度,对于本运行,我们限定时间。在“Simulation units”标题菜单中,选CGS单位(厘米。克。秒),其它设置采用缺省设置。
在“总信息表Global tab”的底部注释中,你可以在第一行为问题指定一个名字。名字会出现在所有输出文件和图形上。本例名称为“Flow over a Weir”(过堰流体)。
建立几何体Geometry Setup
我们将添加元件定义堰体。首先,我们输入一个已有的STL文件,weri1.stl,该文件放在目录“c:\flow3d\gui\stl_lib”。切换到“几何与分网Meshing & Geometry ”表,单击工具条STL图标,会打开标题为“几何Geometry”的对话框,点击添加,打开对话框,找到并选择weri1.stl。在“Geometry File”点击ok,接受缺省设置。在之后出现的添加部件对话框中接受缺省设置。现在STL文件已经输入,并且出现在工作空间中。输入文件也被列在树形结构表中。
下面,我们将通过“FLOW-3D”简单建模创建另一个组件,来添加上游水库河床。在工具栏点击box(盒子)图标,盒子对话框显示如图2。
图2 盒子组件选项
为了能够定义堰上游河床不同的特性(如添加糙率参数),我们应将河床定义成一个单独的部件。这是因为“FLOW-3D”组件中的所有子部件共享相同的参数。因此,在盒子子部件对话框的下拉菜单中,选择“New Component 2”,输入盒子尺寸,如图2。其它按缺省设置。
在盒子对话框中,单击ok,接受缺省参数。下一个对话框出现(添加组件)。盒子会作为新子部件在左侧树形结构及工作空间中出现。
注:对本教程,我们提供了河床的范围。为了你能够自己确定河床尺寸,你可以通过树形结构查看STL文件的尺寸。这时,通过单击“+”号,打开部件1数据,打开子部件1分支,查看部件的x、y、z方向的最大、最小尺寸。
分网
在进行任何模拟时,最重要的工作之一是考虑如何定义计算网格。网格单元的数量,取决于定义边界的尺寸。并且,网格单元的数量极大地影响计算结果、运行时间、计算精度。因此,问题的范围必须仔细选择。总之,计算人在问题未做好之前,应当谨慎勾画问题的简图。
对本问题,我们需要定义的问题是2个:堰后流体及堰前面流体流过的范围,当然还有堰本身。注意,不要将范围定得太小,如图3、图4。如果堰上游范围太小,见图3,计算结果可能不稳定,因为可能会出现突然的加速度。如果堰下游定得太小,见图4,边界条件会影响流态。同样,边界范围不应定得太大,因为没有必要增加计算规模(计算时间)。
图3 计算结果不稳定 图4 下游范围小
“FLOW-3D”使用结构化的计算网格。这些网格不是方块就是圆柱。既然计算时间与网格数量的增加而增加,计算者应该严格减少范围内无用的部分。“FLOW-3D”容许使用多网格块,可以消除范围内无用的部分。通过2个、3个或者更多的块,你可以考虑减小计算范围。
对这种情况,将采用比较粗糙的一块网格,开始我们的计算。在后面的练习中,我们将在感兴趣的区域嵌套精细的网格。在flow3d中,有两种方式创建和定义网格:手工定义及图形定义。这里,我们叙述手工定义网格。
我们将定义网格范围:-10<x<20, 0<y<10, 及 0<z<18。既然我们打算利用对称,减小计算范围,仅需要堰模型的一半,我们将Y范围限制为STL对象宽度的一半。而且,我们已定义边界,以便问题运行速度快点。但是,实际问题可能需要取一个大的范围。
已保存的输入文件prepin.inp中包含一个默认网格。它可在树结构下查看到(笛卡尔坐标系)。在树结构中,单击1开放的X,Y和Z方向的分支。在编辑框中包含各方向范围的单元数。
在x方向分支,修改范围:Pt1à-10,pt2à20,设置x方向单元总数量为30,刷新网格显示变化(点击更新网格图标或CTRL+U)。
图5 网格结果
Boundary Conditions
计算范围的所有边界都需要边界条件。缺省情况下,flow3d将所有边界设为对称,即边界没有不稳定的特性和剪切。
对于本问题,x最大、x最小边界设定为水压力边界。这是必要的,为了模拟大水库的流态,这两个边界必需保持恒定流深度。下面两图给出了水边界的工作方式。图6显示了水边界在右侧,流体的高度大于内部流体的高度,因此,水是流进边界。图7显示了同样的边界,但是边界液体的高度小于内部液体的高度,结果,液体流出边界。
图6 初始流体高度设置 图7 随着流体高度调整
既然我们利用对称特性仅处理堰的一半,Y最小边界是个对称平面。
Y最大值边界也将设为对称边界,尽管实际上并不对称。一个自由、光滑、无渗透的边界是必要的。如果边界距离堰流体足够远,边界不会影响流态。如果边界太近,它将阻止水在Y方向按自然的方式流动。
在对称边界中剩下Z最大、最小边界了。它们与流体不接触,因此边界并不重要。我们只需简单的接受这两个边界的缺省设定。
为了这些选项,点击建模(Model Setup)下的边界(Boundaries tab)。
边界及边界约束在左侧树形界面显示。每个边界可以点击其右侧按钮设定。在工作空间,划分的网格也同时显示,每个网格边界显示一个图标,见图8。
图8 网格边界视图
点击x最小边界按钮,选择指定边界压力按钮(the Specified Pressure Radio button)。而且,选择总压力(Stagnation Pressure)检查框,设定液体高度为15.5,见图9。点击ok关闭x最小边界对话框。在这个边界上,液体将保持15.5cm高的水压力。水将通过边界进入内部。
图9 边界类型调整
现在,点击X最大按钮,对该边界选择指定压力按钮(the Specified Pressure radio button)。同时,选择总压力(the Stagnation Pressure)检查框,设置液体高度为1.7。设置F百分比值为0(这将阻止液体通过网格进入边界)。关闭X最大值对话框。在这个边界中,将保持一个水压力,液体高度将维持1.7cm,因为流体百分比已经设定为0,水将不能流入,但可以自由流出。
初始参数
下一步是设定本问题的内部条件。既然我们已设定x的最大、最小边界为水压力,我们需要激活水压力选项,以保证边界条件正确设置。
点击建模下的初始条件表(Initial tab),在初始压力域(Initial Pressure Field),选择z方向静水压力按钮。这将初始化网格中所有液体初始条件为静水压力,同时也指示垂直压力边界为静水压力边界。
下一步,在网格中创建初始流体。点击添加(Add),弹出编辑范围(Edit Region)对话框,在对话框中,设置x方向高度“X High”为0,z方向高度“Z High”为15,同时应按下在流体选项下的添加流体按钮(Add fluid radio button)。然后,按ok。再次按添加流体按钮,添加第二个流体域,在编辑域对话框中,设置x低(X low)为1,z高(Z high)为1.7。然后,按ok。这两个流体域,在零时刻将流体放入网格。
注:流体域即为流体的范围,如果在某个方向未设定值,则这个方向流体范围到模型边界。
选择物理模型
现在,我们考虑把很多物理模型打开。在总述中,我们讨论了不同的无量纲参数,以及对本问题的影响。回忆一下,我们应考虑黏性,但是我们忽略表面张力。既然流体与壁之间为非光滑,我们采用壁剪切模型。这就确定了,壁的非光滑边界条件。其它有关的参数为流体的重力场。似乎没有必要考虑温度的影响。
在建模(Model Setup)表中选择物理表(Physics tab),点击黏性和紊流(Viscosity and turbulence)按钮,并且选择牛顿黏性(Newtonian viscosity)按钮。在同一个表中,确定壁剪切边界条件的非光滑或部分光滑(No-Slip or partial slip)的按钮被选择。最后,点击ok,关闭对话框。黏性计算已经被选择,且已经考虑壁边界的黏性剪切影响。
点击重力按钮,设定z方向重力加速度-980cm/s2。
注意:重力加速度为负值,是因为重力方向在我们的参考系中指向-z。激活重力加速度,重力就成为液体的体力。
流体设定
在建模(Model Setup)的流体表(Fluids tab),要提供待分析问题的流体的类型信息。在本问题中,水是我们的流体。需要指定的特性为密度及黏性(记住,我们忽略表面张力的影响,对表面张力不感兴趣)。这些特性,可以直接在树形特性表中输入,也可在流体数据库中加载。对于本问题,我们认为,水处于标准大气压,温度20度。加载水20度的这些特性。
选择建模(mode setup)中的流体表(fluids tab),在流体数据库节,找到并高亮20度水,单位为CGS制,点击加载流体1。第一种流体的黏性和密度已被设定。在特性树中,可以展开相应的项目,验证流体的黏性和密度。(水的密度1000kg/m3)
注意:在物理表中激活流体后,定义选定模型流体的特性是重要的。如果未做这些,在模拟运行已经结束后,模型无法激活。
输出选择
在重个模型运行过程中,重启数据的时间间隔,等分为11段。重启数据输出的所有单元的有关信息,依赖于物理模型的选择。选择输出表(output tab),在重启数据域,设定时间间隔为0.05,这样,每0.05秒,1秒总共20步计算结果。
数据Numerics
尽管本模拟不需要对此做任何调整,数据表用于设定多个选项,我们应认识它的重要性。例如,可以设置压力结果的类型。可以控制时间步。如果时间步由隐含选项的模型限制,可以使用隐含的选择,如热传导、黏性、弹性张力,表面张力,或者水泡压力。用于表面跟踪或动量,可以选择不同的水平对流选项。
预处理Preprocess
运行模拟的最后一步为对工程的预处理。在文件菜单中,点击保存模拟选项,保存修改的变化。在Simulate(模拟)菜单下,点击运行预处理。这将把液体嵌入网格,并且产生可视的初步结果。点击“Analyze Tab”分析表。显示标题为“FLOW-3D Results”Flow3d 结果的对话框,点击用户化按钮,选择文件“prpgrf.dat”,然后ok。“DISPLAY tab”自动打开,显示绘图选项。选择3d表,在等轴透视图选项“Iso-surface Overlay Options”框中点击实体“Solid Volume ”按钮。下一步,点击生成“RENDER”按钮,验证初始条件。你应该能看到被对称轴切开的半个堰,及上下游流体区域。
图10 生成初始条件
Running the Simulation运行模拟
当对模型满意后,在模型菜单中点击运行模拟(Run Simulation)来运行本问题。预处理会再次运行,在此基础上立即运行至完成。本问题运行时间大约1分钟。
Look at the Results 查看结果
当模拟运行结束,点击(Aanlyze tab)分析表,选择左下边打开结果文件按钮(Open results file),同时选择用户按钮,选择文件flsgrf.dat,并点击ok(见图11)。
图11 分析表面板
看x-z平面一最小坐标的的2维绘图(通过堰中心,接近对称平面),点击生成。图形在显示(Display tab)表中自动出现。
也可看3维图。为了看运行的结果,将小时间滑钮滑到最小,大时间滑钮滑到最大。点击生成。图形在显示(Display tab)表中自动出现。
注意:流体缓慢加速,落到下游的堰中。最终,由于流体惯性而与堰壁分离。实际上,流体开始时,有一些动力在起作用,而不在我们模型中。换句话说,闸门被打开,水库水位高度增加,等等。
图12 初始结构.
Variation: Add Additional Fluid Region and Initialize Fluid Velocity修改:增加另外的流体域及初始流体速度
因为,本问题中,我们的目标是检查流过堰的恒定流,我们要选择初始条件,使堰流达到稳定条件尽量快些。因此,我们要增加另外流体域,使水流过堰,而不是与堰接触。图13显示了其结构。我们也要设定一个x方向的流体速度使流体流过,而不是细流。这些初始条件不是非自然的,你会发现以这种方式流过堰的流体与自然流动不同。
图13 附加构造
为了对比本设置的计算结果与以前的不同,在“Navigator tab”关闭后,在文件菜单下选择添加模拟在增加一个拷贝。取名为“Hydraulics2”,并保存。
点击添加流体,编辑域对话框出现(见图14),在堰外侧添加矩形流体域。
图14 添加流体面板
在编辑域对话框,设置x-low为0,x-high为2.5,y-low为-5,y-high为5.0,z-low为13.0,z-high为15.0。对话框见图14,点击ok。
在流体初始状态,设置u-velocity(在x方向)为20。这将促使流体流过堰。
现在,点击总信息表“General tab”,在注释栏添加“3 Regions”标题。在文件菜单下,点击保存模拟选项以保存修改。
现在,在模拟菜单下点击预处理来检查模型。当预处理结束,你可以检查。点击分析表单,选择打开结果文件项来打开flow3d结果文件对话框。保持用户化按钮按下,找到结果文件prpgrf.dat。在2-d表,点击x-z平面按钮,设置y范围滑条包括整个区域。这将会创建所有y平面的x-z图形。点击“render”,打开显示表(display tab)中的图形。现在,回到分析表,并打开3d表,在“ISO-surface”下拉框,设置为显示“fraction of fluid”。点击生成,在“display tab”表中显示结果。
当显示结果满意后,运行flow3d求解器。本问题运行时间小于2分钟。
当求解完成运行,看看你的分析结果,通过点击标签,打开flow3d结果对话框。随着自定义单选按钮(Custom)选择,找到并选择该文件flsgrf.dat。点击确定。会打开面板含一维,二维和3 - D选项。
你可能想看看的2 – D图形,在最低Y在XZ平面坐标(这是通过堰中心,靠近对称面)。选择XZ平面,并设置最小和最大Ÿ滑块到最低值。然后点击渲染。
Variation: Add a Nested Block for Increased Accuracy变化:为了提高准确度添加嵌套网格
这一变化的目的是要表明,结果的精度在不重新分网格的情况下可以提高。在大的加速度的部分使用嵌套的网格,可以提高精度,且无明显影响求解时间。
在这种情况下,堰附近的液体及流过地面的液体会有巨大的加速度。在这些区域采用嵌套网格来分析问题是个好主意,以更好地分析问题。但是,为了减少计算时间,并同时看到了使用嵌套网格,我们只要一个嵌套网格,如图15所示。
图15 单定义嵌套网格
首先,选择“Navigator tab”表,在文件菜单下,选择“Add Simulation Copy”,复制一份原先运行的工程。在对话框中将它取名为Hydraulics3,并单击文件菜单下或按CRTL - s选项的保存工作区。
点击“Meshing & Geometry”标签。我们将嵌套第二块网格,以便更好地分析水流过堰流动。这一次,我们将使用图形的方法创建网格。在工作区顶部点击负XZ平面图标,见图 15。然后点击工具栏上的创建网格图标(或从网格菜单中选择或按Ctrl - R),按住鼠标左键,单击按钮并绘制出了几个单元,从一个方块左侧,自上而下向堰的顶部右侧。当您松开鼠标按钮时,弹出一个对话框,要求您输入一个网格的数量。允许预设数量(1000),因为我们将修改这个网手动树。现在点击图标网再次关闭图形工具。
从创建模式退出后,你可以旋转网格块来看看我们所作出的修改。你可以看到,网格块没有足够细,我们更需要覆盖范围。
现在,在树结构中,我们将调整这一新的第二块域-3 <x <3,0 <Y <2,5和8 <Z <18。请注意,我们选择了一个范围,并且使求解这个范围会运行更快。这可能是一个真正的世界性的问题,一个偶数嵌套网可能被使用。人们也许还需要添加更高的分辨率,以更好地捕捉在放流池底部的薄液层,但不会在这里完成。
在网状树,对2块点击和开放的X,Y,Z方向的分支。设置X方向范围:pt1-->—3,pt2à 3。设置总网格数为12。现在设置Y范围:pt1à0,pt2à5,设置总网格数为10。最后,设置z方向范围:pt1à8,pt2à18,将网格总数设为20。现在点击Update图标(或选择网>更新或按Ctrl - U)的刷新网格。应该显示图所示16。
图16 调整网格
对于任何一个嵌套网格和网格边界,连接到或在另一个网块中,用户不需要指定边界条件。Flow3d在预处理器中会自动定义为“网块”。
现在,单击常规选项卡,并在说明中追加“嵌套块”标题。通过单击文件菜单下的模拟选项保存的更改。
现在,为了检查设置,单击菜单下的模拟仿真预处理选项,在预览模式下运行预处理器。当预览完成后,检查网格和边界条件。要检查网格,单击分析选项卡,打开flow3d结果对话框。按下单选按钮,然后选择文件prpplt.dat。点击确定,在显示选项卡上查看网格图形。
要检查边界条件,点击flow3D菜单栏中点击“Diagnostics”菜单,选择预处理报告(Preprocessor Report)。每个网块体边界条件类型将显示。
当您对设置感到满意,单击运行菜单下的模拟运行flow3d三维求解器。由于大量的单元,它可能需要长达10分钟完成。
当求解完成运行,看看你的分析结果,通过点击标签,打开flow3d结果对话框。随着自定义单选按钮选择,找到并选择该文件flsgrf.dat。点击确定。通过选择2 - D和3 - D按钮,多块可以被观察到。
Variation: Run as a Two-Fluid Problem变化:作为双流体问题运行。
通常,当两流体模型(例如,还模拟空气的流动)是需要的,用户不知道什么时候使用自由表面模型(一尖锐的界面追踪液体)。对于这种变化,我们将在我们的模型中包含空气,看看会发生什么。
注意:因为你已经通过建立和运行问题好几次,我们会简化讨论。
首先,选择Navigator选项卡后,在文件菜单下,添加仿真,复制先前运行仿真。在对话框中将它命名为Hydraulicsair,并单击文件菜单下的模拟或按CRTL - s选项,保存工作区。
在模型建立>总体(Model Setup>Genera),在流体数量中,选择两种流体。我们将舍弃自由表面或界面(Interface Tracking at Free Surface or Sharp Interface),和不可压缩流模式接口跟踪。空气是可压缩流体,在本问题中马赫数()低,因此,假定空气的不可压缩性是合的。更改在标题部分追加“空气”,并通过单击文件菜单下的模拟选项的更改保存的第一行标题。
在模型设置>流体,加载流2空气性质。高亮度显示的空气温度在15℃,CGS单位,单击加载在流体2。这将设置第二流体,空气的粘度和密度。这可以通过扩大的粘度和在左侧属性树验证。
选择菜单下的运行仿真模拟选项运行的问题。这个问题应该运行在大约4分钟。
当模拟完成后,选择点击文件flsgrf.dat,看看你的结果进行分析。你可能想看看在xz平面的二维图在最小Y坐标(通过堰中心,靠近对称面)。对流体部分设置轮廓变量。然后点击渲染。这些照片中的颜色显示每个单元中的水含量。补体是空气的一小部分。请注意,有扩散的水/空气界面和水是进了空气(见图17)。也有相当高的空气流速。
图16 水/空气界面扩散
应当指出,这些结果是没有实际意义的。主要问题是,在每个单元的面,只有一个(混合物)的速度计算。在现实中,因为流体密度的不同,空气流速和水流速度有着显着差异。当两流体的密度差异很大,即由大约超过了10倍以上,这种混合速度可能无法充分反映,因为在同一单元格中,流体流动速度可有很大差异。因此,流体之间的滑移条件不能准确模拟,这可能导致一个不正确的流体界面运动。
底线是,当两个液体密度差别个很大,两流体模型是不准确的(许多其他的CFD软件包,采用自由表面问题进行处理,这是唯一的方式)。为了模拟自由表面问题更准确,flow3d使用一个真正的三维VOF方法,适当运动的流体(在这种情况下水),保持锋利的界面,并且不计算空区域(空气)的动力。
16
展开阅读全文