- 1、本文档共12页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
UDF第2章 udf 中的C语言
第二章.UDF的C语言基础
本章介绍了UDF的C语言基础
2.1引言
2.2注释你的C代码
2.3FLUENT中的C数据类型
2.4常数
2.5变量
2.6自定义数据类型
2.7强制转换
2.8函数
2.9数组
2.10指针
2.11声明
2.12常用C操作符
2.13C库函数
2.14用#define实现宏置换
2.15用#include实现文件包含
2.16与FORTRAN比较
2.1引言
本章介绍了C语言的一些基本信息,这些信息对处理FLUENT的UDF很有帮助。本章首先假定你有一些编程经验而不是C语言的初级介绍。本章不会介绍诸如while-do循环,联合,递归,结构以及读写文件的基础知识。如果你对C语言不熟悉可以参阅C语言的相关书籍。
2.2注释你的C代码
熟悉C语言的人都知道,注释在编写程序和调试程序等处理中是很重要的。注释的每一行以“/*”开始,后面的是注释的文本行,然后是“*/”结尾
如:/* This is how I put a comment in my C program */
2.3FLUENT的C数据类型
FLUENT的UDF解释程序支持下面的C数据类型:
Int:整型
Long:长整型
Real:实数
Float:浮点型
Double:双精度
Char:字符型
注意:UDF解释函数在单精度算法中定义real类型为float型,在双精度算法宏定义real为double型。因为解释函数自动作如此分配,所以使用在UDF中声明所有的float和double数据变量时使用real数据类型是很好的编程习惯。
2.4常数
常数是表达式中所使用的绝对值,在C程序中用语句#define来定义。最简单的常数是十进制整数(如:0,1,2)包含小数点或者包含字母e的十进制数被看成浮点常数。按惯例,常数的声明一般都使用大写字母。例如,你可以设定区域的ID或者定义YMIN和YMAX如下:#define WALL_ID 5
#define YMIN 0.0
#define YMAX 0.4064
2.5变量
变量或者对象保存在可以存储数值的内存中。每一个变量都有类型、名字和值。变量在使用之前必须在C程序中声明。这样,计算机才会提前知道应该如何分配给相应变量的存储类型。
2.5.1声明变量
变量声明的结构如下:首先是数据类型,然后是具有相应类型的一个或多个变量的名字。变量声明时可以给定初值,最后面用分号结尾。变量名的头字母必须是C所允许的合法字符,变量名字中可以有字母,数字和下划线。需要注意的是,在C程序中,字母是区分大小写的。下面是变量声明的例子:
int n; /*n为整型*/
int i1, i2; /*声明变量i1和i2为整型*/
float tmax = 0.; /* tmax为浮点型实数,初值为0 */
real average_temp = 0.0; /* average_temp为实数,赋初值为0.1*/
2.5.2局部变量
局部变量只用于单一的函数中。当函数调用时,就被创建了,函数返回之后,这个变量就不存在了,局部变量在函数内部(大括号内)声明。在下面的例子中,mu_lam和temp是局部变量。
DEFINE_PROPERTY(cell_viscosity, cell, thread)
{
real mu_lam;
real temp = C_T(cell, thread);
if (temp 288.)
mu_lam = 5.5e-3;
else if (temp 286.)
mu_lam = 143.2135 - 0.49725 * temp;
else
mu_lam = 1.;
return mu_lam;
}
2.5.3全局变量
全局变量在你的UDF源文件中是对所有的函数都起作用的。(调用一个UDF源文件可能会包括一系列的连接函数。)它们是在单一函数的外部定义的。全局变量一般是在预处理程序之后的文件开始处声明。
2.5.4外部变量
如果全局变量在某一源代码文件中声明,但是另一个源代码的某一文件需要用到它,那么你必须在另一个文件中声明它是外部变量。外部变量的声明很简单,你只需要在变量声明的最前面加上extern即可。如果有几个文件涉及到该变量,最方便的处理方法就是在头文件(.h)中加上extern的定义,然后在所有的.c文件中引用该头文件即可。只有一个.c文件应该包括没有extern关键字的变量声明,如下所示。注意:extern只用于编译过的UDF。
例子:
/* filea.h */
/**/
extern real volume;
/* filea.c
文档评论(0)