请问Fluent模拟时在velocity inlet可以使用UDF在入口的不同单元上直接加速度吗?
-
大家好,请问fluent模拟,用UDF是只可以定义函数类型的入口吗?可以读取文本文件将速度直接定义到入口的指定单元上吗?用profile files这个可以实现读取文本文件然后将速度定义到指定单元上,但是最近新建一个模型总是报错,所以想问下,用UDF能否实现类型功能?谢谢
-
仔细阅读udf说明手册,你的问题有样例。。一个二维管道生成抛物线型速度分布
-
@xiaole_chennj 你好,感谢你的回复。我看了你提到的二维管道生成抛物线型速度分布样例,下面是从UDF说明手册摘录的UDF文件内容,是否是你提到的样例代码?
但是这个例子是已知入口处的速度廓线,然后以函数的形式通过UDF加到计算模型。如果用UDF以函数的形式加到速度入口,这个没有问题。
我的遇到问题是,入口界面上的初始速度是一些散点,需要以散点的形式在不同的入口界面网格点上施加不同的速度,这些散点无法拟合成函数,所以按照以下的样例,没法表示成函数形式,就没法施加速度入口。所以,是否有可以读取文本文件,从而根据文本文件的坐标和速度值(x,y,z,velocity)通过UDF的方式加到速度入口上。
谢谢
/*********************************************************************** vprofile.c UDF for specifying steady-state velocity profile boundary condition ************************************************************************/ #include "udf.h" DEFINE_PROFILE(inlet_x_velocity, thread, position) { 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 = 2.*(x[1]-0.5*h)/h; /* non-dimensional y coordinate */ F_PROFILE(f, thread, position) = 0.1*(1.0-y*y); } end_f_loop(f, thread) }
-
loop的是面网格上的所有网格。你的需求应该能实现,最简单的办法是,每个面网格中心去读一遍文档,把散点距离自己最近的那个点的速度赋给所在网格。但是会有其他问题,散点疏密是不是和面网格疏密比较匹配,也许一个面网格配多个散点或者反之。