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控制台,好好检查代码。
编译错误报告(最后一句其实说明了编译中断)
免责声明:本文系网络转载或改编,未找到原创作者,版权归原作者所有。如涉及版权,请联系删