@Ding 你需要一句一句的看。
具体方法是:从上至下把无关的先注释掉,一句一句往里加,每一次都用fluent进行编译、初始化、模拟,看是加入那一句之后才出现的问题,这样才能看出是哪里出现了问题。
你这样单独看是很难发现问题的
中国石油大学研究生
帖子
-
我用fluent模拟含不凝气体水蒸气凝结的例子,自编udf,运行时存在问题,希望大神们帮忙看一下 -
我用fluent模拟含不凝气体水蒸气凝结的例子,自编udf,运行时存在问题,希望大神们帮忙看一下@Ding 这个需要用begin_c_loop宏进行实现,即在外层套上这个宏即可
-
我用fluent模拟含不凝气体水蒸气凝结的例子,自编udf,运行时存在问题,希望大神们帮忙看一下@Ding 这个还是得你自己编写,我可以帮你看看问题,我的成品不能直接给你
-
我用fluent模拟含不凝气体水蒸气凝结的例子,自编udf,运行时存在问题,希望大神们帮忙看一下@Ding 我现在也在忙着自己毕业的事情,有点自顾不暇,没有太多空闲的时间对别人进行帮助。
如果你有问题直接在这里问就可以,有大神会帮你解答,我空闲时间也会进来看一眼,如果我知道我会直接回答的。
见谅 -
我用fluent模拟含不凝气体水蒸气凝结的例子,自编udf,运行时存在问题,希望大神们帮忙看一下@Ding 我做的是三维工况,二维工况也是同理。你这样想一下,冷凝液是会变厚的,原理上来说应该涉及到相平衡,气液界面就是一个气液分子热运动平衡界面,当符合相应条件,是会发生相应的冷凝或是蒸发工况的
-
fluent UDF判断三维模型的网格是否为壁面网格@bestucan 大佬,我按照我的udf进行了模拟,结果是符合常识的,应该这种判别方法是可以的,下一步我再用论文验证一下
-
fluent UDF判断三维模型的网格是否为壁面网格@bestucan 谢谢大佬提供新思路,像我程序中写的这样THREAD_ID(tf) == WALL_NUMBER1,进行判断网格所在thread的id和壁面的id一样来确定是否为贴近壁面网格是否可行?
-
我用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其中的一段,首先判断网格是不是壁面网格,然后判断网格内是否充满液体,如果是壁面网格且未充满液体,则通过压力来判断网格内水蒸气是否发生冷凝。
想请教各位大神,该段程序是否存在什么明显的问题?模拟的是三维网格,程序中判断网格是否为壁面网格的语句是对的吗? -
我用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大致相同
(这个是源项的公式)
求大神们帮忙看一下问题出在大概那个位置
拜谢!!! -
UDF编程求助,NV_DS是什么函数
这个是fluent自带的udf帮助文件里面的一个例子,也用到了NV_DS,可以对于比一下 -
求fluent自定义流体(天然气伴生气)参数的udf如标题,感谢大佬们
-
fluent降温凝析出水想问一下大佬们,做天然气在管道内降温凝析出水,能直接用fluent自带的相变模型来做吗,还是用udf结果精度更好,
有推荐的udf程序吗?