找回密码
 注册
Simdroid-非首页
查看: 169|回复: 2

[电磁与结构流体等的耦合] fluent中MHD模块用UDF添加外部磁场

[复制链接]
发表于 2018-4-15 10:20:15 | 显示全部楼层 |阅读模式 来自 浙江温州
用udf的形式给MHD模块中外部磁场赋值,赋值的效果想跟自带的MHD模块一样,结果计算的时候发现,外部磁场赋值成功了,计算的时候却发散了
我计算的问题是磁流体泵;变化的磁场驱动流体运动。
我的udf:
#include "udf.h"
DEFINE_INIT(my_init_BO_y,domain)
{
        cell_t c;
        Thread *t;
        real xc[ND_ND];
        real temp1,temp2;
        temp1=0.02;
        temp2=0.2;
        /* loop over all cell threads in the domain */
        thread_loop_c(t,domain)
        {
                /* loop over all cells */
                begin_c_loop_all(c,t)
                {
                        C_CENTROID(xc,c,t);
                        if(xc[2]<1.0) C_UDMI(c,t,2)=cos(2*3.1415*60.0/360.0);
                        else if(xc[2]<2.0) C_UDMI(c,t,2)=cos(2*3.1415*120.0/360.0);
                        else if(xc[2]<3.0) C_UDMI(c,t,2)=cos(2*3.1415*180.0/360.0);
                        else if(xc[2]<4.0) C_UDMI(c,t,2)=cos(2*3.1415*240.0/360.0);
                        else if(xc[2]<5.0) C_UDMI(c,t,2)=cos(2*3.1415*300.0/360.0);
                        else  C_UDMI(c,t,2)=cos(2*3.1415*360.0/360.0);
                        C_UDMI(c,t,4)=sqrt(C_UDMI(c,t,2)*C_UDMI(c,t,2));




                }
                end_c_loop_all(c,t)
        }
}
DEFINE_ADJUST(adjust_b0_y,d)
{
        cell_t c;
        Thread *t;
        real xc[ND_ND];
        real current_time;
        current_time=RP_Get_Real("flow-time");
/*        current_time=CURRENT_TIME;*/
        thread_loop_c(t,d)
        {
                begin_c_loop_all(c,t)
                {
                        C_CENTROID(xc,c,t);
                        if(xc[2]<1.0) C_UDMI(c,t,2)=cos(2*3.1415*60.0/360.0+2.0*3.1415*current_time);
                        else if(xc[2]<2.0) C_UDMI(c,t,2)=cos(2*3.1415*120.0/360.0+2.0*3.1415*current_time);
                        else if(xc[2]<3.0) C_UDMI(c,t,2)=cos(2*3.1415*180.0/360.0+2.0*3.1415*current_time);
                        else if(xc[2]<4.0) C_UDMI(c,t,2)=cos(2*3.1415*240.0/360.0+2.0*3.1415*current_time);
                        else if(xc[2]<5.0) C_UDMI(c,t,2)=cos(2*3.1415*300.0/360.0+2.0*3.1415*current_time);
                        else  C_UDMI(c,t,2)=cos(2*3.1415*360.0/360.0+2.0*3.1415*current_time);
                        C_UDMI(c,t,4)=sqrt(C_UDMI(c,t,2)*C_UDMI(c,t,2));

                        



                }
                end_c_loop_all(c,t)
        }

}


现在主要的问题是:计算几步后就会发散,发现感应磁场不正确
 楼主| 发表于 2018-4-15 10:21:32 | 显示全部楼层 来自 浙江温州
Simdroid开发平台
这个是附图,供大家参考

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
回复 不支持

使用道具 举报

发表于 2019-4-22 10:35:00 | 显示全部楼层 来自 上海
请问楼主解决了吗?至于一定要先把电磁场计算出来,然后导入mhd吗?
回复 不支持

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|小黑屋|联系我们|仿真互动网 ( 京ICP备15048925号-7 )

GMT+8, 2024-4-27 08:22 , Processed in 0.027334 second(s), 11 queries , Gzip On, MemCache On.

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表