fluent中的ufd

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了fluent中的ufd相关的知识,希望对你有一定的参考价值。

你好,我有个udf的问题,不太明白,麻烦帮我解决一下,万分感谢,有两个入口速度条件,都符合抛物线分布,怎么把两个udf写成一个
当-0.02<y<-0.01的速度分布是
#include "udf.h"
DEFINE_PROFILE(velocity_inlet,thread,position)

real x[ND_ND];
real y;
face_t f;
begin_f_loop(f,thread)

F_CENTROID(x,f,thread);
y=x[1];
F_PROFILE(f,thread,position)=0.025-1000*(y+0.015)*(y+0.015);

end_f_loop(f,thread)

当0.01<y<0.02时,速度分布为
#include "udf.h"
DEFINE_PROFILE(velocity_inlet,thread,position)

real x[ND_ND];
real y;
face_t f;
begin_f_loop(f,thread)

F_CENTROID(x,f,thread);
y=x[1];
F_PROFILE(f,thread,position)=0.025-1000*(y-0.015)*(y-0.015);

end_f_loop(f,thread)

两个合成一个DEFINE_PROFILE(velocity_inlet,thread,position)

real x[ND_ND];
real y;
face_t f;
begin_f_loop(f,thread)

F_CENTROID(x,f,thread);
y=x[1];
if(-0.02<y<-0.01)
F_PROFILE(f,thread,position)=0.025-1000*(y+0.015)*(y+0.015);
else if(0.01<y<0.02)
F_PROFILE(f,thread,position)=0.025-1000*(y-0.015)*(y-0.015);

end_f_loop(f,thread)

为什么显示进口速度是根本就不符合呢?我用的是interpret,我真的不知道为什么,试了好多天了,麻烦您帮我解决一下

参考技术A y=x[1];
if(-0.02<y && y<-0.01)
F_PROFILE(f,thread,position)=0.025-1000*(y+0.015)*(y+0.015);
else if(0.01<y && y<0.02)
F_PROFILE(f,thread,position)=0.025-1000*(y-0.015)*(y-0.015);
else
F_PROFILE(f,thread,position)=0.f;本回答被提问者采纳

FLUENT案例01:T型管混合器中的流动与传热

案例目录

1 引子

1.1 案例描述

本案例进行T型管中的流动模拟,流体以不同的温度进入T形管,通过计算模拟混合过程。

1.2 案例学习目标

本案例主要描述FLUENT界面的使用,包括CFD的全部过程,包括:

  • 读取网格
  • 选择计算模型
  • 选择并设置材料属性
  • 定义边界条件
  • 设置计算监视器
  • 运行求解器
  • 后处理

2 计算仿真目标

仿真的对象为冷热水在T型管内的混合过程
计算仿真的目的在于确定:

  • 1.流体混合程度
  • 2.混合过程的压力降

3 启动FLUENT并读入网格

本案例利用workbench中的FLUENT模块,也可以使用独立版本的FLUENT进行。

  • 1.启动Workbench,利用菜单Files | Save as…保存新的文件mixing_tee
  • 2.从左侧的Component Systems列表中选择拖拽Fluent至右侧项目窗口中
  • 3.右键选择单元格Setup,选择子菜单Import FLUENT Case | Browse
  • 4.在打开的文件选择对话框中,修改文件过滤选项为Fluent Mesh File
  • 5.选择网格文件Mixing_tee.msh,点击OK按钮确认选择
    如下图所示。
  • 6.返回至项目面板,鼠标双击Setup单元格启动FLUENT,如下图所示,可以根据自身计算机性能选择串行或并行计算(如下图所示采用并行4核计算)
  • 7.点击OK按钮进入FLUENT工作环境

4 FLUENT工作界面

FLUENT17.0工作界面如图所示。主要包括5个部分:

  • 1.Ribbon菜单。里面包含了所有的操作按钮
  • 2.模型树。包含了CFD仿真流程中所需的所有节点
  • 3.参数设置面板。对应不同的模型树节点所需的参数设置
  • 4.图形显示窗口。
  • 5.TUI及消息输出窗口

5 网格缩放及检查

在导入计算网格后,第一步要做的操作是检查导入的网格有效性及网格质量。

  • 选择而模型树节点General
  • 在右侧面板中点选按钮Check,TUI窗口反馈信息如下图所示。
    注意:主要检查两个参数:一个是Domain Extents,查看计算域尺寸是否与实际尺寸相符,若不相符则需要对计算域进行缩放;另一个为mimimum volume,必须确保最小体积大于0
  • 2.选择面板中的Report Quality按钮,查看网格质量。TUI命令窗口显示网格质量如下图所示。

    给出了三种网格质量:Minimum Orthogonal Quality、Maximum Ortho Skew 及Maximum Aspect Ratio,其中Minimum Orthogonal Quality的范围为0-1(1为理想网格),Maximum Ortho Skew的范围为0-1(0为理想网格),Maximum Aspect Ratio越小越好。

6 修改单位

修改温度的单位为摄氏度。点击General设置面板中的Units…按钮弹出单位设置面板。
如下图所示,设置temperature的单位为c

7 设置模型

这里激活能量方程及湍流模型。

  • 双击模型树节点Models > Energy,在弹出的Energy对话框中,勾选Energy Equation前方的复选框,激活能量方程,如下图所示。点击OK按钮确认操作。
  • 双击模型树节点Models > Viscous(Laminar),在弹出的对话框中选择k-epsilon(2 eqn)Realizable,其他参数保持默认,点击OK按钮确认操作。

8 定义新材料

FLUENT默认采用的材料为air,案例中流体介质为液态水。

  • 右键点击模型树节点Material > Fluid,选择弹出菜单New,如下图所示。
  • 在弹出的对话框中,选择Fluent Database…,弹出材料库对话框,在材料库中选择材料water-liquid(h2o),点击Copy按钮,并点击Close按钮关闭对话框,如下图所示。

    点击Close按钮关闭材料新建对话框。

9 计算域设置

  • 鼠标双击模型树节点Cell zone Conditions > fluid(fluid),弹出参数设置面板,在参数面板中设置Material Name为上一步创建的材料water-liquid,如下图所示。
  • 点击OK按钮关闭对话框。

10 边界条件设置

在模型树节点Boundary Conditions中可以设置计算模型的边界条件。如图所示。

界面元素与Cell Zone Conditions设置面板类似。
设置边界条件:

  • inlet-y边界设置
    • Zone列表框中选择边界inlet-y,选择Type下拉框选项Velocity-inlet,鼠标点击面板按钮Edit…
    • 弹出参数设置对话框,如图所示。在Momentum标签页下,设置Velocity Manitude参数值为0.3; 选择Specification MethodIntensity and Hydraulic Diameter,设置Tubulent Intensity5,设置Hydraulic Diameter0.15
    • 切换至Thermal面板,设置Temperature15,如图所示。
  • inlet-z边界设置
    • inlet-y设置相类似,所不同的是设置Velocity Manitude参数值为0.1;设置Hydraulic Diameter0.1;设置Temperature25
  • outlet边界设置
    • 选择Type下拉框选项pressure-outlet,点击Edit…按钮
    • 在弹出的对话框Momentum标签页下,设置Gauge Pressure0,设置Specification MethodIntensity and Hydraulic Diameter,设置Backflow Turbulent Intensity为5,设置Backflow Hydraulic Diameter0.15
    • 切换至Thermal面板,设置Temperature20

      需要注意的是:在计算的过程中,有可能会出现介质从出口边界进入流体域的情况(回流),这种情况有可能是真是的流动特征(在计算收敛时仍然存在回流),或者仅仅只是收敛过程中的短暂状态(随计算进行回流消失)。不管是何种情况,FLUENT需要知道边界上的真实来流信息。若在出口位置没有回流,则这些回流参数值在计算过程中不会被使用。在选择计算边界位置时,通常将出口位置选择在没有回流的地方。

12 设置离散格式

模型树节点Solution Methods主要设置模型的离散算法。如图所示。

  • 选择Pressure-Velocity Coupling schemeCoupled
  • 激活选项Pseudo Transient
  • 激活选项Warped-Face Gradient Correction

    离散格式定义了梯度及变量插值的计算方法。默认选项适用于大多数的计算问题。

13 Monitors

利用模型树节点Monitors可以在计算过程中监测一些物理量的变化。本例设置监测两个入口压力值及出口温度标准差。Monitors设置面板如下图所示。

设置面板中的一些参数:

  • Residuals,Statistic and Force Monitors:监测残差、统计值以及各种力
  • Surface Monitors:监测面上的各种参数值
  • Volume Monitors:监测体上的各种参数值
  • Covergence Monitors:收敛监测,通过前面的监测参数来判断计算是否收敛

本例中监测三个面参数,利用Surface Monitors下方的Create按钮进行创建。鼠标选择此按钮后,如下图所示。

定义三个Monitors,步骤包括:

  1. 点击Surface Monitors下的Create…按钮

    • Name:设置为p-inlet-y
    • Plot Windws:设置为2
    • Report Type:设置为Area-Weighted Average
    • Field Variable:设置为PressureStatic Pressure
    • Surface:选择inlet-y
  2. 点击Surface Monitors下的Create…按钮

    • Name:设置为p-inlet-z
    • Plot Windws:设置为3
    • Report Type:设置为Area-Weighted Average
    • Field Variable:设置为PressureStatic Pressure
    • Surface:选择inlet-z
  3. 点击Surface Monitors下的Create…按钮

    • Name:设置为t-dev-outlet
    • Plot Windws:设置为4
    • Report Type:设置为Standard Deviation
    • Field Variable:设置为TemperatureStatic Temperature
    • Surface:选择outlet

14 Initialization

利用模型树节点Solution Initialization可对计算域进行初始化。FLUENT提供了两种初始化方法:

  • Hybird Initialization:通过各种不同的插值方式获得计算域中的初始值。如利用求解拉普拉斯方程的方式获取初始速度场与压力场
  • Standard Initialization:直接定义各未知物理量的初始值

    本案例采用Hybird Initialization方式进行初始化,如上图所示,选择Initialize按钮进行初始化。此时在图形窗口中可能会出现如下图所示的警告信息,不过这仅仅只是提示拉普拉斯方程没有收敛,大可以忽略。

    对于稳态计算,初始值不会影响最终计算结果,但是会影响收敛过程,严重偏离实际的初始值可能会导致计算收敛缓慢甚至发散。对于瞬态计算,初始值会影响到后续的计算结果。

15 Run Calculation

选择模型树节点Run Calculation,如图所示。

  • 设置Number of Iterations350,点击按钮Calculate进行迭代计算。

16 Results

计算后处理。

16.1 计算监测图形

  • 残差曲线
    计算监测得到的残差曲线如下图所示。

    图中残差曲线显示计算在迭代120步左右达到收敛,表现为残差曲线降低至设置的残差标准以下,默认残差标准为103

  • 入口压力监测图
    两个入口压力监测图如下图所示。

    (图1)

    (图2)
    从这两幅压力监测图看出计算结果基本达到稳定,压力值随迭代变化很小。

  • 出口温度标准差变化图
    监测得到的出口温度标准差曲线图如下图所示。

    温度标准差反映了温度混合的均匀程度,该值越大表示温度分布越不均匀。图中最终的温度标准差约为0.2。

16.2 Graphics

模型树节点Graphics下包含了MeshContoursVectorsPathlines以及Particle Tracks,如图所示。在Graphics参数设置面板中还包含了Animations操作以及一些图形显示参数设置按钮,如灯光、视图等。

  • Mesh:显示网格图
  • Contours:显示云图
  • Vectors:显示矢量图
  • Pathlines:显示流线图
  • Particle Tracks:显示粒子追踪图

本案例主要利用ContoursVectors显示云图及矢量图。

16.2.1 壁面温度分布

查看壁面温度云图显示。鼠标双击Graphics列表框中的Contours列表项,在弹出的对话框中进行如下图所示设置:

  • 勾选激活Filled选项
  • Contours of下拉框中选择TemperatureStatic Temperature
  • Surfaces列表项中选择wall-fluid
  • 点击按钮Display

    壁面上的温度云图显示如下图所示。

16.2.2 创建截面

创建截面后可以显示截面上的物理量分布。这里创建x截面

  • 利用Ribbon界面中的Postprocessing标签页
  • 选择Create按钮下的Iso-Surface…功能菜单
    如下图所示。

    在弹出的对话框中进行如图所示设置:
  • 选择Surface of ConstantMeshX-Coordinate
  • 设置Iso-Value0
  • 设置New Surface Namex-0
  • 点击Create按钮创建截面

16.2.3 显示截面物理量

回到Contours设置面板,

  • 设置Contours ofVelocityVelocity Magnitude
  • 选择Surfacex-0
  • 点击按钮Display

    显示速度云图如下图所示。

    设置Contours ofTemperatureStatic Temperature,点击Display按钮。

    显示温度云图如下图所示。

16.2.4 Pathline显示

可以利用Pathline显示流线。选择Graphics列表中的Pathlines选项,弹出如下图所示对话框。

显示的流线图如下图所示。

16.3 Plots

模型树节点Plots可以输出一系列图形,如曲线图、直方图等。

列表项:

  • XY Plot:以XY曲线图显示变量的变化规律
  • Histogram:以直方图形式显示数据
  • File:以图形形式显示文件中的数据
  • Profile:图形化显示配置文件
  • FFT:对文件指定的数据进行快速傅里叶变换,将时域数据转化为频域数据。

可以先创建line,再利用XYPlot显示线上物理量分布。利用Postprocessing下的工具按钮Create,选择菜单项Line/Rake…,如下图所示。

弹出如下图所示对话框:

  • 设置TypeLine
  • 设置End Point分布为**(0,-0.3556,0)及(0,0.3556,0)
  • 设置New Surface Nameline-center

    双击模型树节点XY Plot,弹出如下图所示对话框,进行如下设置:
  • 设置Plot Direction为**(0,1,0)
  • 设置Y Axis FunctionVelocityVelocity Magnitude
  • 选择Surface列表项line-center
  • 点击按钮Plot

    显示沿直线line-center上速度分布曲线如下图所示。




以上是关于fluent中的ufd的主要内容,如果未能解决你的问题,请参考以下文章

fluent模拟结果中的传热系数怎么求

fluent模拟中,啥情况下的边界条件定义为interface?

如何在fluent的某一区域加线源

FLUENT案例01:T型管混合器中的流动与传热

FLUENT案例01:T型管混合器中的流动与传热

Fluent-bit - 将 json 日志拆分为 Elasticsearch 中的结构化字段