@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程序吗?
