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

最新文章

  1. lucene+IKAnalyzer实现中文纯文本检索系统
  2. 使用c#对windows进行关机、重启或注销
  3. 自学android半年,已从.net转型成android程序员,分享下这个过程
  4. [转]sed命令详解
  5. xml配置文件
  6. 2016HUAS暑假集训训练题 D - Find a way
  7. 能源项目xml文件标签释义--DefaultAdvisorAutoProxyCreator
  8. 【设计模式】单例设计模式的N中Java实现方法
  9. Set Windows IP by Batch
  10. CallContext和多线程
  11. BOOTICE(引导扇区维护工具) V1.3.3 中文免费绿色版
  12. 为什么我最终替换掉了NATS
  13. Day2 Python的运算符及三大语句控制结构
  14. Sun 与 Oracle 合并的未来
  15. sql语句修改字段类型和增加字段
  16. 2019-01-23 JavaScript实现ZLOGO: 性能改进
  17. OKR源自德鲁克和格鲁夫,跟谷歌是天作之合:4星|《这就是OKR》
  18. SparkStreaming流处理
  19. ajax 上传文件给webapi(带basic认证)
  20. F#周报2019年第4期

热门文章

  1. redis AbortOnConnectFail
  2. spark任务分配----TaskSchedulerImpl源码解析
  3. SpringMVC中@RequestParam注解作用
  4. js学习之面向对象
  5. powershell 远程下载并执行
  6. 面试题:android的安全机制有哪些
  7. Servlet HttpServletResponse对象、HttpServletRequest对象
  8. 阿里P7教你如何使用 Spring 配置动态数据源实现读写分离
  9. Golang: 读取文件并统计内容
  10. Spring框架的AOP编程,最通俗的语言解释,易懂易学