跪求大神指导。fluent udf编程 入口风速随高度不同变化的公式为 v=30*{(x/10)的0.16次方}

/************************************************************************************... /**************************************************************************************/
/*UDF for specifying a sinusoidal velocity profile boundary condition*/
/**************************************************************************************/
#include "udf.h"
DEFINE_PROFILE(x_velocity,thread,nv)
{
float x[3]; /* an array for the
coordinates */
float y;
face_t f; /* f is a face
thread index */
begin_f_loop(f, thread)
{
F_CENTROID(x,f,thread);
y = x[1];
F_PROFILE(f, thread, nv)
= 30.*pow(x/10.,0.16);
}
end_f_loop(f, thread)
}
提示错误:Error: E:\wenshi\x-velosity.c: line 14: invalid type for binary expression: array 3 of float / float.
展开
 我来答
百度网友41bc56c
2019-04-11
知道答主
回答量:2
采纳率:0%
帮助的人:1.4万
展开全部
你好,我最近也在学习UDF,都是为了毕业(哭了)
我看了下你写的UDF,和我最近在看的一个UDF例子一样,就是公式改成了你所需要的。我觉得原本的例子就有问题,错误之处:“float x[3]”和“y = x[1];”很明显前后不一致了。。
根据我学习的其他UDF例子来看,x[?]中的?分别有着这样的对应:0是x方向,1是y方向(2可能就是z方向吧)。原本那个例子是x方向的速度v与y的坐标有关,也就是v(y)=。。。的公式。那udf中应当为float x[1].
你的公式是与x的坐标值有关,应当为
#include "udf.h"
DEFINE_PROFILE(x_velocity,thread,nv)
{
float x[0];
float x;
face_t f;
begin_f_loop(f, thread)
{
F_CENTROID(x,f,thread);
x= x[0];
F_PROFILE(f, thread, nv)
= 30.*pow(x/10.,0.16);
}
end_f_loop(f, thread)
}
这是我的理解,希望有真正的大神来看看是否正确,你也可是试试这个能不能用,再交流。
小木虫是一个好地方,建议你也在那里问问。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
物理公司的
2016-06-21 · TA获得超过5698个赞
知道大有可为答主
回答量:6105
采纳率:86%
帮助的人:1394万
展开全部
#include<iostream>
#include<math.h>
using namespace std;
float p,q;
void m(int a,int b,int c,float d)
{
p=(-b+sqrt(d))/(2*a);
q=(-b-sqrt(d))/(2*a);
cout<<"x1=<<p<<" "<<"x2="<<q<<;
}
void f(int a,int b,int c,float d)
{
p=-b/(2*a); cout<<"x1=x2="<<p<<endl;
}
void j(int a,int b,int c,float d)
{
cout<<"无实根"<<endl;
}
int main()
{
int a,b,c;
float d;
cout<<"Input A B C"<<endl;
cin>>a>>b>>c;
d=b*b-4.0*a*c;
if(d>0)
{
m(a,b,c,d);
}
else if(d==0)
{
f(a,b,c,d);
}
else
{
j(a,b,c,d);
}
cout<<endl;
return 0;
}
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
没出息的小丑Mr雷
2019-03-20
知道答主
回答量:5
采纳率:0%
帮助的人:2.3万
展开全部
#include "udf.h"
DEFINE_PROFILE(inlet_x_velocity,thread,position)
{
#if !RP_HOST
real x [ND_ND];
real z;
face_t f;
begin_f_loop(f,thread)
{
F_CENTROID(x,f,thread);
z=x[2];
F_PROFILE(f,thread,position)=pow(z/10,0.16)*21.57;
}
end_f_loop(f,thread)
#endif
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友00844c7
2019-06-01
知道答主
回答量:1
采纳率:0%
帮助的人:743
展开全部
请问楼主解决了吗?同求大神指导
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式