5-1 FLUENT流体模拟-UDF-讲解[高教书苑]_第1页
5-1 FLUENT流体模拟-UDF-讲解[高教书苑]_第2页
5-1 FLUENT流体模拟-UDF-讲解[高教书苑]_第3页
5-1 FLUENT流体模拟-UDF-讲解[高教书苑]_第4页
5-1 FLUENT流体模拟-UDF-讲解[高教书苑]_第5页
已阅读5页,还剩28页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、计算流体力学软件计算流体力学软件Fluent培训培训 UDF基础基础 1 A Pera Global Company PERA China 概要 nFLUENT UDF简介 nFLUENT 数据结构和宏 n两个例子 nUDF 支持 2高级教育 A Pera Global Company PERA China 简介 n什么是UDF? UDF 是用户自己用C语言写的一个函数,可以和FLUENT动态链接 标准C 函数 三角函数,指数,控制块,Do循环,文件读入/输出等 预定义宏 允许获得流场变量,材料属性,单元几何信息及其他 n为什么使用 UDFs? 标准的界面不能编程模拟所有需求: 定制边界条件,

2、源项,反应速率,材料属性等 定制物理模型 用户提供的模型方程 调整函数 执行和需求函数 初始化 3高级教育 A Pera Global Company PERA China 可以使用UDF的位置 User-Defined Properties User-Defined BCs User Defined INITIALIZE SegregatedPBCS Exit Loop Repeat Check Convergence Update Properties Solve Turbulence Equation(s) Solve Species Solve Energy InitializeBeg

3、in Loop DBCS Solve Other Transport Equations as required Solver? Solve Mass Continuity; Update Velocity Solve U-Momentum Solve V-Momentum Solve W-Momentum Solve Mass 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 v

4、ariable Node *node;node is a pointer to a node. Boundary face-thread (boundary-face ensemble) Fluid cell-thread (control-volume ensemble) Internal face-thread (internal-face ensemble) associated with cell-threads Nodes 6高级教育 A Pera Global Company PERA China UDF中的循环宏 n几个经常用到的循环宏为: 对域d中所有单元thread循环: t

5、hread_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 cell thread variable f: a face threa

6、d variable 7高级教育 A Pera Global Company PERA China 例子 抛物线分布的速度入口 n在二维弯管入口施加抛物线分布的速度 nx 方向的速度定义为 n需要通过宏获得入口的中心点, 通过另外一个宏赋予速度条件 8高级教育 A Pera Global Company PERA China 第1步 准备源代码 nDEFINE_PROFILE 宏允许定 义x_velocity函数 所有的UDFs 以 DEFINE_ 宏开始 x_velocity 将在 GUI中 出现 thread 和 nv DEFINE_PROFILE 宏的参 数, 分别用来识别域和变量 be

7、gin_f_loop宏通过 thread指针,对所有的面f 循环 n F_CENTROID宏赋单元位置向 量给 x n F_PROFILE 宏在面 f上施加 速度分量 n代码以文本文件保存 inlet_bc.c #include udf.h DEFINE_PROFILE(x_velocity,thread,nv) 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);

