请教关于FLUENT中UDF的问题

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了请教关于FLUENT中UDF的问题相关的知识,希望对你有一定的参考价值。

从udf中获得各网格质心坐标的函数:F_CENTROID(x,f,thread)。它是将坐标赋值给了矢量x。而x定义的时候是real x[ND_ND] 是质心坐标所在的数组。我不太明白这个数组是一个什么样的数组。它是直接可以将所有网格的坐标都存在其中,还是会随着循环的每一次进行而它其中的值不断发生变化?

PS:有一个小例子的程序:
#include"udf.h"
DEFINE_PROFILE(velocity_inlet,thread,position)

real x[ND_ND];
real y;
face_t f;
begin_f_loop(f,thread)

F_CENTROID(x,f,thread);
y=x[1];
F_PROFILE(f,thread,position)=0.5-y*y/(0.02*0.02)*0.5;

end_f_loop(f,thread)

查手册可知,ND是一个宏系列,包括了ND_ND,ND_SUM,ND_SET
ND_ND的定义:
对于2D,即RP_2D(也是一个宏名称),值为2;
对于3D,即RP_3D(也是一个宏名称),值为3;
用这个宏可以让你的UDF程序更有通用性,2D,3D模型不用修改,可通用
举例
real A[ND_ND][ND_ND] 对于2D,实际值为real A[2][2] ,2*2的矩阵
real A[ND_ND][ND_ND] 对于3D,实际值为real A[3][3] ,3*3的矩阵
real x[ND_ND] 对于2D,实际值为real x[2] ,2个值的数组
real x[ND_ND] 对于3D,实际值为real x[3] ,3个值的数组
参考技术A 这就是 C 语言中一个普通的函数

ND_ND 就是一个宏,在 3d 时为 3,2d 时为 2

执行 F_CENTROID(x,f,thread); 时,取得坐标,存在 x 中

由于每次循环都要取坐标,所以 x 值每次都要更新,是不断变化的本回答被提问者采纳
参考技术B udf用在旋转速度定义面板中就是了吧

问一个ANSYS Fluent的UDF编译问题

使用Ansys Fluent13.0编译UDF,Win7 32位旗舰版,build时出现以下错误:Error:sopenoutputfile:unable to open file for outputError object:"libudf\ntx86\2d\user_nt.udf"

强行load出现以下错误:
Error:The udf library you are trying to load(D:\study\Fluent\udf_vel\libudf)is not compiled for 2d on the current platform(ntx86).

系统找不到指定的路径。d:\study\Fluent\udf_vel\D:\study\Fluent\udf_vel\libudf\ntx86\2d\libudf.dll
Error object:#f

环境变量都设好了,如下:
INCLUDE:C:\Program Files\Microsoft Visual Studio 10.0\VC\include;
LIB:C:\Program Files\Microsoft Visual Studio 10.0\VC\lib;C:\Program Files\Microsoft SDKs\Windows\v7.0A\lib;
Path:C:\Program Files\Microsoft Visual Studio 10.0\VC\bin;C:\Program Files\Microsoft Visual Studio 10.0\Common7\IDE;
请问该怎么解决?

参考技术A 朋友,问题解决了吗?我遇到了相同的问题。 参考技术B 可以换一种编译方式

以上是关于请教关于FLUENT中UDF的问题的主要内容,如果未能解决你的问题,请参考以下文章

fluent中的UDF能用vs2010编译吗?

请教各位,FLuent UDF 让出口温度值等于入口温度平均值,下面这个UDF有啥错误呢?

Fluent 17 重叠网格udf加载

fluent中怎样用udf将物体的质量和下落速度都编进程序中

fluent udf读取udm的值

请问fluent的udf中如何定义密度?与压力有关