姚程
Fluent能量源项UDF
2021-6-17 17:42
阅读:8205

用等离子体激励增强升力

在壁面分别施加40组激励

壁面升力随激励位置的变化曲线如下图。

完全没有规律!!!

图片.png

特别是第9、10、35组,有点离谱

其中第9组的压力分布如下,影响有点太大了。壁面压力分布看得更清楚

图片.png

图片.png

而第1组的压力分布如下。可见影响不太大。

图片.png



正常理解的话,

第9号位置是有问题的。


后来测试了很多参数,

例如网格质量,来流条件,库郎数,计算格式。

都没有用。

结果在UDF中看到了问题。

原始片段如下:

DEFINE_SOURCE(energy_source,c,t,dS,eqn)                                                                 
{                                                                                                       
    float theta;                                                                                         
    real temp1,temp2,temp3;                                                                              
    real source,px,py,pz,zmax;                                                                           
    real x[ND_ND];    
    
    C_CENTROID(x,c,t);                                                                                   
    px=x[0];                                                                                             
    py=x[1];                                                                             
    
    theta=angle*pie/180.0;                                                                       
    temp1=((px-xx)*cos(theta) + (py-yy)*sin(theta))*((px-xx)*cos(theta) + (py-yy)*sin(theta));
    temp2=((px-xx)*sin(theta) - (py-yy)*cos(theta))*((px-xx)*sin(theta) - (py-yy)*cos(theta));
    temp3=temp1/(AA*AA) + temp2/(BB*BB);                                                            
    if (temp3 <=1.0)                                                                                     
    {                                                                                                    
    source=e_max;                                                                                        
    C_UDMI(c,t,0)=source;                                                                                
    } 
                                                                                                   
    dS[eqn]=0.0;                                                                                         
    return source;                                                                                       
}















定义椭圆区域


如果单元中心落在椭圆区域内

令source=e_max


问题出在标黄位置

if 完了之后,没有else!!

在椭圆区域外的source应该等于零


正确的应该是

DEFINE_SOURCE(energy_source,c,t,dS,eqn)                                                                 
{                                                                                                       
    float theta;                                                                                         
    real temp1,temp2,temp3;                                                                              
    real source,px,py,pz,zmax;                                                                           
    real x[ND_ND];    
    
    C_CENTROID(x,c,t);                                                                                   
    px=x[0];                                                                                             
    py=x[1];

    theta=angle*pie/180.0;                                                                       
    temp1=((px-xx)*cos(theta) + (py-yy)*sin(theta))*((px-xx)*cos(theta) + (py-yy)*sin(theta)); 
    temp2=((px-xx)*sin(theta) - (py-yy)*cos(theta))*((px-xx)*sin(theta) - (py-yy)*cos(theta)); 
    temp3=temp1/(AA*AA) + temp2/(BB*BB);     
    if (temp3 <=1.0)  
        source=e_max;           
    else
        source=0.;

        
    C_UDMI(c,t,0)=source;    
    dS[eqn]=0.0;        
    return source;             
}


修改之后,升力随激励位置的变化,看起正常些,如下图所示。

在第9和第10位置没有出现特别奇特的情况。

图片.png

转载本文请联系原作者获取授权,同时请注明本文来自姚程科学网博客。

链接地址:https://wap.sciencenet.cn/blog-531760-1291599.html?mobile=1

收藏

分享到:

当前推荐数:0
推荐到博客首页
网友评论0 条评论
确定删除指定的回复吗?
确定删除本博文吗?