24小时热门版块排行榜    

查看: 1961  |  回复: 3

木偶小天

金虫 (小有名气)

[求助] 刚体附近网格随刚体一起运动 已有1人参与

利用udf计算动网格问题,我想要做的是使得结构体附近的网格随刚体一起运动。
udf介绍:该udf使用newmark算法进行并行运算,使用了define cg motion,并将刚体运动后的坐标输出到txt文件中。
问题:编写的udf没有问题,能够使得结构体运动,但是当把附近网格(此部分网格已经单独划分并命名为fb),将该网格设置为rigid body 使用同一个udf,发现出现运行错误。也就是不设置fb为rigid body时候可以运行,设置成rigid body时候不能运行。
文献中提到,是要编写两个udf来实现。
求助第二个udf该怎么写?
回复此楼
天道酬勤
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

b380324212

铜虫 (小有名气)

同问啊
2楼2016-07-08 09:58:41
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

b380324212

铜虫 (小有名气)

【答案】应助回帖

★ ★ ★ ★ ★ ★ ★ ★ ★ ★
感谢参与,应助指数 +1
木偶小天: 金币+10 2016-07-08 20:53:23
#include <stdio.h>
#include <math.h>
#include "udf.h"

#define WALLID 44
#define NUM_CALLS 7

DEFINE_CG_MOTION(cylinder, dt, vel, omega, time, dtime)
{
          FILE *fp=NULL;
        char filename[]="out.txt";

        Domain *domain=Get_Domain(1);
        Thread *t=Lookup_Thread(domain, WALLID);
        face_t f;

        static real lift=0.0,drag=0,lift_coeff=0.0,drag_coeff=0.0;

        static real a0=0.0,a1=0.0,a2=0.0,a3=0.0,a4=0.0,a5=0.0,a6=0.0,a7=0.0,KK=0.0,DeltT=0.0;
        static real Y=0.0,YY=0.0,Y1=0.0,YY1=0.0,YYY=0.0,PPt=0.0,Y0=0.0,YY0=0.0,YYY0=0.0;

        static int last_call=0;
        static int calls=0;

        int i;

        real rho=998.2, U=0.015, Dia=0.01;
        real m=0.2, k=0.710612, c=0;
        real Beta=0.25, Gama=0.5;

        real A[ND_ND],press_forces[ND_ND],viscous_forces[ND_ND];

        real x_force=0.0, y_force=0.0;


        if ((++calls)==NUM_CALLS)
                last_call=1;

        if (last_call)
    {
                NV_S(A,=,0.0);
                begin_f_loop(f,t)
                {
                        F_AREA(A,f,t);
                        press_forces[0]+=F_P(f,t)*A[0];
                        press_forces[1]+=F_P(f,t)*A[1];
                        viscous_forces[0]+=F_STORAGE_R_N3V(f,t,SV_WALL_SHEAR)[0];
                        viscous_forces[1]+=F_STORAGE_R_N3V(f,t,SV_WALL_SHEAR)[1];
                }
                end_f_loop(f,t)
       
                drag=press_forces[0]-viscous_forces[0];
                lift=press_forces[1]-viscous_forces[1];
                drag_coeff=drag/(0.5*rho*U*U*Dia);
                lift_coeff=lift/(0.5*rho*U*U*Dia);

                DeltT=dtime;
                a0 =1/(Beta*DeltT*DeltT);
                a1=Gama/(Beta*DeltT);
                a2=1/(Beta*DeltT);
                a3=1/(2*Beta)-1;
                a4=Gama/Beta-1;
                a5=(Gama/(2*Beta)-1)*DeltT;
                a6=(1-Gama)*DeltT;
                a7=DeltT*Gama;

                KK=k+a0*m+a1*c;

                PPt=lift+m*(a0*Y0+a2*YY0+a3*YYY0)+c*(a1*Y0+a4*YY0+a5*YYY0);
                Y=PPt/KK;
                YYY=(Y-Y0)*a0-a2*YY0-YYY0*a3;
                YY=YY0+(1-Gama)*DeltT*YYY0+Gama*DeltT*YYY;
                Y0=Y;
                YY0=YY;
                YYY0=YYY;


                Message("\n ===================================================================================";
                Message("\n %-12s  %-12s   %-12s   %-12s   %-12s   %-12s  ","Flow_time","Y","lift_coeff","drag_coeff","lift","drag";
                  Message("\n %12.8f  %12.8f  %12.8f  %12.8f  %12.8f  %12.8f  ",time,Y,lift_coeff,drag_coeff,lift,drag);


                if ((fp=fopen(filename,"a")==NULL)
                        Message("\n Warning: Unable to open %s for writing!!!\n",filename);
                else
                {
                        Message("\n Writing datas to %s...",filename);
                          fprintf(fp,"%12.8f  %12.8f  %12.8f  %12.8f  %12.8f  %12.8f %12.8f %12.8f  \n",time,Y,lift_coeff,drag_coeff,lift,drag,PPt,KK);
                          fclose(fp);
                        Message("\n Done!";
                        Message("\n ===================================================================================";
                }
               
                calls=0;
                last_call=0;
        }
        vel[0]=0.0;
        vel[1]=YY;
}
3楼2016-07-08 10:00:52
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

小黑牛小白妞

新虫 (初入文坛)

送红花一朵
楼主可以分享下 使刚体运动的udf吗
4楼2018-07-18 15:01:29
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 木偶小天 的主题更新
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[考博] 售SCI一区文章,我:8.O.55.1.O.54,科目齐全,可伽急 +3 jCd0dEvKHShX 2026-08-29 4/200 2026-08-30 03:26 by ZPa0EcMwuECS
[公派出国] 售SCI一区T0P文章,我:8O.55.1.O.54,科目全,可伽急 +3 G6APbkg8SA6w 2026-08-29 3/150 2026-08-30 02:29 by ZPa0EcMwuECS
[硕博家园] 售SCI一区T0P文章,我:8O.55.1.O.54,科目全,可伽急 +3 G6APbkg8SA6w 2026-08-29 3/150 2026-08-30 02:18 by ZPa0EcMwuECS
[论文投稿] 售SCI一区T0P文章,我:8O.55.1.O.5.4,科目齐全,可+急 +5 gy1nBQXYQJqL 2026-08-29 6/300 2026-08-30 01:58 by ZPa0EcMwuECS
[找工作] 售SCI文章,我:8O5.5.1.O.54,科目齐全,可+急 +4 gy1nBQXYQJqL 2026-08-29 6/300 2026-08-30 01:47 by ZPa0EcMwuECS
[公派出国] 售SCI一区文章,我:8.O.55.1.O.54,科目齐全,可伽急 +4 gy1nBQXYQJqL 2026-08-29 4/200 2026-08-30 01:45 by ZPa0EcMwuECS
[考博] 售SCI-T0P文章,我:8O.5.5.1.O.54,科目齐全,可+急 +3 gy1nBQXYQJqL 2026-08-29 4/200 2026-08-30 01:34 by ZPa0EcMwuECS
[博后之家] 售SCI文章,我:8O.5.5.1O.54,科目全,可十急 +7 ASdOkHsho7FD 2026-08-28 8/400 2026-08-30 01:14 by ZPa0EcMwuECS
[考博] 售SCI一区T0P文章,我:8.O.55.1.O54,科目全,可伽急 +6 ASdOkHsho7FD 2026-08-28 9/450 2026-08-30 01:04 by ZPa0EcMwuECS
[基金申请] 国社科申报系统有变化 +3 kynobel 2026-08-23 3/150 2026-08-29 21:57 by 余韵清
[基金申请] 国自然面上复盘~欢迎讨论 (金币+15) +15 晴天加油 2026-08-26 16/800 2026-08-29 18:28 by symmetry
[基金申请] 麻烦专家们看看评委们的意见(F口面上) +5 gdd2018 2026-08-28 10/500 2026-08-29 14:10 by Jacob678
[基金申请] 基金不中,共勉 +11 eulota 2026-08-26 11/550 2026-08-28 14:22 by 火星超人xi
[基金申请] 申请删除本帖 +6 lyz123lyz 2026-08-27 7/350 2026-08-27 17:31 by 宁静致远sy
[基金申请] 怎么看青基中了没有啊 +5 叶九微 2026-08-26 5/250 2026-08-27 10:35 by l_zh2008
[基金申请] 为什么 国际(地区)合作与交流项目 没有放榜? 10+3 majunge000 2026-08-26 11/550 2026-08-27 08:42 by 北京莱茵编辑
[基金申请] 为什么国自然不能直接公布 +4 bjdxyxy 2026-08-26 4/200 2026-08-26 13:12 by qingmu1201
[基金申请] 系统进不去 +4 yanglien 2026-08-26 5/250 2026-08-26 11:10 by wenfengw83
[基金申请] 在坚冰还盖着北海的时候,我看到了怒放的梅花。 (金币+10) +6 ziyangfang 2026-08-25 9/450 2026-08-25 20:26 by huagongfeihu
[基金申请] 没有任何消息-是不是就凉了 +9 图啦图啦 2026-08-24 10/500 2026-08-25 11:59 by 南海小哥
信息提示
请填处理意见