@bestucan 大佬,我按照我的udf进行了模拟,结果是符合常识的,应该这种判别方法是可以的,下一步我再用论文验证一下
Posts made by 中国石油大学研究生
-
RE: fluent UDF判断三维模型的网格是否为壁面网格
-
RE: fluent UDF判断三维模型的网格是否为壁面网格
@bestucan 谢谢大佬提供新思路,像我程序中写的这样THREAD_ID(tf) == WALL_NUMBER1,进行判断网格所在thread的id和壁面的id一样来确定是否为贴近壁面网格是否可行?
-
RE: 我用fluent模拟含不凝气体水蒸气凝结的例子,自编udf,运行时存在问题,希望大神们帮忙看一下
问题已经解决了,是因为上面的程序没有对网格进行循环,只是对一个网格的所有面进行了循环,所以才存在问题
-
fluent UDF判断三维模型的网格是否为壁面网格
#define WALL_NUMBER1 4 /修改壁面的 ID,由壁面条件面板中读取/
c_face_loop(cell, mixer, n)
{
fa = C_FACE(cell, mixer, n); //获取面指针
tf = C_FACE_THREAD(cell, mixer, n); //获取该面所在thread的指针
if (THREAD_ID(tf) == WALL_NUMBER1) //判断是否为贴近壁面的网格????三维网格应该怎么判断是否贴近壁面
{
if (C_VOF(cell, sec_th) == 1.) //如果充满液体,则蒸汽向液体质量传输为0
mass_dot = 0.0; //质量源项为0
else //不充满液体,则蒸汽进行凝结
{
C_CENTROID(cell_center, cell, mixer);
F_CENTROID(face_center, fa, tf);
NV_VV(a, = , cell_center, -, face_center);
distance = NV_MAG(a);
p_op = RP_Get_Real("operating-pressure";
p = p_op + C_P(cell, first);
cell_vapor_pressure = C_YI(cell, first, index_evap_primary) / vapor_molecular /(C_YI(cell, first, index_evap_primary) / vapor_molecular + (1 - C_YI(cell, first, index_evap_primary)) / air_molecular)p;
wall_temper = F_T(fa, tf);
wall_pressure = psat_vapor(wall_temper);
wall_mass_fraction = wall_pressurevapor_molecular /(wall_pressurevapor_molecular + (standard_pressure - wall_pressure)air_molecular);
diffusivity=standard_diffusivitystandard_pressure/ppow(standard_temper/C_T(c,t),1.81);
if (cell_vapor_pressure / p >= wall_pressure / standard_pressure)/发生冷凝/
{
area_density = 1 / (2 * distance);
mass_transfer_coeff = C_YI(cell, first, index_evap_primary)C_R(cell,first)diffusivity / distance(C_YI(cell, first,index_evap_primary) - wall_mass_fraction) / (1 -wall_mass_fraction);
mass_dot = -mass_transfer_coeffarea_density;
dS[eqn] = -C_YI(cell, first, index_evap_primary)*C_R(cell, first)diffusivity /distancearea_density;
}
}
}
}
这段程序是水蒸气凝结的udf其中的一段,首先判断网格是不是壁面网格,然后判断网格内是否充满液体,如果是壁面网格且未充满液体,则通过压力来判断网格内水蒸气是否发生冷凝。
想请教各位大神,该段程序是否存在什么明显的问题?模拟的是三维网格,程序中判断网格是否为壁面网格的语句是对的吗? -
RE: 我用fluent模拟含不凝气体水蒸气凝结的例子,自编udf,运行时存在问题,希望大神们帮忙看一下
@zousiyu 感谢大神的建议,上午的时候我将源项直接设定为一个很小的常数,fluent还是运行不了,还是udf本身存在问题我准备一块一块的试错,看看到底是那个地方出现了问题
-
我用fluent模拟含不凝气体水蒸气凝结的例子,自编udf,运行时存在问题,希望大神们帮忙看一下
案例中有air、水蒸气和液体水,自己编写了定义物性的udf和水蒸气、液体水的源项以及能量源项所有的udf都可正常编译和加载。
单独加载物性udf时,模拟正常运行。
当加载水蒸气源项时,一运行就会提示error:received a fatal sognal (segmentation fault)
当加载液体水源项时,一运行就会提示error:divergence detected in amg solve : x-momentum
(该案例所打开的模型,vof模型和组分输运模型,组分输运模型定义气体mixture包含air和水蒸气,vof模型:第一相是气体mixture,第二相是液体水)
(所加载的液体源项)
(加载气体源项时,运行出现的错误)
(加载液体源项时,运行出现的错误)
下面是我所修改的蒸汽源项的udf
液体的源项udf跟气相udf大致相同
(这个是源项的公式)
求大神们帮忙看一下问题出在大概那个位置
拜谢!!!