24小时热门版块排行榜    

查看: 2831  |  回复: 9
当前只显示满足指定条件的回帖,点击这里查看本话题的所有回帖

10032119

银虫 (小有名气)

[求助] 如何用UDF求解面积分

如何用UDF求解面积分?
我的问题是要给一个UDS变量定义其在边界的值等于另外一个UDS变量在某个面的积分值!
帮助文档中有部分求体积分,但是面积分怎么求?
回复此楼

» 猜你喜欢

已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

10032119

银虫 (小有名气)

引用回帖:
5楼: Originally posted by mycc at 2016-08-03 10:40:35
要得到某个边界上的值,那么 t 就要指定为那个边界的 thread...

非常感谢
8楼2016-08-03 17:47:20
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
查看全部 10 个回答

mycc

专家顾问 (正式写手)

引用回帖:
4楼: Originally posted by 10032119 at 2016-08-03 09:35:06
谢谢应答
在dajust中怎么获取某个边界的指针呢?单纯用
thread_loop_f (t,domain)
        {
                begin_f_loop (f,t)
                {
                }end_f_loop (f,t)
        }
只能获取所有的face,我想获取的只是某个边界的face上得值做积分?...

要得到某个边界上的值,那么 t 就要指定为那个边界的 thread
项目汇总:http://www.cfluid.com/forum.php?mod=viewthread&tid=114340&extra=
5楼2016-08-03 10:40:35
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

dai26520

专家顾问 (著名写手)

#include "udf.h"
real NV_VEC(A);
real avg_pressure;
real sum_P_A=0.0;
real sum_A=0.0;
real outlet_down_ID=xx;
Thread *thread_out;
face_t f;
Domain *domain;
DEFINE_ADJUST(outlet_down,domain)
{
domain=Get_Domain(1);
thread_out=Lookup_Thread(domain,outlet_down_ID);/*outlet_down_ID是出口面的id*/
begin_f_loop(f,thread_out)
{
F_AREA(A,f,thread_out);
sum_A+=NV_MAG(A);                 
sum_P_A+=NV_MAG(A)*F_P(f, thread_out);
}
end_f_loop(f,thread_out)
avg_pressure=sum_P_A/sum_A;
}

DEFINE_PROFILE(pressure_down,t,i)
{
face_t f;
begin_f_loop(f,t)
{
F_PROFILE(f,t,i) = avg_pressure;
}
end_f_loop(f,t)
}


给你一个完整的例子参考下,算的平均压力。
个性只是一个代号,做好自己就行
6楼2016-08-03 15:48:21
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

10032119

银虫 (小有名气)

引用回帖:
6楼: Originally posted by dai26520 at 2016-08-03 15:48:21
#include "udf.h"
real NV_VEC(A);
real avg_pressure;
real sum_P_A=0.0;
real sum_A=0.0;
real outlet_down_ID=xx;
Thread *thread_out;
face_t f;
Domain *domain;
DEFINE_ADJUST(outlet_dow ...

非常感谢
7楼2016-08-03 17:47:06
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
信息提示
请填处理意见