Fluent里的用户自定义函数

上传人:ali****an 文档编号:121746722 上传时间:2020-02-25 格式:PPT 页数:65 大小:732.51KB
返回 下载 相关 举报
Fluent里的用户自定义函数_第1页
第1页 / 共65页
Fluent里的用户自定义函数_第2页
第2页 / 共65页
Fluent里的用户自定义函数_第3页
第3页 / 共65页
Fluent里的用户自定义函数_第4页
第4页 / 共65页
Fluent里的用户自定义函数_第5页
第5页 / 共65页
点击查看更多>>
资源描述

《Fluent里的用户自定义函数》由会员分享,可在线阅读,更多相关《Fluent里的用户自定义函数(65页珍藏版)》请在金锄头文库上搜索。

1、用户自定义函数 UDF 用户自定义函数 用户自定义函数或UDF是用户自编的程序它可以被动态的连接到Fluent求解器上来提高求解器性能用户自定义函数用C语言编写使用DEFINE宏来定义UDFs中可使用标准C语言的库函数也可使用预定义宏FluentInc 提供通过这些预定义宏可以获得Fluent求解器得到的数据 UDF分类与区别 UDFs使用时可以被当作解释函数或编译函数解释函数在运行时读入并解释编译UDFs则在编译时被嵌入共享库中并与Fluent连接解释UDFs用起来简单但是有源代码和速度方面的限制不足 编译型UDFs执行起来较快也没有源代码限制但设置和使用较为麻烦 UDF的用途 满足用户个性

2、化需求 边界条件材料性质表面与体积反应速率输运方程源项用户标量输运方程 UDS 调节每次迭代值初始化流场异步执行后处理改善模型改进 离散项模型 多相混合物模型 辐射模型等 UDF举例 上壁面温度300K 绝热壁面 绝热壁面 温度 315K 温度分布 Profile处理 Temppoint26 x0 00E 032 00E 034 00E 036 00E 038 00E 031 00E 021 20E 021 40E 021 60E 021 80E 022 00E 022 20E 022 40E 022 60E 022 80E 023 00E 023 20E 023 40E 023 60E 02

3、3 80E 024 00E 024 20E 024 40E 024 60E 024 80E 025 00E 02 y0 00E 000 00E 000 00E 000 00E 000 00E 000 00E 000 00E 000 00E 000 00E 000 00E 000 00E 000 00E 000 00E 000 00E 000 00E 000 00E 000 00E 000 00E 000 00E 000 00E 000 00E 000 00E 000 00E 000 00E 000 00E 000 00E 00 t3 49E 023 50E 023 50E 023 47E 02

4、3 46E 023 44E 023 41E 023 39E 023 36E 023 33E 023 31E 023 28E 023 26E 023 24E 023 22E 023 20E 023 19E 023 18E 023 17E 023 16E 023 16E 023 16E 023 15E 023 15E 023 15E 023 15E 02 Profile处理要点 和一般计算一样设置求解器 模型等 Define Profile Read 数据 Define BoundaryCondition 所需设置的面 Thermal Temperature Tempt 和一般计算一样 设置其它边

5、值条件 初值条件及求解与结果检查等 UDF处理温度 include udf h DEFINE PROFILE bottom temperature thread position realx ND ND thiswillholdthepositionvector realy face tf begin f loop f thread F CENTROID x f thread y x 0 F PROFILE f thread position 315 y 044 y 044 044 044 35 end f loop f thread UDF设置边界温度处理要点 和一般计算一样设置求解器 模型

6、等 Define Userdefined Functions InterpretedOrCompiled 编译Define BoundaryCondition 所需设置的面 Thermal Temperature BottomTemperature 和一般计算一样 设置其它边值条件 初值条件及求解与结果检查等 侧面与地面两处UDF 定义一个以上UDF 上壁面温度300K 温度抛物线分布 绝热壁面 温度 315K 温度分布 UDF编写 include udf h DEFINE PROFILE bottom temperature thread position 程序1 DEFINE PROFIL

7、E side temperature thread position 程序2 DEFINE PROFILE inlet velocity thread position 程序3 边界温度分布 左侧温度分布下面温度分布 场温度分布 UDF编写 用C语言 注释 这是刘某人讲课示范用的程序 数据类型Int 整型Long 长整型Real 实数Float 浮点型Double 双精度Char 字符型UDF解释函数在单精度算法中定义real类型为float型 在双精度算法宏定义real为double型 因为解释函数自动作如此分配 所以使用在UDF中声明所有的float和double数据变量时使用real数据

8、类型是很好的编程习惯 局部变量 局部变量只用于单一的函数中 当函数调用时 就被创建了 函数返回之后 这个变量就不存在了 局部变量在函数内部 大括号内 声明 在下面的例子中 mu lam和temp是局部变量 DEFINE PROPERTY cell viscosity cell thread realmu lam realtemp C T cell thread if temp 288 mu lam 5 5e 3 elseif temp 286 mu lam 143 2135 0 49725 temp elsemu lam 1 returnmu lam FLUENT求解过程中UDFs的先后顺序

