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监测指定点的物理量的更多相关文章

  1. UDF——监测指定点的物理量

    Fluent版本:2019 R1 Visual Studio版本:Visual Studio 2013 其他版本应该也是适用的 算例来源于:https://confluence.cornell.edu ...

  2. UDF——提取指定线上随时间变化的物理量

    Fluent版本:Fluent 19.0 Visual Studio版本:Visual Studio 2013 有时候我们想要实现一些功能,比如:我们在使用Fluent进行瞬态计算的时候,想要获取某条 ...

  3. Fluent UDF【2】:学习途径

    要怎样做才能做到无畏惧编写任何UDF程序?估计很多与UDF打交道的人都会问到这个问题. 面对UDF文档中那众多的宏描述,小伙伴们是不是感觉到茫然无措,不知从何入手.有时候读别人写好的程序感觉并不难,然 ...

  4. Fluent UDF【4】:C语言

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

  5. Fluent UDF【1】:简介

    前面基本完成了动网格专题的发布,不过还是有一些内容并没有更新进去,比如说in-cylinder.接触检测.2.5D网格重构等.不过这些都是小技巧,写起来挺麻烦,以后有时间再通过案例视频的方式讲解好了. ...

  6. Fluent UDF【5】:第一个UDF

    这里以一个简单的初始化案例来描述UDF的使用过程. 0 Fluent中的Patch Fluent中提供了全域初始化以及局部Patch功能.对于整体区域的全局初始化可以采用starndard及hybri ...

  7. Fluent UDF【8】:编译型UDF

    UDF除了可以以解释的方式外,其还可以以编译的方式被Fluent加载.解释型UDF只能使用部分C语言功能,而编译型UDF则可以全面使用C语言的所有功能. 1 编译型UDF介绍 编译型UDF的构建方式与 ...

  8. Fluent UDF【6】:预处理命令

    今天要讲的内容是关于C语言的预处理.搞清楚了这个,就可以分析UDF中的各种头文件源代码,从此写UDF不求人. 1 关于预处理 在UDF的各种头文件中(文件路径D:\Program Files\ANSY ...

  9. Fluent UDF【3】:环境配置

    windows操作系统下UDF的编译需要借助Visual Studio中的C编译器.因此若要想编译UDF,则必须事先配置好编译环境. Visual Studio Visual Stuido(后面简称V ...

随机推荐

  1. 2019 拉卡拉java面试笔试题 (含面试题解析)

      本人5年开发经验.18年年底开始跑路找工作,在互联网寒冬下成功拿到阿里巴巴.今日头条.拉卡拉等公司offer,岗位是Java后端开发,因为发展原因最终选择去了拉卡拉,入职一年时间了,也成为了面试官 ...

  2. [Linux] 树莓派编译python3.7.4

    python3.7.4 源码编译后遇到ssl错误: pip is configured with locations that require TLS/SSL, however the ssl mod ...

  3. ip2region.jar实现ip转地址

    ip转地址 根据ip地址查询出所在地址. GitHub地址 https://github.com/lionsoul2014/ip2region/ pom坐标 <dependency> &l ...

  4. kbmmw 中的Boyer-Moore算法

    kbmmw 5.10 版本中实现了一个非常好用的字符串搜索算法,即Boyer-Moore算法. 在用于查找子字符串的算法当中,BM(Boyer-Moore)算法是目前被认为最高效的字符串搜索算法, 它 ...

  5. fiddler模拟弱网测试

    1.首先设置手机代理 设置手机代理到本机ip,端口号8888(Fiddler默认设置): 手机访问http://ip:port安装Fiddler证书 2.修改fiddler配置 勾选上后,已经开始限速 ...

  6. java项目路径总结,java.io.File支持的路放方式

    1.直接输入路径 已maven项目为例,直接输入路径的4种方式,即是File类支持的方式: /** * FileOutpurStream以字节数组方式写入文件 * @throws IOExceptio ...

  7. 【异常】微博生成短链异常{"request":"/2/short_url/shorten.json","error_code":"10014","error":"Insufficient app permissions!"}

    一.之前的调用方式 这种方式用了大约有一年时间,之前没有问题,但是2019-8-28号突然不行了,可能是由于微博对该接口的调用做了限制.不允许通过传递source参数的方式进行请求 该接口微博API文 ...

  8. ubuntu16安装php开发环境

    一,安装 ubuntu 工具 sudo apt install -y git curl zsh vim 二,安装php 和 php-fpm , redis ,memcached 等 sudo apt ...

  9. Python卸载不干净?苹果电脑卸载python教程

    如今,Pyhon越来越火,屡次超越Java.C++成为编程语言排行榜第一的语言,国内的公司和程序员们也越来越喜欢使用Python.但是Python安装之后,散落在电脑各处,删除起来比较麻烦,很多小伙伴 ...

  10. Python 并发部分的面试题

    进程 进程间内存是否共享?如何实现通讯? 进程间内存不共享,可以通过 Manage模块加锁 通过队列或 通过管道加锁 socket实现通讯 请聊聊进程队列的特点和实现原理? 先进先出 Queue 后进 ...