Skip to content
  • 最新
  • 版块
  • 东岳流体
  • 随机看[请狂点我]
皮肤
  • Light
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • 默认(不使用皮肤)
  • 不使用皮肤
折叠
CFD中文网

CFD中文网

  1. CFD中文网
  2. Fluent
  3. fluent UDF判断三维模型的网格是否为壁面网格

fluent UDF判断三维模型的网格是否为壁面网格

已定时 已固定 已锁定 已移动 Fluent
8 帖子 4 发布者 6.0k 浏览
  • 从旧到新
  • 从新到旧
  • 最多赞同
回复
  • 在新帖中回复
登录后回复
此主题已被删除。只有拥有主题管理权限的用户可以查看。
  • 中 离线
    中 离线
    中国石油大学研究生
    写于 最后由 编辑
    #1

    #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_pressure
    vapor_molecular /(wall_pressurevapor_molecular + (standard_pressure - wall_pressure)air_molecular);
    diffusivity=standard_diffusivity
    standard_pressure/p
    pow(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_coeff
    area_density;
    dS[eqn] = -C_YI(cell, first, index_evap_primary)*C_R(cell, first)diffusivity /distancearea_density;
    }
    }
    }
    }
    这段程序是水蒸气凝结的udf其中的一段,首先判断网格是不是壁面网格,然后判断网格内是否充满液体,如果是壁面网格且未充满液体,则通过压力来判断网格内水蒸气是否发生冷凝。
    想请教各位大神,该段程序是否存在什么明显的问题?模拟的是三维网格,程序中判断网格是否为壁面网格的语句是对的吗?

    1 条回复 最后回复
  • bestucanB 离线
    bestucanB 离线
    bestucan 版主 大神
    写于 最后由 编辑
    #2

    判断壁面网格这里,可以用一个uds。设定壁面上该uds为1,其他区域为0。uds的流率、扩散、源什么的设为0。这样判断uds是不是1就知道是不是壁面了。

    滚来滚去……~(~o ̄▽ ̄)~o 滚来滚去都不能让大家看出来我不是老师么 O_o

    异步沟通方式(《posting style》from wiki)(下载后打开):
    https://www.jianguoyun.com/p/Dc52X2sQsLv2BRiqnKYD
    提问的智慧(github在gitee的镜像):
    https://gitee.com/bestucan/How-To-Ask-Questions-The-Smart-Way

    中 姜 2 条回复 最后回复
  • 中 离线
    中 离线
    中国石油大学研究生
    在 中回复了 bestucan 最后由 编辑
    #3

    @bestucan 谢谢大佬提供新思路,像我程序中写的这样THREAD_ID(tf) == WALL_NUMBER1,进行判断网格所在thread的id和壁面的id一样来确定是否为贴近壁面网格是否可行?

    bestucanB 1 条回复 最后回复
  • bestucanB 离线
    bestucanB 离线
    bestucan 版主 大神
    在 中回复了 中国石油大学研究生 最后由 编辑
    #4

    @中国石油大学研究生 那啥,这个还真不懂:zoule:

    滚来滚去……~(~o ̄▽ ̄)~o 滚来滚去都不能让大家看出来我不是老师么 O_o

    异步沟通方式(《posting style》from wiki)(下载后打开):
    https://www.jianguoyun.com/p/Dc52X2sQsLv2BRiqnKYD
    提问的智慧(github在gitee的镜像):
    https://gitee.com/bestucan/How-To-Ask-Questions-The-Smart-Way

    中 1 条回复 最后回复
  • 中 离线
    中 离线
    中国石油大学研究生
    在 中回复了 bestucan 最后由 编辑
    #5

    @bestucan 大佬,我按照我的udf进行了模拟,结果是符合常识的,应该这种判别方法是可以的,下一步我再用论文验证一下:xiexie:

    1 条回复 最后回复
  • 姜 离线
    姜 离线
    姜磊
    在 中回复了 bestucan 最后由 编辑
    #6

    @bestucan 老师,您好,我尝试了您的思路,我想您的意思是用 if 语句判断 uds的 id 是否为0/1,问题是我查了帮助手册,还是不知道怎么写这个判断语句,想问一下具体应该用哪个宏来表示 uds 的 index 为0/1或者是用宏表示 uds 的默认名字User Scalar 0 and User Scalar 1,麻烦老师了

    bestucanB 1 条回复 最后回复
  • bestucanB 离线
    bestucanB 离线
    bestucan 版主 大神
    在 中回复了 姜磊 最后由 编辑
    #7

    @姜磊 不是判断ID。是新造一个标量场。这个标量场的名字叫 UDS1 2 3 4 5 都可以。或者叫“新标量场”。然后,这个标量场在每个网格都有一个值。

    设定这个标量常不扩散,只是保持初始值。
    然后从计算初始化那个地方,把“新标量场”的壁面设定为特定值(1 2 3 6.87 都行)流域内设定为0。通过在计算循环中判断该网格的标量常数值是否为设定的特定值来判断该网格是不是壁面。

    但是楼主并没有使用我说的这个方法,他用的是他自己的方法,而且已经试验成功了。可以看看他的描述和源代码。

    滚来滚去……~(~o ̄▽ ̄)~o 滚来滚去都不能让大家看出来我不是老师么 O_o

    异步沟通方式(《posting style》from wiki)(下载后打开):
    https://www.jianguoyun.com/p/Dc52X2sQsLv2BRiqnKYD
    提问的智慧(github在gitee的镜像):
    https://gitee.com/bestucan/How-To-Ask-Questions-The-Smart-Way

    1 条回复 最后回复
  • F 离线
    F 离线
    firejet
    写于 最后由 编辑
    #8

    应该还可以用这个办法来判断
    if(THREAD_TYPE(t) == THRAD_F_WALL)

    航天系统研究生

    1 条回复 最后回复

  • 登录

  • 登录或注册以进行搜索。
  • 第一个帖子
    最后一个帖子
0
  • 最新
  • 版块
  • 东岳流体
  • 随机看[请狂点我]