9、非耦合求解器 耦合求解器 FLUENT网格拓扑 单元 cell 区域被分割成的控制容积单元中心 cellcenter FLUENT中场数据存储的地方面 face 单元 2Dor3D 的边界边 edge 面 3D 的边界节点 node 网格点单元线索 cellthread 在其中分配了材料数据和源项的单元组面线索 facethread 在其中分配了边界数据的面组节点线索 nodethread 节点组区域 domain 由网格定义的所有节点 面和单元线索的组合 Fluent数据类型 cell tface tThreadNodeDomain cell t是线索 thread 内单元标识符的数据类型

10、它是一个识别给定线索内单元的整数索引 face t是线索内面标识符的数据类型 它是一个识别给定线索内面的整数索引 Thread数据类型是FLUENT中的数据结构 它充当了一个与它描述的单元或面的组合相关的数据容器 Node数据类型也是FLUENT中的数据结构 它充当了一个与单元或面的拐角相关的数据容器 Domain数据类型代表了FLUENT中最高水平的数据结构 它充当了一个与网格中所有节点 面和单元线索组合相关的数据容器 使用DEFINEMacros定义UDF DEFINE MACRONAME udf name passed invariables 这里括号内第一个自变量是你的UDF的名称 名

11、称自变量是情形敏感的必须用小写字母指定 一旦函数被编译 和连接 你为你的UDF选择的名字在FLUENT下拉列表中将变成可见的和可选的 第二套输入到DEFINE宏的自变量是从FLUENT求解器传递到你的函数的变量 DEFINE PROFILE inlet x velocity thread index 用两个从FLUENT传递到函数的变量thread和index定义了名字为inlet x velocity的分布函数 这些passed in变量是边界条件区域的ID 作为指向thread的指针 而index确定了被存储的变量 一旦UDF被编译 它的名字 例如 inlet x velocity 将在F

12、LUENT适当的边界条件面板 例如 VelocityInlet面板 的下拉列表中变为可见的和可选的 UDF源文件中包含udf h文件 include udf h 通过在你的UDF源文件中包含udf h 编译过程中所有的DEFINE宏的定义与源代码一起被包含进来 udf h文件也为所有的C库函数头文件包含 include指示 与大部分头文件是针对Fluent提供的宏和函数是一样的 例如 mem h 除非有另外的指示 没必要在你的UDF中个别地包含这些头文件 DEFINE PROFILE inlet x velocity thread index 定义在udf h文件中为 defineDEFINE

13、 PROFILE name t i voidname Thread t inti 在编译过程中延伸为voidinlet x velocity Thread thread intindex 名字为inlet x velocity的函数不返回值由于它被声明为空的数据类型 UDF任务 返回值修改自变量返回值和修改自变量修改FLUENT变量 不能作为自变量传递 写信息到 或读取信息从 case或data文件 返回值 DEFINE PROPERTY返回一个udf h中指定的real数据类型 两个real变量传入函数 通过函数计算层流粘度mu lam的值 其是温度C T cell thread 的函数 根

14、据单元体温度 计算出mu lam 在函数结尾 mu lam值被返回 DEFINE PROPERTY cell viscosity cell thread realmu lam realtemp C T cell thread if temp 288 mu lam 5 5e 3 elseif temp 286 mu lam 143 2135 0 49725 temp elsemu lam 1 returnmu lam FunctionthatModifyanArgument 判断单元是否在多孔区域 给多孔介质区域定义反应速率 real指针变量rr是一个传递给函数的自变量 UDF使用废弃操作符 分

15、配反应速率值给废弃指针 rr 指针rr指向的目标是设置反应速率 通过这个操作 存储在内存中这个指针上的字符的地址被改变了 不再是指针地址本身 include udf h defineK12 0e 2 defineK25 DEFINE VR RATE user rate c t r mole weight species mf rr rr t reals1 species mf 0 realmw1 mole weight 0 if FLUID THREAD P t 返回一个值和修改一个自变量的函数 DEFINE SOURCE返回一个在udf h中指定的数据类型 函数采用自变量ds 它是数组的名字

16、 并设置由eqn指定的元素为关于速度 w vel 导数的值 这是z动量方程源项 这个函数也计算了旋转速度源项的值source 并返回这个值到求解器 include udf h defineOMEGA50 rotationalspeedofswirler defineWEIGHT1 e20 weightingcoefficientsinlinearizedequation DEFINE SOURCE user swirl cell thread dS eqn realw vel x ND ND y source C CENTROID x cell thread y x 1 w vel y OMEGA linearw velocityatthecell source WEIGHT w vel C WSWIRL cell thread dS eqn WEIGHT returnsource 修改FLUENT变量的函数 函数由声明变量f作为face t数据类型开始 一维数组x和变量y是real数据类型 循环宏用来在区域中每个面上循环以创建型线或数据数组 在每个循环内 F CENTROID为含有i

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 大杂烩/其它

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号