找回密码
 注册
查看: 3251|回复: 2

请教压力边界的程序问题

[复制链接]
发表于 2011-7-12 18:45:42 | 显示全部楼层 |阅读模式

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

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

x
这是我用fortran参考X.Y.He的文献写的LBM 2D管道的压力边界部分的程序,但是右边界出口算出的速度总是负值,不知是什么原因,请大家指点一下,(1-9是D2Q9的9 个方向)
!左边界
uy(1,j)=0
rho(1,j)=1.002
ux(1,j)=1.0-(fp(1,j,1)+fp(1,j,3)+fp(1,j,5)+2.0*(fp(1,j,4)+fp(1,j,7)+fp(1,j,8)))/1.002
f(1,j,2)=fp(1,j,4)+2.0*1.002*ux(1,j)/3.0
f(1,j,6)=fp(1,j,8)-(fp(1,j,3)-fp(1,j,5))/2.0+1.002*ux(1,j)/6.0
f(1,j,9)=fp(1,j,7)+(fp(1,j,3)-fp(1,j,5))/2.0+1.002*ux(1,j)/6.0

!右边界
uy(250,j)=0
rho(250,j)=0.998
ux(250,j)=(fp(250,j,1)+fp(250,j,3)+fp(250,j,5)+2.0*(fp(250,j,2)+fp(250,j,6)+fp(250,j,9)))/0.998-1.0
f(250,j,4)=fp(250,j,2)-2.0*0.998*ux(250,j)/3.0
f(250,j,7)=fp(250,j,9)-(fp(250,j,3)-fp(250,j,5))/2.0-0.998*ux(250,j)/6.0
f(250,j,8)=fp(250,j,6)+(fp(250,j,3)-fp(250,j,5))/2.0-0.998*ux(250,j)/6.0
发表于 2011-7-15 14:08:02 | 显示全部楼层
贴段C++代码你自己研究吧,DX,DY 是流场边长,df[9]存储分布函数
结合曲线边界条件,不需要处理角点。

        for( int j=1; j<DY-1; ++j )
        {
                {
                        LatticeData & t = Lattice[0][j];
                        double UxLeft  = 1 -(t.df[0]+t.df[2]+t.df[4]+2*(t.df[3]+t.df[6]+t.df[7]))/DenLeft;
                        t.df[1] = t.df[3]+6*DenLeft*W1*UxLeft;
                        t.df[5] = t.df[7]-0.5*(t.df[2]-t.df[4])+(0.5-3*W1)*DenLeft*UxLeft;        
                        t.df[8] = t.df[6]+0.5*(t.df[2]-t.df[4])+(0.5-3*W1)*DenLeft*UxLeft;        
                }
                {
                        LatticeData & t = Lattice[DX-1][j];
                        double UxRight = -1+(t.df[0]+t.df[2]+t.df[4]+2*(t.df[1]+t.df[5]+t.df[8]))/DenRight;
                        t.df[3] = t.df[1]-6*DenRight*W1*UxRight;  
                        t.df[6] = t.df[8]-0.5*(t.df[2]-t.df[4])-(0.5-3*W1)*DenRight*UxRight;   
                        t.df[7] = t.df[5]+0.5*(t.df[2]-t.df[4])-(0.5-3*W1)*DenRight*UxRight;  
                }
        }
 楼主| 发表于 2011-7-18 09:45:31 | 显示全部楼层

回复 2# oceanwen 的帖子

好的``我看看``谢谢
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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