最新5-1 FLUENT流体模拟-UDF-讲解.ppt

上传人:scccc 文档编号:11348868 上传时间:2021-07-28 格式:PPT 页数:33 大小:1.96MB
返回 下载 相关 举报
最新5-1 FLUENT流体模拟-UDF-讲解.ppt_第1页
第1页 / 共33页
最新5-1 FLUENT流体模拟-UDF-讲解.ppt_第2页
第2页 / 共33页
亲,该文档总共33页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《最新5-1 FLUENT流体模拟-UDF-讲解.ppt》由会员分享,可在线阅读,更多相关《最新5-1 FLUENT流体模拟-UDF-讲解.ppt(33页珍藏版)》请在三一文库上搜索。

1、计算流体力学软件Fluent培训 UDF基础,最新5-1 FLUENT流体模拟-UDF-讲解,概要,FLUENT UDF简介 FLUENT 数据结构和宏 两个例子 UDF 支持,最新5-1 FLUENT流体模拟-UDF-讲解,简介,什么是UDF? UDF 是用户自己用C语言写的一个函数,可以和FLUENT动态链接 标准C 函数 三角函数,指数,控制块,Do循环,文件读入/输出等 预定义宏 允许获得流场变量,材料属性,单元几何信息及其他 为什么使用 UDFs? 标准的界面不能编程模拟所有需求: 定制边界条件,源项,反应速率,材料属性等 定制物理模型 用户提供的模型方程 调整函数 执行和需求函数

2、初始化,最新5-1 FLUENT流体模拟-UDF-讲解,可以使用UDF的位置,最新5-1 FLUENT流体模拟-UDF-讲解,UDF 数据结构 (1),在UDF中,体域和面域通过Thread数据类型获得 Thread 是 FLUENT 定义的数据类型 为了在thread (zone)中获得数据,我们需要提供正确的指针,并使用循环宏获得thread中的每个成员(cell or face),Fluid (cell thread or zone),Boundary (face thread or zone),Domain,Cell,最新5-1 FLUENT流体模拟-UDF-讲解,UDF 数据结构(2

3、),cell_t 声明了识别单元的整型数据类型 face_t声明了识别面的整型数据类型,TypeVariableMeaning of the declaration Domain*d;d is a pointer to domain thread Thread *t; t is a pointer to thread cell_t c; c is cell thread variable face_t f; f is a face thread variable Node *node;node is a pointer to a node.,最新5-1 FLUENT流体模拟-UDF-讲解,UD

4、F中的循环宏,几个经常用到的循环宏为: 对域d中所有单元thread循环:thread_loop_c(ct,d) 对域d中所有面thread循环:thread_loop_f(ft,d) 对thread t中所有单元循环:begin_c_loop(c, t) end_c_loop (c,t) 对面thread中所有面循环begin_f_loop(f, f_thread) end_f_loop(f, f_thread),d: a domain pointer ct, t: a cell thread pointer ft,f_thread: a face thread pointer c: a c

5、ell thread variable f: a face thread variable,最新5-1 FLUENT流体模拟-UDF-讲解,例子 抛物线分布的速度入口,在二维弯管入口施加抛物线分布的速度 x 方向的速度定义为 需要通过宏获得入口的中心点, 通过另外一个宏赋予速度条件,最新5-1 FLUENT流体模拟-UDF-讲解,第1步 准备源代码,DEFINE_PROFILE 宏允许定义x_velocity函数 所有的UDFs 以 DEFINE_ 宏开始 x_velocity 将在 GUI中出现 thread 和 nv DEFINE_PROFILE 宏的参数,分别用来识别域和变量 begin

6、_f_loop宏通过thread指针,对所有的面f循环 F_CENTROID宏赋单元位置向量给 x F_PROFILE 宏在面 f上施加速度分量 代码以文本文件保存inlet_bc.c,#include udf.h DEFINE_PRO) float x3; /* an array for the coordinates */ float y; face_t f; /* f is a face thread index */ begin_f_loop(f, thread) F_CENTROID(x,f,thread); y = x1; F_PROFILE(f, thread, nv) = 20

