对一个简单解释型udf程序的详细解释.docxVIP

对一个简单解释型udf程序的详细解释.docx

  1. 1、本文档共2页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
对一个简单解释型udf程序的详细解释 对一个简单解释型udf程序的详细解释 #include \ /*udf.h是一个头文件,如果不写的话就不能使用fluent udf中的宏,函数等*/ DEFINE_PROFILE(pressure_profile, t, i) /*是一个宏,本例中用来说明进口压力与垂直坐标变量(还可以是其他的变量)的关系。pressure_profile 是函数名,可随意指定。t的数据类型是Thread *t ,t表示指向结构体thread(这里的thread表示边界上所有的网格面的集合)的指针。i的数据类型是Int,表示边界的位置?或者说是什么每个循环内对位置变量(这里应该是质心的纵坐标)设置的数值标签*/ { real x[ND_ND]; /* 定义了质心的三维坐标,数据类型为real*/ real y; /*定义了一个变量y, 数据类型为real */ face_t f; /*定义了一个变量f, 数据类型为face_t,也就是网格面的意思,即f代表一个网格单元的网格面 */ begin_f_loop(f, t) /*表示遍寻网格面,它的意思是说在计算的时候,要扫描所定义边界的所有网格面,对每个网格面都要赋值,值存储在F_PROFILE(f, t, i)中*/ { F_CENTROID(x,f,t); /*一个函数,它的意思是读取每个网格面质心的二维坐标,并赋值给x。x为名称,接收三维坐标值。f为网格面(因为这里只是取的面的二维坐标,所以为f,如果是网格单元的话,这里就为c)。t为指向结构体thread(这里的thread表示边界上所有的网格面的集合)的指针*/ y = x[1]; /*把质心的三维坐标的纵坐标的数值赋给y*/ F_PROFILE(f, t, i) = 1.1e5 - y*y/(.0745*.0745)*0.1e5; /*赋给每个网格面的数值与网格质心纵坐标的关系。其实就是赋给质心的速度值(这里只有大小)与质心纵坐标的函数关系,因为fluent在计算的时候是把数据存储到网格质心上的,所以网格质心的速度值就代表网格的速度值。这里有了网格的质心纵坐标,然后有了质心速度值与纵坐标的函数关系,那么每个进口网格面的速度值也就知道了。f依然代表网格面。t表示指向结构体thread(这里的thread表示边界上所有的网格面的集合)的指针。i每个循环内对位置变量(这里应该是质心的纵坐标)设置的数值标签*/ } end_f_loop(f, t)/*结束循环*/ } 整体来看:包括两个宏:DEFINE_PROFILE(pressure_profile, t, i)和beginend_f_loop(f, t)。两个函数:F_CENTROID(x,f,t)和F_PROFILE(f, t, i)。其他都是变量。 求解思路为,首先看用到的宏,本例中用到的是DEFINE_PROFILE(name,t,i),它可以给进口或者边壁加载速度,温度,压力等变量。 然后我们知道了进口速度和进口纵坐标的关系,其实也就是每个网格面质心的速度值与质心纵坐标的关系。这样就好了,现在的关键是如何得到每个网格质心的纵坐标的数值。程序里是这样做的:首先通过F_CENTROID(x,f,t)函数得到质心的二维坐标并赋给x[ND_ND],然后利用y = x[1]函数得到质心的纵坐标。; 得到了质心纵坐标以后,知道质心速度值与质心纵坐标的关系,再通过F_PROFILE(f, t, i)函数,就可以把由函数关系式得到的速度值赋给每个网格面的质心了。 注:1.real类型,在fluent单精度里为float,双精度里为double float。 2.beginend_f_loop(f, t)循环宏,相当于c语言中的循环语句。因为上述都是说的对每一个网格面的赋值,而进口有很多网格面,所以就需要利用这个宏扫描所有的网格面,然后给所有的网格质心赋值。 感谢您的阅读,祝您生活愉快。

文档评论(0)

软件开发 + 关注
官方认证
服务提供商

十余年的软件行业耕耘,可承接各类需求

认证主体深圳鼎云文化有限公司
IP属地广东
统一社会信用代码/组织机构代码
91440300MA5G24KH9F

1亿VIP精品文档

相关文档