5-1-FLUENT流体模拟-UDF-讲解解析课件.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《5-1-FLUENT流体模拟-UDF-讲解解析课件.ppt》由用户(晟晟文业)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- FLUENT 流体 模拟 UDF 讲解 解析 课件
- 资源描述:
-
1、计算流体力学软件计算流体力学软件Fluent培训培训UDF基础基础A Pera Global Company PERA China概要nFLUENT UDF简介nFLUENT 数据结构和宏n两个例子nUDF 支持A Pera Global Company PERA China简介n什么是UDF?UDF 是用户自己用C语言写的一个函数,可以和FLUENT动态链接 标准C 函数 三角函数,指数,控制块,Do循环,文件读入/输出等 预定义宏 允许获得流场变量,材料属性,单元几何信息及其他n为什么使用 UDFs?标准的界面不能编程模拟所有需求:定制边界条件,源项,反应速率,材料属性等 定制物理模型 用
2、户提供的模型方程 调整函数 执行和需求函数 初始化A Pera Global Company PERA China可以使用UDF的位置User-Defined PropertiesUser-Defined BCsUser Defined INITIALIZESegregatedPBCSExit LoopRepeatCheck Convergence Update Properties Solve Turbulence Equation(s)Solve SpeciesSolve EnergyInitializeBegin LoopDBCSSolve Other Transport Equatio
3、ns as requiredSolver?Solve Mass Continuity;Update VelocitySolve U-MomentumSolve V-MomentumSolve W-MomentumSolve Mass&MomentumSolve Mass,Momentum,Energy,SpeciesUser-defined ADJUSTSource termsSource termsSource termsSourcetermsA Pera Global Company PERA ChinaUDF 数据结构(1)在UDF中,体域和面域通过Thread数据类型获得Thread
4、是 FLUENT 定义的数据类型为了在thread(zone)中获得数据,我们需要提供正确的指针,并使用循环宏获得thread中的每个成员(cell or face)Fluid(cell thread or zone)Boundary(face thread or zone)DomainCellDomainCellsCell Threadface ThreadFacesA Pera Global Company PERA ChinaUDF 数据结构(2)ncell_t 声明了识别单元的整型数据类型nface_t声明了识别面的整型数据类型Domain*d;d is a pointer to do
5、main threadThread*t;t is a pointer to thread cell_t c;c is cell thread variableface_t f;f is a face thread variableNode*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 c
6、ell-threadsNodesA Pera Global Company PERA ChinaUDF中的循环宏n几个经常用到的循环宏为:对域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 pointerft,f_t
7、hread:a face thread pointerc:a cell thread variablef:a face thread variableA Pera Global Company PERA China例子 抛物线分布的速度入口n在二维弯管入口施加抛物线分布的速度nx 方向的速度定义为n需要通过宏获得入口的中心点,通过另外一个宏赋予速度条件A Pera Global Company PERA China 第1步 准备源代码nDEFINE_PROFILE 宏允许定义x_velocity函数 所有的UDFs 以 DEFINE_ 宏开始 x_velocity 将在 GUI中出现 thre
8、ad 和 nv DEFINE_PROFILE 宏的参数,分别用来识别域和变量 begin_f_loop宏通过thread指针,对所有的面f循环n F_CENTROID宏赋单元位置向量给 xn F_PROFILE 宏在面 f上施加速度分量n代码以文本文件保存inlet_bc.c#include udf.hDEFINE_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_CE
9、NTROID(x,f,thread);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 topof the program by the#include commandA Pera Global Company PERA China第 2 步 解释或编译 UDFn编译UDFn把 UDF 源码加入到源文件列表中n点击 Build进行编译和链接n如果没有错误,点击Load读入库文件n如需要,也可以卸载库文件/defin
10、e/user-defined/functions/managen解释UDFn把 UDF 源码加入到源文件列表中n点击 InterpretnFLUENT 窗口会出现语言n如果没有错误,点击 CloseDefineUser-DefinedFunctionsCompiledDefineUser-DefinedFunctionsInterpretedA Pera Global Company PERA China解释 vs.编译n用户函数可以在运行时读入并解释,也可以编译形成共享库文件并和FLUENT链接n解释 vs.编译 解释 解释器是占用内存的一个大型程序 通过逐行即时执行代码 优势 不需要第三方
11、编译器 劣势 解释过程慢,且占用内存 编译 UDF 代码一次转换为机器语言 运行效率高.创建共享库,和其他求解器链接 克服解释器的缺陷n只有在没安装C编译器时使用解释方式A Pera Global Company PERA China第3 步 在 FLUENT GUI中hook UDFn打开边界条件面板,选择你要施加UDF的边界n把 Constant 改为 udf x_velocityn宏的名字为 DEFINE_PROFILE 中第一个参数A Pera Global Company PERA China第4步 运行n可以在运行窗口中改变速度分布的更新间隔(默认为1)这个设置控制了流场多久(迭代
12、或时间步)更新一次n运行 calculation A Pera Global Company PERA China结果n左图为速度矢量图n右图为入口的速度矢量图,注意速度分布是抛物线型的A Pera Global Company PERA China其他 UDF Hooksn除了边界条件、源项、材料属性外,UDF 还可用于 初始化 每次初始化执行一次 求解调整 每次迭代执行一次 壁面热流量 以传热系数方式定义流体侧的扩散和辐射热流量 应用于所有壁面 用户定义表面反应或体积反应 Case/data 文件的读写 读入顺序必须和写出顺序一致 Execute-on-Demand 功能 不参与求解迭代D
13、efineUser-DefinedFunction HooksA Pera Global Company PERA China例 2 定制初始化n在球内设定初始温度600 K 球中心点位于(0.5,0.5,0.5),半径为 0.25,其余区域为300 Kn域指针通过变量传递到UDFnthread_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_
14、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(c,ct)A Pera Global Company PERA China DEFINE 宏nDEFINE 宏的例子 DEFINE_ADJUST(name,domain);general purpose UDF called every iterationDEFI
展开阅读全文