找回密码
 注册
查看: 3233|回复: 5

[转帖]格子玻尔兹曼方法的边界条件处理实例

[复制链接]
发表于 2006-5-26 16:30:14 | 显示全部楼层 |阅读模式

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

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

x
格子玻尔兹曼方法的边界条件处理实例
//##############################################################################
//
// Zou and He Velocity BCs at inflow, x=1, and outflow, x=LX.
//
for( y = 1; y<=LY; y++)
{
  // Inflow:
  x=1;
  rho_i = ( ftemp[y][x][9]
          + ftemp[y][x][2]
          + ftemp[y][x][4]
          + 2.*( ftemp[y][x][3]
               + ftemp[y][x][6]
               + ftemp[y][x][7]) ) / ( 1. - u_xin);
  ftemp[y][x][1] = ftemp[y][x][3] + 2./3.*rho_i*u_xin;
  ftemp[y][x][5] = ftemp[y][x][7]
                 + 1./2.*( ftemp[y][x][4]-ftemp[y][x][2])
                 + rho_i/6.*u_xin;
  ftemp[y][x][8] = ftemp[y][x][6]
                 + 1./2.*( ftemp[y][x][2]-ftemp[y][x][4])
                 + rho_i/6.*u_xin;
  // Outflow:
  x=LX;
  rho_o = ( ftemp[y][x][9]
          + ftemp[y][x][2]
          + ftemp[y][x][4]
          + 2.*( ftemp[y][x][1]
               + ftemp[y][x][5]
               + ftemp[y][x][8]) ) /( u_xout + 1.);
  ftemp[y][x][3] = ftemp[y][x][1] - 2./3.*rho_o*u_xout;
  ftemp[y][x][7] = ftemp[y][x][5]
                 + 1./2.*( ftemp[y][x][2]-ftemp[y][x][4])
                 - rho_o/6.*u_xout;
  ftemp[y][x][6] = ftemp[y][x][8]
                 + 1./2.*( ftemp[y][x][4]-ftemp[y][x][2])
                 - rho_o/6.*u_xout;
} /* for( y = 1; y<=LY; y++) */
//&#35;&#35;&#35;&#35;&#35;&#35;&#35;&#35;&#35;&#35;&#35;&#35;&#35;&#35;&#35;&#35;&#35;&#35;&#35;&#35;&#35;&#35;&#35;&#35;&#35;&#35;&#35;&#35;&#35;&#35;&#35;&#35;&#35;&#35;&#35;&#35;&#35;&#35;&#35;&#35;&#35;&#35;&#35;&#35;&#35;&#35;&#35;&#35;&#35;&#35;&#35;&#35;&#35;&#35;&#35;&#35;&#35;&#35;&#35;&#35;&#35;&#35;&#35;&#35;&#35;&#35;&#35;&#35;&#35;&#35;&#35;&#35;&#35;&#35;&#35;&#35;&#35;&#35;
//
// Zou and He Pressure/Density BCs at inflow, x=1, and outflow, x=LX.
//
for( y = 1;y <= LY;y++)
{
  // Inflow:
  x=1;
  u_x = 1. - ( ftemp[y][x][9]
             + ftemp[y][x][2]
             + ftemp[y][x][4]
             + 2.*( ftemp[y][x][3]
                  + ftemp[y][x][6]
                  + ftemp[y][x][7]) ) / ( rho_in);
  ftemp[y][x][1] = ftemp[y][x][3] + 2./3.*(rho_in)*u_x;
  ftemp[y][x][5] = ftemp[y][x][7]
                 - 1./2.*( ftemp[y][x][2] - ftemp[y][x][4])
                 + ( rho_in)/6.*u_x;
  ftemp[y][x][8] = ftemp[y][x][6]
                 + 1./2.*( ftemp[y][x][2]-ftemp[y][x][4])
                 + rho_in/6.*u_x;
  // Outflow:
  x=LX;
  u_x = -1. + ( ftemp[y][x][9]
              + ftemp[y][x][2]
              + ftemp[y][x][4]
              +
              2.*( ftemp[y][x][1]
                 + ftemp[y][x][5]
                 + ftemp[y][x][8]) ) / ( rho_out);
  ftemp[y][x][3] = ftemp[y][x][1] - 2./3.*rho_out*u_x;
  ftemp[y][x][7] = ftemp[y][x][5]
                 - 1./2.*( ftemp[y][x][4] - ftemp[y][x][2])
                 - rho_out*u_x*1./6.;
  ftemp[y][x][6] = ftemp[y][x][8]
                 + 1./2.*( ftemp[y][x][4] - ftemp[y][x][2])
                 - rho_out*u_x*1./6.;
} /* for( y = 1;y <= LY;y++) */
 楼主| 发表于 2006-5-26 16:31:03 | 显示全部楼层

[转帖]格子玻尔兹曼方法的边界条件处理实例

转自: http://junchen.blog.hexun.com/2020269_d.html
发表于 2006-5-29 16:00:02 | 显示全部楼层

[转帖]格子玻尔兹曼方法的边界条件处理实例

正要找这方面的东西!谢谢版主!
发表于 2006-6-3 17:50:48 | 显示全部楼层

[转帖]格子玻尔兹曼方法的边界条件处理实例

多谢斑竹,我也正在学习LBM,并且已经加入了LBM专题论坛
发表于 2006-6-18 23:35:22 | 显示全部楼层

[转帖]格子玻尔兹曼方法的边界条件处理实例

楼主很厚道啊
转贴表明了出处,呵呵
发表于 2006-8-29 20:25:27 | 显示全部楼层

[转帖]格子玻尔兹曼方法的边界条件处理实例

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

本版积分规则

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