24小时热门版块排行榜    

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

huanghuang36

铜虫 (小有名气)

[求助] UDF 改为并行计算

我的UDF 在单机下能正常使用,但是并行不是需要改一下语句嘛,本人愚钝,照着教程改了改但是一直不对,希望高人能帮忙指点一下,不胜感激啊
如下是我的UDF:主要使用的就是CG_MOTION


#include
#include "udf.h"
#include "math.h"
real r_movefluid;
DEFINE_CG_MOTION(moveface, dt, cg_vel, cg_omega, time, dtime)
{
        Thread *t;
    face_t f;
        real x0,y0,r;
    real v0;
        real v;
    real omega=M_PI;
        real theta=omega*time;
    real x[ND_ND];
        t = DT_THREAD(dt);
    begin_f_loop(f,t)
        {
                F_CENTROID(x,f,t);
                x0=x[0];
                y0=x[1];
                r=sqrt(pow(x0,2)+pow(y0,2));
        }
    end_f_loop(f,t)
        v0=omega*r;
        r_movefluid=r;
   if (time>=0 && time<=M_PI/(180*omega))
           v=0;
   else if (time<=8*M_PI/(180*omega))
           v=12.96*(theta-(M_PI/180))*omega/(7*pow(M_PI,2));
   else if (time<=10*M_PI/(180*omega))
           v=0.072*omega/M_PI;
   else if (time<=29*M_PI/(180*omega))
           v=(0.072*omega/M_PI)-12.96*(theta-M_PI/18)*omega/(19*M_PI*M_PI);
   else if (time<=31*M_PI/(180*omega))
           v=0;

        cg_vel[0]=v*cos(theta)-v0*sin(theta);
        cg_vel[1]=v*sin(theta)+v0*cos(theta);
        cg_vel[2]=0;
        cg_omega[0]=0;
        cg_omega[1]=0;
        cg_omega[2]=omega;
}
DEFINE_CG_MOTION(rotate, dt, cg_vel, cg_omega, time, dtime)
{
        real omega=M_PI;
        cg_omega[2]=omega;
}
DEFINE_CG_MOTION(movefluid, dt, cg_vel, cg_omega, time, dtime)
{
    real v0;
        real v;
    real omega=M_PI;
        real theta=omega*time;
        v0=omega*r_movefluid;
   if (time>=0 && time<=M_PI/(180*omega))
           v=0;
   else if (time<=8*M_PI/(180*omega))
           v=12.96*(theta-(M_PI/180))*omega/(7*pow(M_PI,2));
   else if (time<=10*M_PI/(180*omega))
           v=0.072*omega/M_PI;
   else if (time<=29*M_PI/(180*omega))
           v=(0.072*omega/M_PI)-12.96*(theta-M_PI/18)*omega/(19*M_PI*M_PI);
   else if (time<=31*M_PI/(180*omega))
           v=0;

        cg_vel[0]=v*cos(theta)-v0*sin(theta);
        cg_vel[1]=v*sin(theta)+v0*cos(theta);
        cg_vel[2]=0;
        cg_omega[0]=0;
        cg_omega[1]=0;
        cg_omega[2]=omega;
}

刚注册的,目前只有两个金币,呵呵,不好意思啊~~
回复此楼

» 猜你喜欢

» 本主题相关价值贴推荐,对您同样有帮助:

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

huanghuang36

铜虫 (小有名气)

呵呵,目前我也不是很会啊,共同学习
3楼2012-10-10 10:02:36
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
查看全部 10 个回答

Mr.Silence

新虫 (初入文坛)


感谢参与,应助指数 +1
xiegangmai: 金币-1, 应助指数-1, 谢谢参与,非应助请勿选择“应助回帖” 2012-10-10 21:19:51
同求并行计算的方法。我也在学习UDF,希望楼主不吝赐教。
2楼2012-10-09 11:17:09
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

sunbird04

银虫 (小有名气)

【答案】应助回帖

★ ★ ★
感谢参与,应助指数 +1
xiegangmai: 金币+1, 谢谢应助 2012-10-10 21:20:01
huanghuang36: 金币+2, ★★★很有帮助, 谢谢你的帮助哦~~ 2012-10-16 09:34:24
在每段程序 最前头加上 #if !RP_HOST   最末尾加上#endif   即可

» 本帖已获得的红花(最新10朵)

4楼2012-10-10 18:14:27
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

huanghuang36

铜虫 (小有名气)

引用回帖:
4楼: Originally posted by sunbird04 at 2012-10-10 18:14:27
在每段程序 最前头加上 #if !RP_HOST   最末尾加上#endif   即可

太感谢你的回答了,我已经照你说的改了程序,还有我想问一下,那个计算节点(也就是处理器)数量的设置是不是和我的子域的数量有关啊,我看书上说子域的数量应该是计算节点的整数倍,是要这么设是吧~~
5楼2012-10-10 21:40:46
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[考研] 313求调剂 +3 肆叁贰壹22 2026-03-19 3/150 2026-03-21 08:01 by JourneyLucky
[考研] 332求调剂 +4 ydfyh 2026-03-17 4/200 2026-03-21 02:20 by JourneyLucky
[考研] 278求调剂 +6 烟火先于春 2026-03-17 6/300 2026-03-21 01:57 by JourneyLucky
[考研] 一志愿武理材料305分求调剂 +6 想上岸的鲤鱼 2026-03-18 7/350 2026-03-21 01:03 by JourneyLucky
[考研] 一志愿重庆大学085700资源与环境专硕,总分308求调剂 +3 墨墨漠 2026-03-18 3/150 2026-03-21 00:39 by JourneyLucky
[考研] 295求调剂 +4 一志愿京区211 2026-03-18 6/300 2026-03-20 23:41 by JourneyLucky
[考研] 304求调剂 +7 司空. 2026-03-18 7/350 2026-03-20 23:08 by JourneyLucky
[考研] 材料学求调剂 +4 Stella_Yao 2026-03-20 4/200 2026-03-20 20:28 by ms629
[考研] 08工学调剂 +5 用户573181 2026-03-20 5/250 2026-03-20 15:47 by xia_2003
[考研] 085601材料工程专硕求调剂 +10 慕寒mio 2026-03-16 10/500 2026-03-19 15:26 by 丁丁*
[考研] 材料与化工求调剂 +7 为学666 2026-03-16 7/350 2026-03-19 14:48 by 尽舜尧1
[考研] 0817调剂 +3 没有答案_ 2026-03-14 3/150 2026-03-19 09:51 by Xu de nuo
[考研] 收复试调剂生 +4 雨后秋荷 2026-03-18 4/200 2026-03-18 14:16 by elevennnne
[考研] 312求调剂 +8 陌宸希 2026-03-16 9/450 2026-03-18 12:39 by Linda Hu
[考研] 293求调剂 +11 zjl的号 2026-03-16 16/800 2026-03-18 08:10 by zhukairuo
[考研] 268求调剂 +8 一定有学上- 2026-03-14 9/450 2026-03-17 17:47 by laoshidan
[考研] 308求调剂 +4 是Lupa啊 2026-03-16 4/200 2026-03-17 17:12 by ruiyingmiao
[考研] 333求调剂 +3 文思客 2026-03-16 7/350 2026-03-16 18:21 by 文思客
[考研] 0703化学调剂 290分有科研经历,论文在投 +7 腻腻gk 2026-03-14 7/350 2026-03-16 10:12 by houyaoxu
[考研] 0856求调剂 +3 刘梦微 2026-03-15 3/150 2026-03-16 10:00 by houyaoxu
信息提示
请填处理意见