#include "udf.h" #define R 0.01 #define Q 7 #define PI 3.14159 #DEFINE_SOURCE(gaussian_heat_source,c,t,dS,eqn){ real x; real r,source; C_CENTROID (x,c,t); r=sqrt(y*y); if(r<=R){ source=Q/(PI*R*R*r)*exp(-3*r*r/R/R); } else source=0; return source; } line 11: parse error. 什么问题
#include "udf.h"
#define R 0.01
#define Q 7
#define PI 3.14159
#DEFINE_SOURCE(gaussian_heat_source,c,t,dS,eqn){
real x;
real r,source;
C_CENTROID (x,c,t);
r=sqrt(x*x);
if(r<=R){
source=Q/(PI*R*R*r)*exp(-3*r*r/R/R);
}
else source=0;
return source;
}
第1个回答 2014-08-29
define前有#没错,DEFINE不加#,去掉。
real x;改为real x[ND_ND];
告你一个PI的稍微精确的值:3.14159265(35898);
r=sqrt(x*x),你的意思是想r为正数,改x为x[1],即r=sqrt(x[1]*x[1]);(我记得0表示x方向,1表示y方向,2表示z方向,但有些资料不是这么解释的,都直接用1,无论如何,你可以试试看)
祝好。追问
real x;改为real x[ND_ND];
告你一个PI的稍微精确的值:3.14159265(35898);
r=sqrt(x*x),你的意思是想r为正数,改x为x[1],即r=sqrt(x[1]*x[1]);(我记得0表示x方向,1表示y方向,2表示z方向,但有些资料不是这么解释的,都直接用1,无论如何,你可以试试看)
祝好。追问
嗯。
C_CENTROID (x,c,t);这行有问题么,程序总是到这行提示parse error
错误是在哪里提示的?你在FLUENT中试过吗?
追问我好想知道了,我多加了个#。。。。
本回答被提问者和网友采纳第2个回答 2014-08-28
建议参考Fluent UDF帮助文档。UDM 就是 User Defined Memory,用来存储自定义的变量。
C_UDMI(c,t,0) 就是访问该网格单元对应的值,其中 0 表示编号为0的UDM变量(UDM变量从0开始编号)
满意请采纳。
C_UDMI(c,t,0) 就是访问该网格单元对应的值,其中 0 表示编号为0的UDM变量(UDM变量从0开始编号)
满意请采纳。