• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

rlee32/lbm_matlab: Lattice Boltzmann Method (LBM) codes in MATLAB for educationa ...

原作者: [db:作者] 来自: 网络 收藏 邀请

开源软件名称(OpenSource Name):

rlee32/lbm_matlab

开源软件地址(OpenSource Url):

https://github.com/rlee32/lbm_matlab

开源编程语言(OpenSource Language):

MATLAB 100.0%

开源软件介绍(OpenSource Introduction):

lbm_matlab

Lattice Boltzmann Method (LBM) codes in MATLAB for educational purposes. I developed these as a feature-wise precursor to my more serious C++ version.

IMPORTANT NOTE: The velocities in the default navier stokes versions are set to 1, which leads to breakdown of the incompressible assumption. You will need to set the velocities to proper values. Please see my c++ version for a more readily validated version.

The features I explore here in the Navier-Stokes code are (see the references section for titles and more info):

  • Arbitrary refinement: (2005 Chen et al.) and (2012 Chen). Multiple levels of refinement in the same grid.
  • Arbitrary shape wall boundary boundary condition: (2011 Li) and (1998 Chen et al.). A cut-cell volumetric wall boundary condition. As a volumetric BC, MME (mass, momentum and energy) are perfectly conserved, unlike the interpolation approaches.
  • Viscosity counteraction: (2015 Zhang et al.) and (2011 Cheng et al.). A surprisingly effective and simple way to achieve high numerical stability, allowing for orders-of-magnitude higher Reynolds number stability limits.
  • Multiple relaxation time (MRT): (2011 Mohamad) and (2015 Zhang et al.). A slightly more computationally expensive but significantly more stable than the commonly-implemented single relaxation time (SRT) method. It is noted that there seems to be inconsistencies between the (2011 Mohamad) code and textbook explanantions, namely the definition of the vector of moments.
  • RANS Spalart-Allmaras turbulence model: (2015 Pellerin et al.). Simple inclusion of RANS eddy viscosity turbulence into the relaxation time for the assumption of fully-turbulent flow.

Contents

navier_stokes

The 'navier_stokes' folder contains 2DQ9 codes for various physical configurations. There are several matlab scripts to be run that demonstrate different individual solver features. Below are explanations of each runnable script.

Lid-Driven Cavity Scripts

  • cavity_cut: features the arbitrary shape wall BC by clipping the domain of the conventional lid-driven cavity case.
  • cavity_dim: a modification of the (2011 Mohamad) code port to be more organized with respect to dimensionalization; see (2008 Latt).
  • cavity_interface: features two levels of grid refinement, with the interface along the vertical center of the cavity.
  • cavity_mohamad: a port of the code provided by (2011 Mohamad).
  • cavity_mrt: MRT version.
  • cavity_mrt_vcs: MRT version with the viscosity-counteracting approach (steady approximation). For details on the steady approximation, see (2015 Zhang et al.). About the force term (which is implicit), they suggest an explicit form good enough for near-steady-state. I use an even simpler formulation that does not use spatially adjacent terms; purely local. Seems to still work okay.
  • cavity_sa: SRT with Spalart-Allmaras turbulence model.

Simple Channel Scripts

  • channel_ext0: simple channel with a zero-gradient outlet condition. It is tehnically low-order accurate (first, I think), but it is personally my favorite due to its stability.
  • channel_ext2: simple channel with a second-order zero-gradient outlet condition. I have found it to be unstable.
  • channel_fixedp: simple channel with a zero-gradient pressure outlet condition. It is based on the explanation in (2012 Mohamad). I have found it to be unstable.
  • channel_fixedv: simple channel with a fixed velocity at the outlet. It is almost trivial, since it is not really a physically sound outlet condition.
  • channel_interface: simple channel with a zero-gradient outlet condition (as implemented in channel_ext0). It also features an interface where the cell resolution changes midway through the channel. Based on the theory of (2005 Chen et al.) and (2012 Chen).

Other Scripts

  • inlet_outlet: an almost trivial code where all boundaries are either an inlet or outlet, faciliatating an inclined freestream flow.

advection_diffusion and diffusion

Based on codes in (2012 Mohamad) for simple 1d and 2d diffusion and advection-diffusion problems. Each script within these folders can be run on its own.

References

  • (1998) Hudong Chen, Chris Teixeira, and Kim Molvig. REALIZATION OF FLUID BOUNDARY CONDITIONS VIA DISCRETE BOLTZMANN DYNAMICS.

  • (2011) Yanbing Li. AN IMPROVED VOLUMETRIC LBM BOUNDARY APPROACH AND ITS EXTENSION FOR SLIDING MESH SIMULATION.

  • (2005) Hudong Chen, O. Filippova, J. Hoch, Kim Molvig, R. Shock, Chris Teixiera, R. Zhang. GRID REFINEMENT IN LATTICE BOLTZMANN METHODS BASED ON VOLUMETRIC FORMULATION.

  • (2008) Latt, J. CHOICE OF UNITS IN LATTICE BOLTZMANN SIMULATIONS.

  • (2011) A. A. Mohamad. LATTICE BOLTZMANN METHOD: FUNDAMENTALS AND ENGINEERING APPLICATIONS WITH COMPUTER CODES.

  • (2011) Yongguang Cheng and Hui Zhang. A VISCOSITY COUNTERACTING APPROACH IN THE LATTICE BOLTZMANN BGK MODEL FOR LOW VISCOSITY FLOW: PRELIMINARY VERIFICATION.

  • (2012) Xiao-Peng Chen. APPLICATIONS OF LATTICE BOLTZMANN METHOD TO TURBULENT FLOW AROUND TWO-DIMENSIONAL AIRFOIL.

  • (2015) Chunze Zhang, Yongguang Cheng, Shan Huang, and Jiayang Wu. IMPROVING THE STABILITY OF THE MULTIPLE-RELAXATION-TIME LATTICE BOLTZMANN METHOD BY A VISCOSITY COUNTERACTING APPROACH.

  • (2015) Nicolas Pellerin, Sebastien Leclaire, and Marcelo Reggio. AN IMPLEMENTATION OF THE SPALART–ALLMARAS TURBULENCE MODEL IN A MULTI-DOMAIN LATTICE BOLTZMANN METHOD FOR SOLVING TURBULENT AIRFOIL FLOWS.




鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap