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,我真的不知道为什么,试了好多天了,麻烦您帮我解决一下
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.2 案例学习目标
2 计算仿真目标
3 启动FLUENT并读入网格
4 FLUENT工作界面
5 网格缩放及检查
6 修改单位
7 设置模型
8 定义新材料
9 计算域设置
10 边界条件设置
12 设置离散格式
13 Monitors
14 Initialization
15 Run Calculation
16 Results
16.1 计算监测图形
16.2 Graphics
16.2.1 壁面温度分布
16.2.2 创建截面
16.2.3 显示截面物理量
16.2.4 Pathline显示
16.3 Plots
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 Method为Intensity and Hydraulic Diameter,设置Tubulent Intensity为5,设置Hydraulic Diameter为0.15。
- 切换至Thermal面板,设置Temperature为15,如图所示。
- inlet-z边界设置
- 与inlet-y设置相类似,所不同的是设置Velocity Manitude参数值为0.1;设置Hydraulic Diameter为0.1;设置Temperature为25
- outlet边界设置
- 选择Type下拉框选项pressure-outlet,点击Edit…按钮
- 在弹出的对话框Momentum标签页下,设置Gauge Pressure为0,设置Specification Method为Intensity and Hydraulic Diameter,设置Backflow Turbulent Intensity为5,设置Backflow Hydraulic Diameter为0.15
- 切换至Thermal面板,设置Temperature为20。
需要注意的是:在计算的过程中,有可能会出现介质从出口边界进入流体域的情况(回流),这种情况有可能是真是的流动特征(在计算收敛时仍然存在回流),或者仅仅只是收敛过程中的短暂状态(随计算进行回流消失)。不管是何种情况,FLUENT需要知道边界上的真实来流信息。若在出口位置没有回流,则这些回流参数值在计算过程中不会被使用。在选择计算边界位置时,通常将出口位置选择在没有回流的地方。
12 设置离散格式
模型树节点Solution Methods主要设置模型的离散算法。如图所示。
- 选择Pressure-Velocity Coupling scheme为Coupled
- 激活选项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,步骤包括:
点击Surface Monitors下的Create…按钮
- Name:设置为p-inlet-y
- Plot Windws:设置为2
- Report Type:设置为Area-Weighted Average
- Field Variable:设置为Pressure及Static Pressure
- Surface:选择inlet-y
点击Surface Monitors下的Create…按钮
- Name:设置为p-inlet-z
- Plot Windws:设置为3
- Report Type:设置为Area-Weighted Average
- Field Variable:设置为Pressure及Static Pressure
- Surface:选择inlet-z
点击Surface Monitors下的Create…按钮
- Name:设置为t-dev-outlet
- Plot Windws:设置为4
- Report Type:设置为Standard Deviation
- Field Variable:设置为Temperature及Static Temperature
- Surface:选择outlet
14 Initialization
利用模型树节点Solution Initialization可对计算域进行初始化。FLUENT提供了两种初始化方法:
- Hybird Initialization:通过各种不同的插值方式获得计算域中的初始值。如利用求解拉普拉斯方程的方式获取初始速度场与压力场
- Standard Initialization:直接定义各未知物理量的初始值
本案例采用Hybird Initialization方式进行初始化,如上图所示,选择Initialize按钮进行初始化。此时在图形窗口中可能会出现如下图所示的警告信息,不过这仅仅只是提示拉普拉斯方程没有收敛,大可以忽略。
对于稳态计算,初始值不会影响最终计算结果,但是会影响收敛过程,严重偏离实际的初始值可能会导致计算收敛缓慢甚至发散。对于瞬态计算,初始值会影响到后续的计算结果。
15 Run Calculation
选择模型树节点Run Calculation,如图所示。
- 设置Number of Iterations为350,点击按钮Calculate进行迭代计算。
16 Results
计算后处理。
16.1 计算监测图形
残差曲线
计算监测得到的残差曲线如下图所示。
图中残差曲线显示计算在迭代120步左右达到收敛,表现为残差曲线降低至设置的残差标准以下,默认残差标准为
入口压力监测图
两个入口压力监测图如下图所示。
(图1)
(图2)
从这两幅压力监测图看出计算结果基本达到稳定,压力值随迭代变化很小。- 出口温度标准差变化图
监测得到的出口温度标准差曲线图如下图所示。
温度标准差反映了温度混合的均匀程度,该值越大表示温度分布越不均匀。图中最终的温度标准差约为0.2。
16.2 Graphics
模型树节点Graphics下包含了Mesh、Contours、Vectors、Pathlines以及Particle Tracks,如图所示。在Graphics参数设置面板中还包含了Animations操作以及一些图形显示参数设置按钮,如灯光、视图等。
- Mesh:显示网格图
- Contours:显示云图
- Vectors:显示矢量图
- Pathlines:显示流线图
- Particle Tracks:显示粒子追踪图
本案例主要利用Contours及Vectors显示云图及矢量图。
16.2.1 壁面温度分布
查看壁面温度云图显示。鼠标双击Graphics列表框中的Contours列表项,在弹出的对话框中进行如下图所示设置:
- 勾选激活Filled选项
- 在Contours of下拉框中选择Temperature及Static Temperature
- 在Surfaces列表项中选择wall-fluid
- 点击按钮Display
壁面上的温度云图显示如下图所示。
16.2.2 创建截面
创建截面后可以显示截面上的物理量分布。这里创建x截面。
- 利用Ribbon界面中的Postprocessing标签页
- 选择Create按钮下的Iso-Surface…功能菜单
如下图所示。
在弹出的对话框中进行如图所示设置:
- 选择Surface of Constant为Mesh及X-Coordinate
- 设置Iso-Value为0
- 设置New Surface Name为x-0
- 点击Create按钮创建截面
16.2.3 显示截面物理量
回到Contours设置面板,
- 设置Contours of为Velocity及Velocity Magnitude
- 选择Surface为x-0
- 点击按钮Display
显示速度云图如下图所示。
设置Contours of为Temperature及Static 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…,如下图所示。
弹出如下图所示对话框:
- 设置Type为Line
- 设置End Point分布为**(0,-0.3556,0)及(0,0.3556,0)
- 设置New Surface Name为line-center
双击模型树节点XY Plot,弹出如下图所示对话框,进行如下设置: - 设置Plot Direction为**(0,1,0)
- 设置Y Axis Function为Velocity及Velocity Magnitude
- 选择Surface列表项line-center
- 点击按钮Plot
显示沿直线line-center上速度分布曲线如下图所示。
以上是关于fluent中的ufd的主要内容,如果未能解决你的问题,请参考以下文章