7、.*(1.- y*y/(.0745*.0745); end_f_loop(f, thread) ,Header file “udf.h” must be included at the top of the program by the #include command,最新5-1 FLUENT流体模拟-UDF-讲解,第 2 步 解释或编译 UDF,编译UDF 把 UDF 源码加入到源文件列表中 点击 Build进行编译和链接 如果没有错误,点击Load读入库文件 如需要,也可以卸载库文件/define/user-defined/functions/manage,解释UDF 把 UDF 源码加

8、入到源文件列表中 点击 Interpret FLUENT 窗口会出现语言 如果没有错误,点击 Close,Define,User-Defined,Functions,Compiled,Define,User-Defined,Functions,Interpreted,最新5-1 FLUENT流体模拟-UDF-讲解,解释 vs. 编译,用户函数可以在运行时读入并解释,也可以编译形成共享库文件并和FLUENT链接 解释 vs. 编译 解释 解释器是占用内存的一个大型程序 通过逐行即时执行代码 优势 不需要第三方编译器 劣势 解释过程慢,且占用内存 编译 UDF 代码一次转换为机器语言 运行效率高.

9、 创建共享库,和其他求解器链接 克服解释器的缺陷 只有在没安装C编译器时使用解释方式,最新5-1 FLUENT流体模拟-UDF-讲解,第3 步 在 FLUENT GUI中hook UDF,打开边界条件面板,选择你要施加UDF的边界 把 Constant 改为 udf x_velocity 宏的名字为 DEFINE_PROFILE 中第一个参数,最新5-1 FLUENT流体模拟-UDF-讲解,第4步 运行,可以在运行窗口中改变速度分布的更新间隔(默认为1) 这个设置控制了流场多久(迭代或时间步)更新一次 运行 calculation,最新5-1 FLUENT流体模拟-UDF-讲解,结果,左图为速

10、度矢量图 右图为入口的速度矢量图,注意速度分布是抛物线型的,最新5-1 FLUENT流体模拟-UDF-讲解,其他 UDF Hooks,除了边界条件、源项、材料属性外,UDF 还可用于 初始化 每次初始化执行一次 求解调整 每次迭代执行一次 壁面热流量 以传热系数方式定义流体侧的扩散和辐射热流量 应用于所有壁面 用户定义表面反应或体积反应 Case/ data 文件的读写 读入顺序必须和写出顺序一致 Execute-on-Demand 功能 不参与求解迭代,Define,User-Defined,Function Hooks,最新5-1 FLUENT流体模拟-UDF-讲解,例 2 定制初始化,在

11、球内设定初始温度600 K 球中心点位于 (0.5, 0.5, 0.5), 半径为 0.25, 其余区域为300 K 域指针通过变量传递到UDF thread_loop_c 宏用来获得所有单元threads (zones), begin_c_loop 宏获得每个单元thread中的单元,#include udf.h“ DEFINE_INIT(my_init_function, domain) cell_t c; Thread *ct; real xcND_ND; thread_loop_c(ct,domain) begin_c_loop (c,ct) C_CENTROID(xc,c,ct);

12、if (sqrt(ND_SUM(pow(xc0-0.5,2.), pow(xc1 - 0.5,2.), pow(xc2 - 0.5,2.) 0.25) C_T(c,ct) = 600.; else C_T(c,ct) = 300.; end_c_loop (c,ct) ,最新5-1 FLUENT流体模拟-UDF-讲解,DEFINE 宏,DEFINE 宏的例子,DEFINE_ADJUST(name,domain); general purpose UDF called every iteration DEFINE_INIT(name,domain); UDF used to initialize

13、 field variables DEFINE_ON_DEMAND(name); an execute-on-demand function DEFINE_RW_); customize reads/writes to case/data files DEFINE_PRO); boundary profiles DEFINE_SOURCE(name,cell,thread,dS,index); equation source terms DEFINE_HEAT_FLUX(name,face,thread,c0,t0,cid,cir); heat flux DEFINE_PROPERTY(nam

14、e,cell,thread); material properties DEFINE_DIFFUSIVITY(name,cell,thread,index); UDS and species diffusivities DEFINE_UDS_FLUX(name,face,thread,index); defines UDS flux terms DEFINE_UDS_UNSTEADY(name,cell,thread,index,apu,su); UDS transient terms DEFINE_SR_RATE(name,face,thread,r,mw,yi,rr); surface r

15、eaction rates DEFINE_VR_RATE(name,cell,thread,r,mw,yi,rr,rr_t); volumetric reaction rates DEFINE_SCAT_PHASE_FUNC(name,cell,face); scattering phase function for DOM DEFINE_DELTAT(name,domain); variable time step size for unsteady problems DEFINE_TURBULENT_VISCOSITY(name,cell,thread); calculates turbu

16、lent viscosity DEFINE_TURB_PREMIX_SOURCE(name,cell,thread,turbflamespeed,source); turbulent flame speed DEFINE_NOX_RATE(name,cell,thread,nox); NOx production and destruction rates,最新5-1 FLUENT流体模拟-UDF-讲解,几何和时间宏,C_NNODES(c,t); Returns nodes/cell C_NFACES(c,t); Returns faces/cell F_NNODES(f,t);Returns

17、 nodes/face C_CENTROID(x,c,t);Returns coordinates of cell centroidin array x F_CENTROID(x,f,t); Returns coordinates of face centroidin array x F_AREA(A,f,t); Returns area vector in array A C_VOLUME(c,t); Returns cell volume C_VOLUME_2D(c,t); Returns cell volume (axisymmetric domain) real flow_time()

18、; Returns actual time int time_step; Returns time step number RP_Get_Real(“physical-time-step”); Returns time step size,最新5-1 FLUENT流体模拟-UDF-讲解,流场变量宏,C_R(c,t);Density C_P(c,t);Pressure C_U(c,t);U-velocity C_V(c,t);V-velocity C_W(c,t);W-velocity C_T(c,t);Temperature C_H(c,t);Enthalpy C_K(c,t);Turbule

19、nt kinetic energy (k) C_D(c,t);Turbulent dissipation rate () C_O(c,t);Specific dissipation of k () C_YI(c,t,i);Species mass fraction C_UDSI(c,t,i); UDS scalars C_UDMI(c,t,i); UDM scalars C_DUDX(c,t);Velocity derivative C_DUDY(c,t);Velocity derivative C_DUDZ(c,t);Velocity derivative,C_DVDX(c,t); Velo

20、city derivative C_DVDY(c,t); Velocity derivative C_DVDZ(c,t); Velocity derivative C_DWDX(c,t); Velocity derivative C_DWDY(c,t); Velocity derivative C_DWDZ(c,t); Velocity derivative C_MU_L(c,t); Laminar viscosity C_MU_T(c,t); Turbulent viscosity C_MU_EFF(c,t); Effective viscosity C_K_L(c,t); Laminar

21、thermal conductivity C_K_T(c,t); Turbulent thermal conductivity C_K_EFF(c,t); Effective thermal conductivity C_CP(c,t); Specific heat C_RGAS(c,t); Gas constant,最新5-1 FLUENT流体模拟-UDF-讲解,流场变量宏,C_R(c,t);Density C_P(c,t);Pressure C_U(c,t);U-velocity C_V(c,t);V-velocity C_W(c,t);W-velocity C_T(c,t);Temper

22、ature C_H(c,t);Enthalpy C_K(c,t);Turbulent kinetic energy (k) C_D(c,t);Turbulent dissipation rate () C_O(c,t);Specific dissipation of k () C_YI(c,t,i);Species mass fraction C_UDSI(c,t,i); UDS scalars C_UDMI(c,t,i); UDM scalars C_DUDX(c,t);Velocity derivative C_DUDY(c,t);Velocity derivative C_DUDZ(c,

23、t);Velocity derivative,C_DVDX(c,t); Velocity derivative C_DVDY(c,t); Velocity derivative C_DVDZ(c,t); Velocity derivative C_DWDX(c,t); Velocity derivative C_DWDY(c,t); Velocity derivative C_DWDZ(c,t); Velocity derivative C_MU_L(c,t); Laminar viscosity C_MU_T(c,t); Turbulent viscosity C_MU_EFF(c,t);

24、Effective viscosity C_K_L(c,t); Laminar thermalconductivity C_K_T(c,t); Turbulent thermalconductivity C_K_EFF(c,t); Effective thermalconductivity C_CP(c,t); Specific heat C_RGAS(c,t); Gas constant C_DIFF_L(c,t); Laminar speciesdiffusivity C_DIFF_EFF(c,t,i); Effective species diffusivity,最新5-1 FLUENT

25、流体模拟-UDF-讲解,UDM,对每个单元由用户分配内存 定义多达500个变量 可以通过 UDFs获得: C_UDMI(cell,thread,index); F_UDMI(face,thread,index); 数据信息存在 FLUENT data 文件中,Define,User-Defined,Memory,最新5-1 FLUENT流体模拟-UDF-讲解,UDS,FLUENT 可以求解多达50个用户 定义标量的输运方程 UDS 变量的数量 UDS 在哪个域内求解 通量函数 DEFINE_UDS_FLUX(name,face,thread,index) 非稳态函数 DEFINE_UDS_UN

26、STEADY(name,cell,thread,index,apu,su) 例子 能用来求解磁流体方程,Define,User-Defined,Scalars,最新5-1 FLUENT流体模拟-UDF-讲解,其他宏,还有许多其他宏: 湍流模型 多相流模型 化学反应流 动网格 输入/输出,最新5-1 FLUENT流体模拟-UDF-讲解,UDF 技术支持,由于 UDFs 可能非常复杂, ANSYS 不对用户的UDFs精度及求解稳定性负责 支持限于UDFs 和 FLUENT 求解器间的通讯,最新5-1 FLUENT流体模拟-UDF-讲解,25,动网格UDF介绍,1、DEFINE_CG_MOTION:

27、用来控制刚体的运动 2、DEFINE_GEOM:用来控制变形边界的投影 3、DEFINE_GRID_MOTION:控制单个节点的运动,最新5-1 FLUENT流体模拟-UDF-讲解,26,DEFINE_CG_MOTION介绍,用来指定随时间变化的刚体运动的线速度和角速度,最新5-1 FLUENT流体模拟-UDF-讲解,27,DEFINE_GEOM介绍,用来定义变形区域的几何形状,变形区域的节点在移动后投影到此几何图上 目的:保证移动后的变形区域上的节点始终都在所规定的几何形状上,最新5-1 FLUENT流体模拟-UDF-讲解,28,DEFINE_GEOM介绍,算例:,最新5-1 FLUENT流体模拟-UDF-讲解,29,DEFINE_GRID_MOTION介绍,用来移动任意边界和流体区域内的网格节点,使用此UDF时,每一个时间步都必须执行,算例:,最新5-1 FLUENT流体模拟-UDF-讲解,30,最新5-1 FLUENT流体模拟-UDF-讲解,31,最新5-1 FLUENT流体模拟-UDF-讲解,32,算例:,DEFINE_GRID_MOTION介绍,谢谢!,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 社会民生


经营许可证编号:宁ICP备18001539号-1