Fluent版本:19.0

Fluent当中提供了监测某一点物理量随迭代次数或者随时间变化的功能,下面我们就介绍如何在UDF当中实现相同的功能,并且UDF更加灵活,通过UDF的方式我们在知道某点运动规律的情况下,可以监测该动点的物理量随迭代次数或者随时间变化

下面我们用一个简单的二维算例来说明(算例来源于:https://confluence.cornell.edu/display/SIMULATION/FLUENT+-+Laminar+Pipe+Flow)

入口速度为1m/s,出口为1个标准大气压

物性参数:

密度:1kg/m3

粘度系数:2×103kg/(m·s)

启动Fluent

读入网格

加载已经编译好的UDF

为了与UDF的结果进行对比,我们这里建立与UDF当中一样的监测点(0,0),并且将监测数据输出,最后与UDF输出文件的数据进行对比

在初始化以前我们需要在Fluent输入下面的TUI命令,否则在使用UDF的过程当中会出现Received signal SIGSEGV错误

  我们采用VS来编写UDF,这样我们就可以采用c++面向对象来实现UDF(可参看前面的介绍)

  UDF的实现思路如下:

  UDF分为主进程(host)代码和节点(node)进程

对于主机进程代码:

在初始化的函数当中借助windows API函数删除原来存在的旧的监测文件

主机进程只和0节点进程进行数据交换,所以对于主机进程的代码来说,只需要接收来自0节点进程传输来的数据,并把数据写入文件当中

对于节点进程代码:

初始化函数当中不做任何动作

首先我们编写二维的PointVector类,该类是一个基类,用于存储点的坐标信息,方便后面实现点的查找,而对于三维点,UDF已经自带查找函数,所以无需单独编写类。

该类实现的功能:

1、    通过传入x,y的值构造一个点的类

2、    重载=、-、()等运算符

3、    通过SetX设定x坐标,SetY设定y坐标

4、    通过GetX获取x坐标,GetY获取y坐标

继承PointVector类,编写MyPoint类

该类实现的功能:

1、    通过实现多态,针对传入的参数不同(二维和三维),查找对应监测点所在的单元

2、    查找到监测点所在的单元然后得到单元的修正梯度和单元中心的物理量,三维模型单元可以通过UDF内置函数进行查找,二维单元需要自己编写算法查找

3、    根据单元中心与监测点的距离,借助修正梯度插值获得监测点的物理量

在UDF函数当中,每个节点进程反馈的数据都集中到0节点进程,最后通过0节点进程发送到主进程,主进程再把所有数据写入文件当中

UDF源码,cas和dat文件下载链接: https://pan.baidu.com/s/1EwpgeZM6PSwJ67oKyzuHeg 密码: qy1t

转载于:https://www.cnblogs.com/liusuanyatong/p/11259627.html

Fluent——UDF监测指定点的物理量相关推荐

  1. FLUENT UDF编译及蒸发冷凝相关问题

    FLUENT UDF编译及蒸发冷凝相关问题这里写自定义目录标题 1.[UDF编译]错误汇总及解决办法 2. 以下为网上搜索的关于蒸发冷凝的案例 3.模拟练习 UDF代码片 1.[UDF编译]错误汇总及 ...

  2. Fluent UDF中调用Matlab矩阵运算函数(以二维插值为例)

    Fluent UDF中经常需要用到一些常见算法,例如插值.拟合.矩阵运算等等,这些在UDF中是没有现成函数实现的,理论上需要我们自己去写函数.另一方面我们又注意到这些运算恰恰是Matlab的强项,几乎 ...

  3. Fluent UDF【4】:C语言

    Fluent UDF利用的是C语言,本文简单介绍在UDF中经常会用到的C语言常识. 本文部分内容来自UDF手册. 1 C语言中的注释 C语言中的注释利用/*及*/来实现.例如: /*这是一个注释*/ ...

  4. Fluent UDF中直接调用math.h中的误差函数erf、erfc

    我们知道误差函数定义为 这是一个带积分的函数,Fluent UDF中想自己写代码实现起来相当不方便,精度还不一定能保证.幸好C++11中为我们将这个函数内置在数学头文件math.h中,但是想要兼容C+ ...

  5. ANSYS Fluent UDF Manual 2020R2

    [实例简介]ANSYS Fluent 2020R2官方帮助文档,用户定义函数(udf)允许您自定义ANSYS Fluent,并可以显著提高其功能.ANSYS Fluent UDF手册介绍了如何在ANS ...

  6. Fluent UDF 实现用Newmark-β方法计算圆柱绕流流固耦合时的位移振动响应

    Fluent UDF 实现用Newmark-β方法计算圆柱绕流流固耦合时的位移振动响应 问题描述 代码 尚未解决的问题 问题描述 拟用Fluent模拟圆柱振子在不同流速的风作用下的横向振动.采用二维模 ...

  7. Fluent UDF中调用变量的梯度及其注意点

    Fluent UDF中有时候需要调用变量的梯度,例如温度梯度,压力梯度,VOF梯度等等,一般是在C_T,C_P,C_VOF后面加上"_G"来获取,例如C_T_G,C_VOF_G.看 ...

  8. Fluent UDF中根据zone的名字获取ID

    Fluent UDF中根据zone的名字获取ID Fluent UDF中经常用到thread*类型的指针,一般可以通过如下函数来获取. Lookup_Thread(Domain*domain, int ...

  9. udf要用c语言编辑吗,Fluent UDF编辑工具:Source Insight

    本文描述利用SourceInsght辅助Fluent UDF代码编写的过程. Fluent UDF利用的是C语言(其实也可以用C++),因此可以使用任何文本编辑器进行源代码的编写.对于简单的UDF代码 ...

  10. 改进版:Fluent UDF 实现用Newmark-β方法计算圆柱绕流流固耦合时的位移振动响应

    改进版:Fluent UDF 实现用Newmark-β方法计算圆柱绕流流固耦合时的位移振动响应 出现的问题 改进代码 效果 出现的问题 上一次的代码中,将用Newmark-β方法计算下一个时刻的位移和 ...

最新文章

  1. linux apache cpu,linux – Apache使用100%的CPU. “ps”命令可以告诉我它在做什么吗?...
  2. 机器学习练习数据哪里找?两行代码搞定!
  3. java大型wms架构设计_Java生鲜电商平台-库存管理设计与架构
  4. 在计算机应用中mis,在计算机的应用中,“MIS”表示
  5. IComparable和Icomparer接口
  6. 使用 file_get_contents 获取网站信息报错failed to open stream: HTTP request failed!
  7. 庆祝本人在cnblogs排名进入前2000!
  8. mysql中的存储机制_Mysql的存储引擎
  9. linux删除静态arp,Linux如何清理ARP缓存?
  10. 虚拟机无法将文件......DVD1.iso作为映像进行连接:找不到该文件
  11. python继承list_python中 class和l
  12. html网页之日历代码,javascript html实现网页版日历代码
  13. 电动汽车仿真系列-基于动态规划的混合动力汽车能量管理
  14. 百度经纬度转GPS经纬度
  15. HDU 4422 The Little Girl who Picks Mushrooms
  16. HDU-1548 A strange lift
  17. 英语常见缩写,职业,公司
  18. Redhat_rhel8.0_DNS服务搭建步骤
  19. 珠海 第十届亚洲机器人锦标赛_逾2000名选手云集珠海竞技第十届亚洲机器人锦标赛...
  20. 【数据仓库】大数据定义

热门文章

  1. 《菜鸟教程》丨2D骨骼动画工具DragonBones的使用教程
  2. C语言小技巧之如何求平均数
  3. matlab单级齿轮减速器设计
  4. c# 3D图形处理库
  5. html网页有内容不能向下拉,为什么百度页面不能往下拉
  6. 获取打开的记事本中的内容 - 回复 ymg1103 的问题
  7. discuz X2中template文件夹中模板文件目录
  8. Maven使用指南 配置阿里云镜像提高下载速度
  9. 天梯赛L2-016 愿天下有情人都是失散多年的兄妹
  10. docker run参数-v的rw、ro详解