Homework2: 2D FVM Compressible CFD Solver for multiblock structured mesh

2D FVM Compressible CFD Solver for multiblock structured mesh in Taichi language

Github repo传送

主要目标

  • 尝试Taichi语言的特性,如向量化,data oriented feature,自动并行,meta programming等
  • 构建FVM形式的CFD求解器的startup framework
  • 主要基于可压缩流体
  • FVM及支持多块网格,以用于更复杂的边界外形和网格变形

Features

  • FVM, structured
  • Euler and Navier-Stokes equations (WIP, laminar diffusion coefficients, validation still needed with test cases)
  • Convection Riemann solvers: van Leer / modified Roe / Roe-RHLL methods (Validation still needed)
  • Interpolation / cell integration with adjacent cells (Currently simple 1st to quasi-2nd order)
  • RK3 time marching
  • Dual time marching with RK3 (WIP, convergence problems exist and validations are needed)
  • Virtual votexes
  • Interconnection boundary data transfer between block surfaces
  • Simple GUI and plot output on-the-fly

测试用例

supersonic wedge

wedge

blunt shock wave around cylinder

cylinder

forward-facing step

forwardstep

后续问题及感想

  • Bug fixes
  • Can Taichi’s autodiff feature be applicated on FVM?
  • 高阶方法,Multigrid,Implict等实现
  • Unstructured mesh FVM
  • Levelset, multiphase simulations, fluid-solid interactions, etc.

关于Taichi的语法,文档及使用上遇到的问题,之后再总结

Bibliography

[1] Hiroaki Nishikawa and Keiichi Kitamura. Very simple, carbuncle-free, boundary-layer-resolving, rotated-hybrid Riemann solvers. Journal of Computational Physics 227 (2008) 2560–2581

[2] Jameson, Antony. (1991). Time dependent calculations using multigrid, with applications to unsteady flows past airfoils and wings. 10.13140/2.1.2459.3608.

[3] Celik, Bayram & Turk, Adem. (2017). A 2-D Finite Volume Navier-Stokes Solver for Supersonic Flows. Anadolu University Journal of Science and Technology A- Applied Sciences and Engineering. 18. 10.18038/aubtda.298656.

5 个赞

又冒出来一个专业CFD选手 :+1:

感觉这个算例得出的结果和groundtruth看起来简直一模一样,哈哈。

去GitHub看了一眼代码,Solver.py 有点厉害,我也得去学习一把了!