格子气自动机或格子气细胞自动机是一种用来模拟流体流动的细胞自动机。它是格子玻尔兹曼方法(英语:Lattice Boltzmann methods)的前身。通过格子气自动机的部分模型可以推导得出宏观的纳维-斯托克斯方程。20世纪90年代初,格子玻尔兹曼方法(英语:Lattice Boltzmann methods)开始兴起,对格子气自动机方法的研究则趋缓了。
细胞自动机模型中,晶格格点具有有限的离散状态。在格子气自动机模型中,这些离散状态用以表示具有不同速度的粒子。流体模拟在离散的时间序列中演进,在每个时间步长后,格点的状态可由该时间步长前此格点与相邻格点的状态确定。
每个格点以一系列布尔值来描述给定位置上各速度方向是否有粒子存在。
每个时间步长的状态演进都分为两个阶段,即迁移和碰撞。
迁移:除非发生碰撞,每个粒子将沿它的速度方向向距离最近的格点移动,并维持该速度。泡利不相容原理还要求同一格点同一速度方向的粒子最多只能有一个。
碰撞:碰撞规则用于确定多个粒子到达同一格点时粒子的行为方式,并应满足质量守恒与动量守恒。 请注意,泡利不相容原理并不影响同一格点的两个粒子以相反方向迁移。
在1973年和1976年发表的论文中,Hardy,Pomeau和de Pazzis提出了首个格子气自动机模型,后根据三位作者的名字命名为HPP模型。HPP模型是一个二维的流体粒子相互作用模型,其晶格为正方形,粒子以单位速度独立运动。粒子可以移动至相邻的四个晶格而不能沿对角方向移动。
发生对头碰撞时,如一个向左移动的粒子与一个向右移动的粒子到达同一个格点,则两个粒子的速度将分别旋转90°离开该格点。
HPP模型缺乏旋转不变性,从而使模型具有高度各向异性。 例如,HPP模型产生的涡流是正方形的。
1986年,乌里尔·弗里施(英语:Uriel Frisch),布罗斯·哈斯拉彻(英语:Brosl Hasslacher)和伊夫·波莫(英语:Yves Pomeau)在论文中首次提出了以规则六边形为晶格的二维格子气自动机模型,即FHP模型。在基本FHP模型(又称FHP-I模型)中,流体粒子具有指向相邻的6个晶格的6种离散速度,碰撞规则包括对头二体碰撞和对称三体碰撞;在此基础上,FHP-II模型引入了代表粒子静止的第七种速度,其碰撞规则相应增加了含静止粒子的碰撞及非对称三体碰撞;FHP-III模型更进一步引入了对称四体碰撞,至此包括了能满足质量和动量守恒的所有碰撞规则。 碰撞次数的增加会增大雷诺数,因此与FHP-I模型相比,FHP-II和FHP-III模型可以模拟粘性更小的流体。
与HPP模型不同,FHP模型中满足质量、动量守恒的碰撞规则具有不确定性,部分碰撞类型会产生两种结果,此情况下会随机选择其中一种,相应粒子也将依照两种碰撞结果之一迁移。由于纯计算方法不能生成随机数,因此通常采用伪随机算法。
FHP模型比HPP模型具有更好的对称性,但这一结论并不显然。
对于三维晶格,唯一能密铺三维空间的规则多面体是立方体,而唯一能密铺三维空间、具有足够大对称性(否则模型将具有和HPP模型类似的缺陷)的多胞形组合是十二面体和二十面体。因此,模拟三维流场需要增加晶格的维数,例如1986年D'Humières,Lallemand和Frisch提出的面心超立方体模型。
可以通过每个格点的粒子数来计算格点的密度,以对应单位速度加权求和即可获得该位置的动量。此计算过程会受到大量噪声的影响,在模拟中应在较大区域内取均值以获得更合理的结果。通常使用系综平均(英语:Ensemble average)进一步降低统计噪声。
格子气自动机的主要优势是只涉及布尔运算因此避免了舍入误差,且作为细胞自动机具有天然的并行性。
其不足之处在于缺乏伽利略不变性(英语:Galilean invariance)和随机因素造成的统计噪声。另外,格子气自动机难以直接扩展至三维情形,需要引入更高维度来维持足够的对称性。