这里以一个简单的初始化案例来描述UDF的使用过程。

0 Fluent中的Patch

Fluent中提供了全域初始化以及局部Patch功能。对于整体区域的全局初始化可以采用starndard及hybrid方法进行初始化,指定各种物理量的初始分布。而对于计算域中的局部区域初始化,则可以通过Patch功能来实现。
在使用Patch方法时,需要实现对要进行Patch的区域进行标记。选择Mark/Adapt Cells→Region...可弹出区域定义对话框。

可以在弹出的对话框中设置几何条件来Mark区域。

然而在此对话框中可定义的形状类型只有三种:Quad、Circle或Cylinder,在3D模型中对应的是Hex、Sphere以及Cylinder。对于更复杂的模型似乎无能为力。此时可以借助UDF来解决问题。

1 案例描述

如下图所示的矩形区域为计算区域,其初始温度为300K。计算模型尺寸如图所示。

图中红色部分为要进行初始化处理的椭圆区域,其初始温度为500K。

2 网格

网格如图所示。

3 编写UDF

对于这种椭圆形区域的初始化,只能采用UDF来实现。利用DEFINE_INIT宏来实现这种区域的标记工作。
本案例中椭圆方程为:
\[
\frac{(x-0.05)^2}{0.03^2}+\frac{(x-0.03)^2}{0.015^2} =1
\]
因此可编写UDF如下。

4 编译UDF

利用User Defined标签页下的Function→Compiled...,Fluent软件会弹出UDF编译对话框。

在弹出的对话框中利用Add...按钮添加UDF源文件,点击Build按钮进行编译,并点击按钮Load加载UDF。

本案例也可以采用解释的方式运行。

5 Hook UDF

UDF编译完成后,需要将UDF加载到Fluent中。这部分工作可以通过相应的GUI来实现。
DEFINE_INIT宏需要在User Defined标签页下的Funcition Hooks...中进行加载。

选择此按钮后打开UDF加载对话框。

5 查看结果

在查看初始化结果之前,需要开启相应的模型。由于本案例初始化的是温度变量,所以必须首先开启能量方程。

之后进行初始化。

初始化完毕后可以查看温度云图分布,如下图所示。

可以看到椭圆形区域初始温度设置为500K。
按同样的道理,可以初始化任何形状的区域,只要这些区域可以用数学函数来表达。


更多CFD资料可微信扫描下方二维码关注微信公众号。

Fluent UDF【5】:第一个UDF的更多相关文章

  1. GCC编译UDF和gdb调试UDF

    Fluent版本:19.0 前面我们介绍过使用VS来编译和调试UDF,其实我们也可以用GCC来编译UDF.gdb调试UDF.本次介绍的方法更具有通用性,也适用于Linux下Fluent的UDF编译和调 ...

  2. UDF——文件编码造成UDF编译失败

    有时候我们觉得我们的代码写得很正确的,但是在Fluent当中编译的时候一直编译不通过,提示我们错误,我们根据Fluent当中的错误提示去找到源代码中对应的行,却发现没有错误提示当中的问题,出现这个问题 ...

  3. fluent中如何对一个非整个volume的特定的区域进行数据分析?【转载】

    作者:王蒙 链接:https://www.zhihu.com/question/37432813 来源:知乎 很抱歉,我不知道 fluent 中是否有这一功能,我这个学期才开始学.但 CFD-Post ...

  4. 在Visual Studio中直接编译Fluent的UDF

    VS版本:Visual Studio 2013 Fluent版本:Fluent18.2 首先我们启动VS Studio中直接编译Fluent的UDF" title="在Visual ...

  5. Hive 文件格式 & Hive操作(外部表、内部表、区、桶、视图、索引、join用法、内置操作符与函数、复合类型、用户自定义函数UDF、查询优化和权限控制)

    本博文的主要内容如下: Hive文件存储格式 Hive 操作之表操作:创建外.内部表 Hive操作之表操作:表查询 Hive操作之表操作:数据加载 Hive操作之表操作:插入单表.插入多表 Hive语 ...

  6. Hive基本语法操练

    建表规则如下: CREATE [EXTERNAL] TABLE [IF NOT EXISTS] table_name [(col_name data_type [COMMENT col_comment ...

  7. 常用webshell提权方法总结

    pcAnywhere提权:1.利用pcAnywhere提权,前提条件是pcAnywhere默认安装到默认路径,以及它的目录安全权限有users权限,如果管理员删除了users和power users用 ...

  8. Hive 自定义函数(转)

    Hive是一种构建在Hadoop上的数据仓库,Hive把SQL查询转换为一系列在Hadoop集群中运行的MapReduce作业,是MapReduce更高层次的抽象,不用编写具体的MapReduce方法 ...

  9. Hive基础讲解

      一.Hive背景介绍 Hive最初是Facebook为了满足对海量社交网络数据的管理和机器学习的需求而产生和发展的.马云在退休的时候说互联网现在进入了大数据时代,大数据是现在互联网的趋势,而had ...

随机推荐

  1. aapt 命令可应用于查看apk包名、主activity、版本等很多信息

    aapt即Android Asset Packaging Tool,在SDK的build-tools目录下,本文小结了一下该工具的用法. 配置环境变量后可直接在cmd使用该命令 http://blog ...

  2. Safari导入书签

    1.打开Safari 这边safari会自动带出一些关联的浏览器,但如果你要导入的浏览器不在这里的话,就需要看第二步. 2.比如,这里我要从QQ浏览器导入,先打开QQ浏览器. 其他浏览器都类似,找到书 ...

  3. 关于iOS应用通过OpenURL在设置打开相机权限,然后原应用会立即崩溃(重启)的理解

    最近偶然发现的一个怪现象: 应用需要相机权限,如果检测到没有开启权限,我们代码内,通过openURL跳转设置界面 //打开应用设置 let url:NSURL = NSURL(string: UIAp ...

  4. Struts2常见配置(草稿)

    Struts2框架配置文件加载的顺序(了解加载配置文件的顺序,重点掌握struts.xml配置文件) 1.Struts2框架的核心是StrutsPrepareAndExecuteFilter过滤器,该 ...

  5. HDU 4602 Partition (矩阵乘法)

    Partition Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total S ...

  6. Jquery UI的日历控件datepicker限制日期(转)

    网上找到这篇文章:http://www.jssay.com/blog/index.php/2010/04/27/%E5%A6%82%E4%BD%95%E7%A6%81%E7%94%A8datepick ...

  7. iOS 特定时间内才做某件事,有类似奇葩需求可以参考

    我们项目启动的时候要弹出一个广告窗口,很简单的一个功能,服务器的判断一下满足条件,即返回数据,客户端判断数据部位NULL,则弹出弹窗但是老板说,这个要时间短弹出,每天的中午12点到下午2点不能弹出来这 ...

  8. solr开发从查询结果集中获取对象数据

    solrJ从查询结果集中获取对象数据. 方案一:自定义转换方式 /** * * SolrDocument与实体类转换 [测试通过] * * @author pudongping * * @param ...

  9. Access2007 操作或事件已被禁用模式阻止解决办法

    在“消息栏”上,单击“选项”. 在“Microsoft Office 安全选项”对话框中,单击“启用此内容”,然后单击“确定”. 如果没有看到消息栏在“数据库工具”选项卡上的“显示/隐藏”组中,单击“ ...

  10. win8 应用商店程序使用SQLITE数据库

    http://www.cnblogs.com/zhuzhenyu/archive/2012/11/27/2790193.html using SQLite; using System; using S ...