找回密码
 注册
Simdroid-非首页
查看: 203|回复: 10

[FLUENT/GAMBIT] 网格面方向问题

[复制链接]
发表于 2013-3-18 10:50:28 | 显示全部楼层 |阅读模式 来自 江苏无锡
悬赏100仿真币已解决
本帖最后由 mycc 于 2013-3-18 13:37 编辑

做了一个简单的测试:
网格如下


对每个网格进行面循环,计算每个面的面积矢量。照理在同一个cell中,相对的面的矢量应该相反,但是实际测试出来有问题。

某些网格跟设想相同,但是有一些面则相反。


测试的UDF,网格,case和输出文件如下:



了解的网友请看一下如何解决?是不是我的网格或UDF的问题。重新上传一个格式


附件: 您需要 登录 才可以下载或查看,没有账号?注册

最佳答案

查看完整内容

刚才看了一下帮助,关于内部面法相的定义。并不是和楼主理解的一样,楼主认为面的法相是由单元定义的,根据指向单元内部或者外部确定法相。帮助中的说明是:边界上的面,指向外部为正向。单元内部的面,法相不是由单元确定的,是由节点顺序确定的,三维的非常好理解,右手定则确定面的法相。二维情况下,手心向上,手指方向由低节点编号指向高节点编号。这样,一旦节点确定,所有单元面的法相就已经确定,和所在的单元没有关系。 ...
发表于 2013-3-18 10:50:29 | 显示全部楼层 来自 中国
Simdroid开发平台
刚才看了一下帮助,关于内部面法相的定义。并不是和楼主理解的一样,楼主认为面的法相是由单元定义的,根据指向单元内部或者外部确定法相。帮助中的说明是:边界上的面,指向外部为正向。单元内部的面,法相不是由单元确定的,是由节点顺序确定的,三维的非常好理解,右手定则确定面的法相。二维情况下,手心向上,手指方向由低节点编号指向高节点编号。这样,一旦节点确定,所有单元面的法相就已经确定,和所在的单元没有关系。


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
回复

使用道具 举报

发表于 2013-3-18 13:31:49 | 显示全部楼层 来自 中国
help里面没有东西呢
回复

使用道具 举报

 楼主| 发表于 2013-3-18 15:24:11 | 显示全部楼层 来自 江苏无锡
coolwolf0100 发表于 2013-3-18 13:31
help里面没有东西呢

已重新上传格式
回复

使用道具 举报

 楼主| 发表于 2013-3-18 22:42:12 | 显示全部楼层 来自 北京
coolwolf0100 发表于 2013-3-18 10:50
刚才看了一下帮助,关于内部面法相的定义。并不是和楼主理解的一样,楼主认为面的法相是由单元定义的,根据 ...

谢谢回复。如果是这样的话,我要求一个cell的通量,如下图所示。如果相对面矢量相反的话,可以使用对cell各个面进行累加  速度与面积的矢量乘积值   来得到,如果相对的面,矢量方向相同的话,不知道如何使用计算?

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
回复

使用道具 举报

发表于 2013-3-21 08:39:19 | 显示全部楼层 来自 中国
mycc 发表于 2013-3-18 22:42
谢谢回复。如果是这样的话,我要求一个cell的通量,如下图所示。如果相对面矢量相反的话,可以使用对cell ...

对于求通量这个问题,我想到的解决思路是这样的:先把单元面上的速度求解出来,F_U(f,t),F_V(f,t),F_W(f,t)共有三个分量;然后在求单元表面的面积矢量,F_AREA(A,f,t),得到的也是一个具有三个分量的矢量。两个矢量相乘,得到的结果可以取绝对值。至于符号的确定,可以由face的中心和cell的中心确定,例如:单元中心坐标的三个分量减去面中心的三个分量,得到一个方向矢量,把这个方向矢量和face上的速度矢量相乘,如果符号为正,则说明流体流入cell,如果为负,说明流体流出cell。这样的话就可以把face上的通量值及其大小确定出来了。

评分

1

查看全部评分

回复

使用道具 举报

 楼主| 发表于 2013-3-21 09:09:16 | 显示全部楼层 来自 江苏无锡
