UDF宏学习日志:每日一则

DEFINE_PROFILE(name, thread, i) { ;}

输出参数:

   name-创建函数的名称(首字符不能是数字)。

输入参数:thread-指针数组;

   i-整数型(一个标识要定义的变量的 ID;当将UDF与边界条件对话框中的变量hook时,将设置i)。

   使用DEFINE_PROFILE定义自定义边界轮廓或单元格区域条件,该条件随空间坐标或时间而变化。

   请注意,DEFINE_PROFILE仅允许修改 wall heat flux 的单个值。如果要将 wall heat flux 的源项线性化,并分别考虑热传导热辐射,则需要使用DEFINE_heat_flux来指定UDF。

F_PROFILE(f, thread, i) = f(x,y,z,t)

输出参数:无。

输入参数:thread-指针数组;

   f- face_t 整数型;

i-整数型(这里专门指向网格面上某个给定的变量)。

为给定的网格面设置边界条件值,与DEFINE_PROFILE(name, thread, i) 配套使用。

当将UDF hook到特定边界时,thread 将被自动定义;


#include "udf.h"

 DEFINE_PROFILE(inlet_u, thread, i)
 {
    real x[ND_ND]; 	/* this will hold the position vector */
    real y, h;
    face_t f;
    h = 0.016; 		/* inlet height in m */
    begin_f_loop(f,thread)
    {
      F_CENTROID(x, f, thread);
      y = x[1];
      y = (y-0.5*h)/(0.5*h); /* non-dimensional y coordinate */
      F_PROFILE(f, thread, i) = 0.1*(1.0-y*y);
    }
    end_f_loop(f, thread)

 }

begin_f_loop(f, facethread)

{ ;}

f- face_t/整数型,facethread-指针组;

f 的作用类似于for循环中的递增变量 i,这样可以依次对每个网格面进行操作。


F_CENTROID(C, f, facethread)

返回值: real C[ND_ND] (实数)

输入:face_t f(整数型);

Thread *facethread (指针数组);

返回值 C (包含不同维度坐标值的数组);ND_ND 应该是一个内部定义好的常量(二维时=2,三维时=3)

注释加的地方要注意!!!:

比如下面这个注释1,这样也会生成一个UDF库函数,但编译会出错,不仔细发现不了;


#include "udf.h"
 /*注释0:------*/
 DEFINE_PROFILE(u_profile, t, i)		//注释1:定义边界条件函数inlet_u
 {
	begin_f_loop(f,t)
	{
		F_CENTROID(x, f, t);
		F_PROFILE(f, t, i) = 0.1*x[1];	//注释2:---
	}
    end_f_loop(f, t)
 }
/*
  发现在前面没有分号的情况下,使用注释1的形式会出问题;前面有分号时则没问题,如注释2;
  但最好还是使用注释0的形式,试了,不会出问题……
*/

然后去加载的时候就报错:


   显示加载失败
 


我开开心心去网上搜  “The UDF library you are trying to load (libudf01) is not compiled for parallel use on the current platform (win64).”

确实一下就出了很多教程,大概就是原因很多,反正Visual Studio 未安装或版本太旧是一个。检查了一下自己电脑,点击Windows图标去搜索安装程序,没找到,我就以为确实是这个原因,得装一个。(其实可以在 设置→应用与功能 里找到,发现已经安装了)

结果想安装个2019版是真难!


   会提示:无法下载安装文件。请检查Internet后重试
 


   无法安装下载文件。请检查Internet连接
 


现在微软搞的是在线下载安装,然后我这电脑就是过不了验证关。(然后又是一波上网搜怎么解决,各种改NDS地址、往驱动里的hosts文件添加IP和域名)。还学到了一招,在安装日志里找问题:CSDN博主「RadiantJeral」的文章,链接:https://blog.csdn.net/RadiantJeral/article/details/115002474

好吧,那我就去装个旧版网上直接下了个2013安装包(解压密码用yiliu),离线安装成了。

结局就是,跟Visual Studio没关系(虽然和ta死磕了半天),还是要注意检查 Fluent控制台,好好检查代码。


   编译错误报告(最后一句其实说明了编译中断)
 



免责声明:本文系网络转载或改编,未找到原创作者,版权归原作者所有。如涉及版权,请联系删

QR Code
微信扫一扫,欢迎咨询~

联系我们
武汉格发信息技术有限公司
湖北省武汉市经开区科技园西路6号103孵化器
电话:155-2731-8020 座机:027-59821821
邮件:tanzw@gofarlic.com
Copyright © 2023 Gofarsoft Co.,Ltd. 保留所有权利
遇到许可问题?该如何解决!?
评估许可证实际采购量? 
不清楚软件许可证使用数据? 
收到软件厂商律师函!?  
想要少购买点许可证,节省费用? 
收到软件厂商侵权通告!?  
有正版license,但许可证不够用,需要新购? 
联系方式 155-2731-8020
预留信息,一起解决您的问题
* 姓名:
* 手机:

* 公司名称:

姓名不为空

手机不正确

公司不为空