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

关于UDF

UDF并不是什么神秘的东西,然而在地球人的眼中,凡是与编程相关的工作,总是认为有点儿高大上罢了。其实UDF程序的编写绝对只是个体力活儿。

Fluent是一个通用软件。所谓的通用软件,意思就是说啥事儿都能做。能做流动,能做传热,能做化学反应,能做多相流,貌似与NS相关的内容都能做。然而,无所不能往往也意味着不甚精通。软件为了满足其通用性,无疑在各种参数的选取上偏于保守,比如说各种求解算法、各种模型参数,为了保证其收敛性和鲁棒性,必然会存在舍弃精度的做法。因此,通用的软件常常难以满足高级人士的计算需求。

作为商用软件,Fluent自然不愿意损失这些高级用户,因此软件给高级用户开了一扇窗口,允许用户根据自己的需求对软件进行一定程度的定制。因此就有了我们这里所说的UDF。

UDF(User Defined Functions,用户自定义功能),采用C语言进行编写,可以采用编译或解释的方式加载到Fluent中,利用UDF可以对Fluent计算过程中的一些模型参数或计算流程进行控制。

从哪儿开始?

要使用UDF,该如何入手?

Fluent帮助文档中提供了较为详尽的UDF使用方法,包含了绝大多数宏的使用描述(其实还有一部分宏并没有出现在文档中,亲们可以通过研读代码中的注释来使用这些用,见udf.h文件)。在编写UDF的过程中,UDF手册是必不可少的文档。

实际上UDF的应用过程是这样的:

  • 发现需要使用UDF。Fluent毕竟是一款成熟的商用软件,大多数情况下,利用GUI就能够满足我们的计算要求。只有当我们确信Fluent的GUI并不具备某项功能,而利用UDF可以满足此要求时,才开始着手编写UDF。记住:能用GUI实现的功能,就不要用UDF去做。人家Fluent说了,不对UDF的正确性负责,他们只负责UDF与Fluent的通讯功能。能不能用UDF实现某项功能,需要翻越Fluent帮助文档。
  • 编写UDF文件。这部分工作应该是UDF的核心工作。作为一个计算机程序,UDF同样有输入和输出。在翻越UDF手册的时候,搞清楚宏文件中哪些参数是输入,哪些参数是输出。最简单的方式就是直接套用UDF手册中的示例程序,在其基础基础上进行修改。
  • 配置UDF环境。这部分工作实际上相当的简单。只不过在windows环境下需要安装Visual Studio,在Linux环境下需要配置GCC。需要注意在安装Visual Studio的时候一定要选择安装C++,否则不会安装c编译器。
  • 在Fluent中加载UDF。加载的方式可以是解释,也可以是编译。通常解释型的程序调用要比编译型的慢,因此一些计算密集的场合,建议使用编译型。

需要的C语言知识

编写UDF使用的是C语言,我们是不是需要先学习C语言?

了解C语言是必要的,但并不需要非常精通C语言。UDF宏的编写实际上只是应用了C语言很少的一部分,但是对C语言的越熟悉,当然写起UDF来自然要更轻松一些。如果对C语言一无所知的话,至少需要看看以下的内容:

  • C语言的语法结构。包括变量定义方式、条件结构、循环结构、函数定义等。
  • C语言的数据结构。最需要了解是数组和指针。另外还需要了解函数参数传值与传址,否则很多的UDF宏你都搞不清楚数据怎么就能传递给Fluent。

这些基础知识后面会介绍。

要坚信UDF并没有想象中那么难,其实也没有想象中的那么高大上


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

Fluent UDF【1】:简介的更多相关文章

  1. Fluent UDF【4】:C语言

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

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

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

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

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

  4. Fluent UDF【7】:解释型UDF

    UDF宏有两种方式可以被Fluent所接受:编译和解释.其中有一些宏既可以被解释也可以被编译,而一些宏则只能被解释.有一些场合只接受编译后的UDF(如动网格中的一些宏),而有些场合既可以接受编译的UD ...

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

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

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

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

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

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

  8. Serial Fluent UDF on Windows

    test test Table of Contents 1. Serial UDF on Windows OS 1 Serial UDF on Windows OS Note: Udf has to ...

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

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

随机推荐

  1. 转 configure: error: Cannot find ldap libraries in /usr/lib 解决办法

    今天在centos 6.2 64位版本上安装LNMP,config php的时候出现下面错误而退出 configure: error: Cannot find ldap libraries in /u ...

  2. Memcacher win7 安装测试

    1.下载memcache 的windows 稳定版,解压放某个盘下面,比如在H:/wamp/www/php api/memcache: 2.在终端(即cmd 命令界面)下,输入安装命令 :H:/wam ...

  3. 有关python numpy pandas scipy 等 能在YARN集群上 运行PySpark

    有关这个问题,似乎这个在某些时候,用python写好,且spark没有响应的算法支持, 能否能在YARN集群上 运行PySpark方式, 将python分析程序提交上去? Spark Applicat ...

  4. spring依赖注入之手工装配

    2010-09-05  在spring中手工装配依赖对象,可以有两种方式: 1,在spring配置文件中,通过bean节点下配置,比如: <bean id="service" ...

  5. iOS获取真机沙盒文件、获取真机本地数据

    有时我们需要对真机内的数据进行分析,那么如何获取沙盒所有数据文件呢? 1.设备连接到电脑,打开xcode 2.打开window-devices 3.打开后,选择设备名,选择app,导出数据 4.最后拿 ...

  6. Win7 U盘安装Ubuntu16.04 双系统详细教程(方法一)

    主要分为以下几步: 一. 下载Ubuntu 16.04镜像软件: 二. 制作U盘启动盘使用ultraISO: 三. 安装Ubuntu系统: 四. 用EasyBCD 创建启动系统启动引导: (根据个人情 ...

  7. linux串口编程参数配置详解(转)

    1.linux串口编程需要的头文件 #include <stdio.h>         //标准输入输出定义#include <stdlib.h>        //标准函数 ...

  8. ROS学习(十二)—— 编写简单的消息发布器和订阅器(C++)

    一.创建发布器节点 1 节点功能: 不断的在ROS网络中广播消息 2 创建节点 (1)打开工作空间目录 cd ~/catkin_ws/src/beginner_tutorials 创建一个发布器节点( ...

  9. 【struts2】自定义登录检查拦截器

    在实际开发中,一个常见的功能要求是:有很多操作都需要登录后才能操作,如果操作的时候还没有登录,那么通常情况下会要求跳转回到登录页面. 1)如何实现这样的功能呢? 在具体实现之前,先来考虑几个问题: ( ...

  10. windows开机后键盘失灵(非硬件原因)解决办法

    今天来了,开机时突然发现输入密码时,键盘不管用了,试了一下键盘没问题,插口也没问题,能进入安全模式,很奇怪,昨天好好的今天却不能用了,找人倒腾了大半天也没搞出来,后来用PE盘消掉了密码,总算进入了系统 ...