Fluent——UDF监测指定点的物理量
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
Fluent——UDF监测指定点的物理量的更多相关文章
- UDF——监测指定点的物理量
Fluent版本:2019 R1 Visual Studio版本:Visual Studio 2013 其他版本应该也是适用的 算例来源于:https://confluence.cornell.edu ...
- UDF——提取指定线上随时间变化的物理量
Fluent版本:Fluent 19.0 Visual Studio版本:Visual Studio 2013 有时候我们想要实现一些功能,比如:我们在使用Fluent进行瞬态计算的时候,想要获取某条 ...
- Fluent UDF【2】:学习途径
要怎样做才能做到无畏惧编写任何UDF程序?估计很多与UDF打交道的人都会问到这个问题. 面对UDF文档中那众多的宏描述,小伙伴们是不是感觉到茫然无措,不知从何入手.有时候读别人写好的程序感觉并不难,然 ...
- Fluent UDF【4】:C语言
Fluent UDF利用的是C语言,本文简单介绍在UDF中经常会用到的C语言常识. 本文部分内容来自UDF手册. 1 C语言中的注释 C语言中的注释利用/*及*/来实现.例如: /*这是一个注释*/ ...
- Fluent UDF【1】:简介
前面基本完成了动网格专题的发布,不过还是有一些内容并没有更新进去,比如说in-cylinder.接触检测.2.5D网格重构等.不过这些都是小技巧,写起来挺麻烦,以后有时间再通过案例视频的方式讲解好了. ...
- Fluent UDF【5】:第一个UDF
这里以一个简单的初始化案例来描述UDF的使用过程. 0 Fluent中的Patch Fluent中提供了全域初始化以及局部Patch功能.对于整体区域的全局初始化可以采用starndard及hybri ...
- Fluent UDF【8】:编译型UDF
UDF除了可以以解释的方式外,其还可以以编译的方式被Fluent加载.解释型UDF只能使用部分C语言功能,而编译型UDF则可以全面使用C语言的所有功能. 1 编译型UDF介绍 编译型UDF的构建方式与 ...
- Fluent UDF【6】:预处理命令
今天要讲的内容是关于C语言的预处理.搞清楚了这个,就可以分析UDF中的各种头文件源代码,从此写UDF不求人. 1 关于预处理 在UDF的各种头文件中(文件路径D:\Program Files\ANSY ...
- Fluent UDF【3】:环境配置
windows操作系统下UDF的编译需要借助Visual Studio中的C编译器.因此若要想编译UDF,则必须事先配置好编译环境. Visual Studio Visual Stuido(后面简称V ...
随机推荐
- Django ForeignKey不需要参照完整性?
我想在django模型中设置一个ForeignKey字段,它在某些时候指向另一个表.但我希望可以在这个字段中插入一个id,它引用另一个表中可能不存在的条目.因此,如果该行存在于另一个表中,我希望获得F ...
- Linux下搭建keepalive+nginx
一. 安装nginx(略) 二. 安装keepalive 下载http://www.keepalived.org/download.html 安装依赖包 yum install –y popt* gc ...
- JavaScript 之 String 对象
String 对象 之前学习的是 基本数据类型 String 类型,现在讨论的是 String对象(包装类型). String的特点:字符串的不可变性. var str = 'abc'; str = ...
- 国内不fq安装K8S一: 安装docker
目录 1.安装docker 1.1 准备工作 1.2 安装docker 1.3 修改cgroup 国内不fq安装K8S一: 安装docker 国内不fq安装K8S二: 安装kubernet 国内不fq ...
- 自己开发SSO单点登录
概述 单点登录指的是有一个中央的单点登录服务器,各个子系统和这个中央的单点登录服务器打交道,比如有A,B两个子系统. A登录后,B系统就不用再登录,直接可以访问,当其中有一个子系统选择注销时,那么所有 ...
- Linux服务器性能分析与优化
影响服务器性能的因素: CPU :大部分cpu在同一时间只能运行一个线程,超线程的处理器可以在同一时间处理多个线程,因此可以利用超线程特性提高系统性能. 在linux系统下,只有运行SMP内核才能支持 ...
- 关于TCP/IP
一.网络模型 计算机网络的两种模型:OSI 模型和 TCP/IP 模型 由于 OSI 模型过于复杂难以实现,导致 TCP/IP 模型更早地应用在现实中,这也使得 TCP/IP 模型成为标准 在 OSI ...
- 【比赛游记】NOI2019打铁记
上接 NOIWC2019冬眠记.(THUPC,CTS,APIO)2019四连爆蛋记 和 THUSC2019酱油记. Day0.5 笔试 AK 是容易的. 国家队选手见面会太好玩了啊! Day1 Day ...
- 项目Beta冲刺 用户试用报告
课程: 软件工程1916|W(福州大学) 作业要求: 项目Beta冲刺 团队名称: 火鸡堂 作业目标: 火鸡堂 队员学号 队员姓名 博客地址 备注 221600111 彼术向 http://www.c ...
- 一次性开启discuz所有版块的 [audio] [video] [flash] 等多媒体代码
开启全部版块的sql语句是: update cdb_forums set allowmediacode =1 开启指定版块的sql语句是: update cdb_forums set allowmed ...