找回密码
 注册
查看: 1743|回复: 1

如何解决不收敛的问题?

[复制链接]
发表于 2008-4-11 00:08:53 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

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

x
    最近,在做微小圆柱体内的旋转流动,是在外加电磁场下的条件下使流体流动,但是运行过程及结果总是不收敛.这可真难死我了.
    我是用了udf定义了源项--电磁力.初始条件皆是静态的,边界条件也全是固壁.[br][br][以下内容由 zxzqlong 在 2008年04月11日 00:13am 时添加] [br]
[br][br][以下内容由 zxzqlong 在 2008年04月11日 00:15am 时添加] [br]
#include "udf.h"
#define V 3.0
#define R1 0.0005
#define R2 0.004
#define B 0.1
DEFINE_SOURCE(x_force,c,t,ds,eqn)
{ real source,angle;
  real ux;
  real a,y;
  real x[ND_ND];
  ux=C_U(c,t);
   C_CENTROID(x,c,t);
   a=x[0];y=x[1];
      if(a>0)
      angle=atan(y/a);
      else if(a<0)
      angle=atan(y/a)+3.1415926;
      source=V/(log(R1/R2))/sqrt(a*a+y*y)*sin(angle)*B-ux*B*B;
      ds[eqn]=-V/(log(R1/R2))/pow((a*a+y*y),1.50)*(a+y)*B;
   return source;

}

DEFINE_SOURCE(y_force,c,t,ds,eqn)
{ real source,angle;
  real uy;
  real a,y;
  real x[ND_ND];

    uy=C_V(c,t);
   C_CENTROID(x,c,t);
   a=x[0];y=x[1];
    if(a>0)
      angle=atan(y/a);
      else if(a<0)
      angle=atan(y/a)+3.1415926;
   source=-V/(log(R1/R2))/sqrt(a*a+y*y)*sin(angle)*B-uy*B*B;
    ds[eqn]=V/(log(R1/R2))/pow((a*a+y*y),1.50)*(a+y)*B;
   return source;

}
[br][br][以下内容由 zxzqlong 在 2008年04月11日 00:20am 时添加] [br]
各位高手也帮忙看下我的udf有没有问题.我认为在ds[eqn]这儿有点问题.我是对x和y进行了简单的求导.
或者请大侠指点一下如何设置ds[eqn]?
 楼主| 发表于 2008-4-12 09:05:31 | 显示全部楼层

如何解决不收敛的问题?

版主,各位高手,请帮忙看下这个如何解决收敛的问题.或指导一下从哪几方面着手进行收敛的设置?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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