UDF求计算域中某网格到壁面的最近距离(C_WALL_DIST宏)



  • 大家好我有一个小问题想请教各位大神。

    问题简单描述:

    我想求计算域中每个网格的中心到最近壁面的距离。

    问题详细描述:

    我使用的是C_WALL_DIST宏,但是发现在初始化的时候会报错。在二维的算例中能编译通过并进行计算,但是在三维的算例中可以编译通过但初始化错误(试过几台电脑,也试过串行并行)。
    错误提示为:f1 process could not be started fluent.

    我的问题

    请问要求计算域中每个网格的中心到最近壁面的距离,有什么办法可以实现?这个C_WALL_DIST宏在帮助手册里没有说明,不知道可否满足我的需求。另外,我网上查找的时候,有人说(链接地址)可以先定义一个标量,把距离存在标量中,再拿到udf中计算用,他的代码完全看不懂啊(心累),请问这样可以吗?
    谢谢大家:xinxin2:
    我的UDF代码如下:

    /*用于修改湍流模型中的湍流粘度*/
    #include "udf.h"
    DEFINE_TURBULENT_VISCOSITY(chen_mu_t,cell,thread)
    {
    
        real chen_mu_t;
        real rho = C_R(cell,thread);
        real u,v,w;
    	u=C_U(cell,thread);
    	v=C_V(cell,thread);
    	w=C_W(cell,thread);
        real local_velocity = sqrt(pow(u,2.0)+pow(v,2.0)+pow(w,2.0));
        real distance =C_WALL_DIST(cell,thread);
        chen_mu_t = 0.03874*rho*local_velocity*distance;
    
        return chen_mu_t;
    
    }
    


  • 不太清楚Fluent那面,不过求网格的壁面距离从算法上比较麻烦,如果是规则网格还好,如果不规则网格,你想象一下,还是挺难弄的。一些边边角角很难确定到那一块是最近的距离。

    :tishizi:



  • 谢谢李老师的回复。
    我想求的不是网格中心到网格边上的距离,是网格中心到最近的壁面边界的距离(比如说在一个房间内,房间内部的某个网格到最近墙壁的距离)。
    谢谢李老师的提醒,我突然想到一个办法,就是对每个网格中心点的x,y,z坐标进行大小判断,找出最小的那个,感觉可以,我先试试。
    :xiabanle:


  • Fluent教授

    @深蓝 你的链接发的并没有写关键代码 这只是部分的 这部分只是排错 计算距离代码并没列出 实际上这部分的实现如果你对UDF有一定的了解并不是很困难 关键是执行效率的问题 如果不是每步执行的 是一步执行的话 是比较简单的 你的方法就可以满足 如果是每步执行的 先排除哪个也就是哪个if写在头 是执行效率的关键 你需要把最大概率不满足的条件写在判断的最开始 其他的都是解析几何的问题 可以找node 也可以找F_centroid



  • 你的问题解决了吗?你是用什么方法求得壁面距离?


Log in to reply
 

CFD中文网 2016 - 2020 | 京ICP备15017992号-2