fluent udf中体积分数宏 C_VOF 的取值问题
-
使用vof模型求解两相,希望在最后使用DEFINE_ON_DEMAND来做一个体积分数与温度的简单运算从而得到单相 的温度,udf如下,但一直报Error: received a fatal signal (Segmentation fault). C_VOF的提取问题不知道在哪里,求赐教~
DEFINE_ON_DEMAND(demand) { cell_t c; Thread *t, *Pri_th, *Mix_th; Mix_th = THREAD_SUPER_THREAD(t); Pri_th = THREAD_SUB_THREAD(Mix_th, 0); Domain *d; d = Get_Domain(1); thread_loop_c(Mix_th, d) { begin_c_loop(c, Mix_th) { C_UDMI(c, Mix_th, 0) = C_T(c, Mix_th)*C_VOF(c, Pri_th); } end_c_loop(c, Mix_th) } }```
-
@pajack 吧Domain *d的定义移到上面试下,定义变量好像不能在赋值语句的下方,反正我16版本是有这个问题。
-
@pajack 首先你定义了一个Thread *t,此时它只是一个空指针,然后你就用t去找mixture_thread,它都不知道t在哪,怎么找?thread_loop_c(t,d)只会遍历d下面的t,而相体积率和温度分属不同的domain,建议你用mp_thread_loop_c
-
thread_loop_c 获取subthread层的值似乎有点问题,见https://muchong.com/html/201211/5150612_2.html,最好是用mp_thread_loop_c,配合**pt和C_VOF(c, pt[0])来进行取值。
2021年6月21日 13:59
3/5
2024年11月1日 07:38