Computer Physics Communications ( IF 7.2 ) Pub Date : 2021-03-29 , DOI: 10.1016/j.cpc.2021.107954 A.V. Chikitkin , E.K. Kornev , V.A. Titarev
The paper presents a new solver for the numerical solution of the Boltzmann kinetic equation with the Shakhov model collision integral (S-model) for arbitrary spatial domains. The numerical method utilizes the Tucker decomposition, which reduces the required computer memory for up to 100 times, even on a moderate velocity grid. This improvement is achieved by representing the distribution function values on a structured velocity grid as a 3D tensor in the Tucker format. The resulting numerical method makes it possible to solve complex 3D problems on modern desktop computers. Our implementation may serve as a prototype code for researchers concerned with the numerical solution of kinetic equations in 3D domains using a discrete velocity method.
Program summary
Program Title: Boltzmann-T
CPC Library link to program files: https://doi.org/10.17632/29wv8nmbgn.1
Developer’s repository link: https://github.com/chikitkin/Boltzmann-Tucker
Licensing provisions: MIT
Programming language: Python 3
External libraries: Solver is based on the customized version of the tucker3d library [1]
Nature of problem: Numerical solution of the Boltzmann kinetic equation with the S-model collision integral in an arbitrary 3D spatial domain
Solution method: Discrete velocity method utilizing tensor decomposition for memory reduction
Additional comments including restrictions and unusual features: At present, 1st order advection scheme is used, solver supports unstructured hexagonal meshes written in StarCD ASCII format
Reference tucker3d (https://github.com/rakhuba/tucker3d) library contains Python implementations of several important procedures for working with tensors in the Tucker format.
中文翻译:
张量分解的S型碰撞积分玻尔兹曼方程的数值解
本文提出了一种新的求解器,用于求解带有任意空间域的Shakhov模型碰撞积分(S模型)的Boltzmann动力学方程的数值解。数值方法利用了Tucker分解,即使在中等速度的网格上,它也可以将所需的计算机内存减少多达100倍。通过将结构化速度网格上的分布函数值表示为Tucker格式的3D张量来实现此改进。所得的数值方法使解决现代台式计算机上的复杂3D问题成为可能。对于使用离散速度方法在3D域中的动力学方程的数值解的研究人员来说,我们的实现可以用作原型代码。
计划摘要
节目名称: Boltzmann-T
CPC库链接到程序文件: https : //doi.org/10.17632/29wv8nmbgn.1
开发人员的资料库链接: https : //github.com/chikitkin/Boltzmann-Tucker
许可条款:麻省理工学院
编程语言: Python 3
外部库: Solver基于tucker3d库的自定义版本[1]
问题性质:在任意3D空间域中具有S模型碰撞积分的玻尔兹曼动力学方程的数值解
解决方法:利用张量分解的离散速度法进行记忆约简
其他注释,包括限制和异常功能:当前,使用一阶对流方案,求解器支持以StarCD ASCII格式编写的非结构化六角形网格
参考tucker3d(https://github.com/rakhuba/tucker3d)库包含使用Tucker格式处理张量的几个重要过程的Python实现。