24小时热门版块排行榜    

查看: 3938  |  回复: 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的回帖

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的回帖
查看全部 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的回帖

huanghuang36

铜虫 (小有名气)

呵呵,目前我也不是很会啊,共同学习
3楼2012-10-10 10:02:36
已阅   回复此楼   关注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的回帖
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[基金申请] 今天放榜吗? +12 布布和一二 2026-08-19 13/650 2026-08-19 14:33 by 陈晨晨陈啊
[基金申请] filecode,4个jtjc了 +8 ziyangfang 2026-08-19 9/450 2026-08-19 13:08 by blacksandy
[基金申请] 欢迎发来filecode的Mz6后的代码验证其规律 +52 医学老男孩 2026-08-13 115/5750 2026-08-19 12:09 by 医学老男孩
[基金申请] 2027广东省杰青 +4 奶牛小黑 2026-08-15 10/500 2026-08-19 11:02 by wanfengnew
[基金申请] 时间戳变了,能看出什么问题? +10 基诺咪客 2026-08-17 14/700 2026-08-19 10:34 by 基诺咪客
[基金申请] 咱们一起用铁证分析2026国家社科基金中标与否 +8 启萌科技 2026-08-12 30/1500 2026-08-19 10:22 by 启萌科技
[基金申请] 快农历七夕节了,轻松一下,男人悄悄话,女施主请不要进来。 +6 Tide man 2026-08-14 7/350 2026-08-19 09:56 by ZJTJZ
[基金申请] 什么时候开奖? +6 CrisMessi 2026-08-18 6/300 2026-08-19 08:06 by Equinoxhua
[基金申请] 结合人工智能,周易传统文化,filecode打分制来了,3分以上希望很大。 +4 Tide man 2026-08-12 5/250 2026-08-19 07:41 by 201120518022
[基金申请] 重要消息,中午系统在维护 +10 yuleib84 2026-08-18 11/550 2026-08-19 07:30 by 羽毛枫f
[教师之家] 为什么余额宝的年化利率越来越低?主要原因有哪些? +3 瞬息宇宙 2026-08-15 3/150 2026-08-18 21:40 by xiaohuixin
[基金申请] 明天放榜? +5 Shxjjxjkx 2026-08-18 5/250 2026-08-18 18:14 by -大大大大大-
[基金申请] 时间戳又变了8-15 +14 archvillain 2026-08-15 26/1300 2026-08-18 13:37 by phantomgost
[基金申请] 今天维护系统维护 祝所有人 高中 +8 gjjjzhong 2026-08-18 9/450 2026-08-18 13:01 by 家与远方
[基金申请] 93BebMhtakh前后11位开头都是大写 +4 且听虎啸 2026-08-17 5/250 2026-08-18 00:49 by 蔡棒棒菂
[基金申请] filecode=后面第一个是大写字母 +8 wangze12014 2026-08-14 10/500 2026-08-17 17:05 by xter9665
[精细化工] 招聘 金属平磨液,抛光液研发工程师 +3 小天0311 2026-08-14 3/150 2026-08-16 07:31 by H9PLUS
[基金申请] 各位道友,我要去昆明玩几天,回来见。 +7 Tide man 2026-08-14 8/400 2026-08-15 01:11 by arzu_hma
[基金申请] 重要来源:本周末出结果 +10 瞬息宇宙 2026-08-12 10/500 2026-08-13 15:46 by likettle
[基金申请] Filecode 又变了,巨变 +3 WH3796 2026-08-12 4/200 2026-08-13 14:13 by 小木虫6752397
信息提示
请填处理意见