注:本文同步也发表在我的独立博客中。
由于我现在正试图用Numpy来实现 Lattice Boltzmann method 的算法,也会涉及到一些简单的后处理功能。这里的后处理具体的说是输出一些关于流场的图像问题,因为输出单点的信息没有任何难度。而图像输出主要是依靠 Matplotlib 这个强大的库来完成。后续如果要做进一步的后处理的话,应该还是要学一学如何导出数据到专业后处理软件中,但就调试过程而言,能及时输出一些直观的图像是十分必要的。
我现在采用的办法是把关于流场的属性存储于数组中(rho[nx*ny]、u[nx*ny*2] 等),用 node 编号来索引具体的数值。这种情况,因为还不涉及格子单位和物理单位的转换,后处理的逻辑还是比较简单的。一般地说来,会用到的图像可分为两类,一类是标量场,主要是云图,另一类是矢量场,主要是矢量图(vector graph)和流线图。这两类图形的绘制方法都很接近,掌握一种的话,通过查询官方在线文档,基本都可以很快找到另外几种的用法。
例如,对于标量场,如密度场 rho[nx*ny],可以用