F_CENTROID(x,f,t)和C_CENTROID(x,f,t)的一些疑问
-
当计算基于位置变化的的变量时可以使用F_CENTROID(x,f,t)和C_CENTROID(x,f,t),比如
DEFINE_PROFILE(name,thread,index) { real x[ND_ND]; real y; face_t f; begin_f_loop(f, thread) { F_CENTROID(x,f,thread); y = x[1]; F_PROFILE(f, thread, index) = 20. - y*y/(.0745*.0745)*20.; } end_f_loop(f, thread) }
如果直接在边界上使用,可以知道基于哪一个面进行计算,那么
F_CENTROID(x,f,t)
是否可以定义非边界的条件,如果可以定义,又是如何计算位置的?对于不是添加在边界上的
DEFINE_PROFILE
,比如计算空隙率的UDF
DEFINE_PROFILE(porosity,thread,index) { real x[ND_ND]; real y; face_t f; begin_f_loop(f, thread) { C_CENTROID(x,f,thread); y = x[1]; if(y>0) F_PROFILE(f, thread, index) = 0.1+0.1*pow(y,3)+0.1*pow(y,5)+0.1*pow(y,6); } end_f_loop(f, thread) }
在参考文献中,使用旋转轴对称的模型,
y
表示r/R
,为什么同样对于普通三维模型,二维模型,
x[1]
表示什么,C_CENTROID(x,f,t)
究竟是如何计算的?对于提交的问题是不是没办法再次修改?
-
@astremon 那么对于轴对称模型的话,(这个
x[1]
表示r
还是r/R
? 我先假定为r/R
吧)- 比如一个二维矩形轴对称为圆柱,那么对于添加在平行于对称轴的边界上的
DEFINE_PROFILE
是基于这个边界然后按照距边界的距离来计算,是从0
到对称轴r/R
吗,还是反过来或者其他? - 对于一个三维圆柱
(假定为上面旋转之后的直接的三维模型)
,这个边界是从0
到对称轴r/R
吗,还是反过来或者其他?
另外对于一个三维的模型,
DEFINE_PROFILE
如果不是添加在壁面,而是孔隙率这样的一个整体的范围,那么就没有类似于边界这样的基准了,一个面的话也还是需要知道从哪里开始计算吧?谢谢您!
- 比如一个二维矩形轴对称为圆柱,那么对于添加在平行于对称轴的边界上的