8、 y = x1; F_PROFILE(f, thread, nv) = 20.*(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 9高级教育 A Pera Global Company PERA China 第 2 步 解释或编译 UDF n编译UDF n把 UDF 源码加入到源文件列表中 n点击 Build进行编译和链接 n如果没有错误,点击Load读入库文件 n如需要,也可以卸

9、载库文件 /define/user- defined/functions/manage n解释UDF n把 UDF 源码加入到源文件列表中 n点击 Interpret nFLUENT 窗口会出现语言 n如果没有错误,点击 Close DefineUser-DefinedFunctionsCompiledDefineUser-DefinedFunctionsInterpreted 10高级教育 A Pera Global Company PERA China 解释 vs. 编译 n用户函数可以在运行时读入并解释,也可以编译形成共享库文件并和 FLUENT链接 n解释 vs. 编译 解释 解释器是

10、占用内存的一个大型程序 通过逐行即时执行代码 优势 不需要第三方编译器 劣势 解释过程慢,且占用内存 编译 UDF 代码一次转换为机器语言 运行效率高. 创建共享库,和其他求解器链接 克服解释器的缺陷 n只有在没安装C编译器时使用解释方式 11高级教育 A Pera Global Company PERA China 第3 步 在 FLUENT GUI中hook UDF n打开边界条件面板,选择你要施加UDF的边界 n把 Constant 改为 udf x_velocity n宏的名字为 DEFINE_PROFILE 中第一个参数 12高级教育 A Pera Global Company PE

11、RA China 第4步 运行 n可以在运行窗口中改变速度分布的更新间隔(默认为1) 这个设置控制了流场多久(迭代或时间步)更新一次 n运行 calculation 13高级教育 A Pera Global Company PERA China 结果 n左图为速度矢量图 n右图为入口的速度矢量图,注意速度分布是抛物线型的 14高级教育 A Pera Global Company PERA China 其他 UDF Hooks n除了边界条件、源项、材料属性外, UDF 还可用于 初始化 每次初始化执行一次 求解调整 每次迭代执行一次 壁面热流量 以传热系数方式定义流体侧的扩散和 辐射热流量 应

12、用于所有壁面 用户定义表面反应或体积反应 Case/ data 文件的读写 读入顺序必须和写出顺序一致 Execute-on-Demand 功能 不参与求解迭代 DefineUser-DefinedFunction Hooks 15高级教育 A Pera Global Company PERA China 例 2 定制初始化 n在球内设定初始温度600 K 球 中心点位于 (0.5, 0.5, 0.5), 半 径为 0.25, 其余区域为300 K n域指针通过变量传递到UDF nthread_loop_c 宏用来获得 所有单元threads (zones), begin_c_loop 宏获得

13、每个 单元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); 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

14、(c,ct) 16高级教育 A Pera Global Company PERA China DEFINE 宏 nDEFINE 宏的例子 DEFINE_ADJUST(name,domain); general purpose UDF called every iteration DEFINE_INIT(name,domain); UDF used to initialize field variables DEFINE_ON_DEMAND(name); an execute-on-demand function DEFINE_RW_FILE(name,fp); customize reads/

15、writes to case/data files DEFINE_PROFILE(name,thread,index); 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(name,cell,thread); material properties DEFINE_DIFFUSIVITY(name,cell,thread,index)

16、; 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 reaction rates DEFINE_VR_RATE(name,cell,thread,r,mw,yi,rr,rr_t); volumetric rea

17、ction 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 turbulent viscosity DEFINE_TURB_PREMIX_SOURCE(name,cell,thread,turbflamespeed,sourc

18、e); turbulent flame speed DEFINE_NOX_RATE(name,cell,thread,nox); NOx production and destruction rates 17高级教育 A Pera Global Company PERA China 几何和时间宏 C_NNODES(c,t); Returns nodes/cell C_NFACES(c,t); Returns faces/cell F_NNODES(f,t);Returns nodes/face C_CENTROID(x,c,t);Returns coordinates of cell cent

19、roid in array x F_CENTROID(x,f,t); Returns coordinates of face centroid in 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(); Returns actual time int time_step; Returns time step numbe

20、r RP_Get_Real(“physical-time-step”); Returns time step size 18高级教育 A Pera Global Company PERA China 流场变量宏 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); Turbulent kinetic energy (k) C_D(c,t); Turb

21、ulent 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); Velocity derivative C_DVDY(c,t); Veloc

22、ity 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 thermal conductivity C_K_T(c,t); T

23、urbulent thermal conductivity C_K_EFF(c,t); Effective thermal conductivity C_CP(c,t); Specific heat C_RGAS(c,t); Gas constant 19高级教育 A Pera Global Company PERA China 流场变量宏 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,

24、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,t);Veloc

25、ity 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); Effectiv

26、e viscosity C_K_L(c,t); Laminar 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 C_DIFF_L(c,t); Laminar species diffusivity C_DIFF_EFF(c,t,i); Effective species diffusivity 20高级教育 A Pera Gl

27、obal Company PERA China UDM n对每个单元由用户分配内存 定义多达500个变量 可以通过 UDFs获得: C_UDMI(cell,thread,index); F_UDMI(face,thread,index); 数据信息存在 FLUENT data 文件中 DefineUser-DefinedMemory 21高级教育 A Pera Global Company PERA China UDS nFLUENT 可以求解多达50个用户 定义标量的输运方程 UDS 变量的数量 UDS 在哪个域内求解 通量函数 DEFINE_UDS_FLUX(name,face,thread,index) 非稳态函数 DEFINE_UDS_UNSTEADY(name,cell,thread,index,apu,su) n例子 能用来求解磁流体方程 DefineUser-Defined

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论