coolwolf0100 发表于 2013-3-21 08:39
对于求通量这个问题,我想到的解决思路是这样的:先把单元面上的速度求解出来,F_U(f,t),F_V(f,t),F_W( ...

我就是不明白,Fluent为什么会搞得这么麻烦。
下面是fluent帮助中UDS flux的UDF,它倒不存在通量的方向问题,你看看,能否解释:

/**********************************************************************/
/*    UDF that implements a simplified advective term in the          */
/*    scalar transport equation                                       */
/**********************************************************************/

#include "udf.h"

DEFINE_UDS_FLUX(my_uds_flux,f,t,i)
{
  cell_t  c0,  c1 = -1;
  Thread *t0, *t1 = NULL;

  real NV_VEC(psi_vec), NV_VEC(A), flux = 0.0;

  c0 = F_C0(f,t);
  t0 = F_C0_THREAD(f,t);
  F_AREA(A, f, t);

  /* If face lies at domain boundary, use face values; */
  /* If face lies IN the domain, use average of adjacent cells. */

if (BOUNDARY_FACE_THREAD_P(t)) /*Most face values will be available*/
    {
      real dens;

      /* Depending on its BC, density may not be set on face thread*/
      if (NNULLP(THREAD_STORAGE(t,SV_DENSITY)))
        dens = F_R(f,t);   /* Set dens to face value if available */
      else
        dens = C_R(c0,t0); /* else, set dens to cell value */

      NV_DS(psi_vec,  =, F_U(f,t), F_V(f,t), F_W(f,t), *, dens);

      flux = NV_DOT(psi_vec, A); /* flux through Face */
    }
  else
    {
      c1 = F_C1(f,t);       /* Get cell on other side of face */
      t1 = F_C1_THREAD(f,t);

      NV_DS(psi_vec,  =, C_U(c0,t0),C_V(c0,t0),C_W(c0,t0),*,C_R(c0,t0));
      NV_DS(psi_vec, +=, C_U(c1,t1),C_V(c1,t1),C_W(c1,t1),*,C_R(c1,t1));

      flux = NV_DOT(psi_vec, A)/2.0; /* Average flux through face */
    }

  /* ANSYS FLUENT will multiply the returned value by phi_f (the scalar's
     value at the face) to get the "complete'' advective term.  */

  return flux;
}
回复

使用道具 举报

发表于 2013-3-22 13:08:07 | 显示全部楼层 来自 中国
mycc 发表于 2013-3-21 09:09
我就是不明白,Fluent为什么会搞得这么麻烦。
下面是fluent帮助中UDS flux的UDF,它倒不存在通量的方向问 ...

我看好之后回复你,这几天都在出差。时间有点紧张。
回复

使用道具 举报

 楼主| 发表于 2013-3-22 16:21:33 | 显示全部楼层 来自 江苏无锡
coolwolf0100 发表于 2013-3-22 13:08
我看好之后回复你,这几天都在出差。时间有点紧张。

没关系,不是很着急的。

这个UDF的主要路径是:

面如果是在边界上,则取面上的速度矢量,然后乘以面矢量,算出通过该面的通量;
如果是两个cell之间的面,则取两个cell中心速度平均得到面上的速度矢量,然后乘以面矢量,算出通过该面的通量。

看来这里的面只有一个方向。
回复

使用道具 举报

发表于 2013-3-25 10:08:22 | 显示全部楼层 来自 中国
他的这个udf返回的值就是所有face上面的通量值(速度*面积*密度),这个跟单元的通量就是两个概念了。每个面上的通量都是固定的值,与这个面属于哪个单元没有关系。而求单元的通量就不一样了。不知道楼主要研究什么东西,单元的通量应该全部为0的,否则也是一个很小的数,不然的话就与守恒定律冲突了。楼主求单元通量有什么目的吗?
回复

使用道具 举报

 楼主| 发表于 2013-3-25 12:24:34 | 显示全部楼层 来自 江苏无锡

通量*标量

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|小黑屋|联系我们|仿真互动网 ( 京ICP备15048925号-7 )

GMT+8, 2024-3-28 17:07 , Processed in 0.048080 second(s), 14 queries , Gzip On, MemCache On.

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表