@D-Benjamin
谢谢你的回复!
一开始我表述的问题,我是想取网格节点上的值,不是网格中心的值。
这个表是东岳前辈翻译的openfoam3.01版本的用户指南。

benqing 发布的最佳帖子
-
RE: openfoam后处理按照网格信息提取数据
benqing 发布的最新帖子
-
RE: LES中关于Resolved TKE和Modelled TKE求解比例的问题
@ct 后来我直接用的k作为模化的湍动能,用UPrime2Mean的结果计算瞬时的resloved湍动能
-
RE: PK! OpenFOAM VS Fluent计算效率
@benqing 解决了,只算一个就可以,算流量比较方便
Q=A×V,A=(Ly-h)×Lz=(3h-h)×4.5h=9h×h,V=1,Q=9×0.028×0.028×1=0.007056,所以我的结果跟@心里的小漩涡 的结果不太一样,后续看看计算结果 -
RE: PK! OpenFOAM VS Fluent计算效率
@心里的小漩涡 小伙伴还在论坛吗?最近有兴趣用fluent跑跑这个case,但是这里面对周期性边界上mass flow rate和pressure Gradient设定不是很理解,这个数值是如何算出来的?
-
RE: 雷诺应力与URANS
@李东岳 在 雷诺应力与URANS 中说:
我一直在找相关的sci,你这面有文章见过类似的操作么
URANS的话,没有见到过,这也只是我自己的想法。我用过PANS模型,有一些文献是将两者相加的,其实也没有理论的介绍,就是后处理的方法。
我找找看有没有URANS相关的文献! -
RE: 雷诺应力与URANS
@李东岳 两者相加吧,我认为若URANS可以较好的解析流场的话,uPrime2Mean会占更大比重,但是不能忽略R。理论方面的话,可以参考PANS模型。
-
RE: UDF求计算域中某网格到壁面的最近距离(C_WALL_DIST宏)
这个问题我解决了,宏C_WALL_DIST在高版本里面确实不能用了,从CFDonline上找到了一个可以用的代码,代码如下:
#include "udf.h" #include "prox.h" static cxboolean wall_dist_set = FALSE;//cxboolean布尔运算,与或非,对错 DEFINE_ON_DEMAND(set_wall_dist_udm0) { #if !RP_HOST//表示非host节点的话,执行后面的代码,fluent并行的话,会启动一个 host节点和指定个数的node节点,host节点主要处理GUI和结果收集之类的任务node节点负责分区计算任务 Domain *domain; Thread *t; cell_t c; if (! wall_dist_set) { domain = Get_Domain(1);//ROOT_DOMAIN_ID? Alloc_Storage_Vars(domain, SV_RTMP_0, SV_NULL);//Alloc_Storage_Vars 用于更改分配 Calc_Cell_Wall_Distance_New(domain, SV_RTMP_0); thread_loop_c(t,domain) { begin_c_loop(c,t) { C_UDMI(c,t,0) = C_TMP0(c,t); } end_c_loop(c,t) } wall_dist_set = TRUE; } #endif /* !RP_HOST */ } DEFINE_ON_DEMAND(reset_udm0) { #if !RP_HOST Domain *domain; Thread *t; cell_t c; domain = Get_Domain(1); thread_loop_c(t,domain) { begin_c_loop(c,t) { C_UDMI(c,t,0) = 0.0; } end_c_loop(c,t) } #endif /* !RP_HOST */ wall_dist_set = FALSE; }
说实话这个代码我不能完全看懂,但是主要思想就是用DEFINE_ON_DEMAND定义两个命令reset_udm0和set_wall_dist_udm0,前者将壁面到最近壁面的距离reset为0,后者可以求出想要的结果,经过测试两个命令应该都是必须的,另外我放的代码和CFDonline上有一点不同,domain = Get_Domain(1);这一行在原代码里面是domain = Get_Domain(ROOT_DOMAIN_ID);注意修改,下图是我测试的一个水翼网格的结果,结果是对的,
再啰嗦几句代码使用方法,这个代码直接复制到一个.c文件中,在fluent中添加memory的数量为2,编译.c文件并load,在calculate之前,点Execute on Demand,并先后运行reset_udm0和set_wall_dist_udm0,然后就可以calculate了