1. 引言
非线性Schrödinger方程是孤立光学方程的必要组成部分,有助于理解非线性光学、原子物理和量子场论等多种过程[1] [2]。KDV方程在流体动力学、等离子体物理学等领域发挥着重要作用,例如在等离子体物理学中产生了离子声学解,在地球物理流体动力学中表征了深海和潜水中的长波[3]。在实际物理系统中,不同波动模式会相互作用,因此将两个方程结合,得到耦合NLS-KDV方程。耦合NLS-KDV方程是非线性演化方程在等离子体物理学中的一个关键系统,控制着沿第三个非谐波介质的能量传递问题的长波极限[1],用于在以离子声速度运动的坐标系统中模拟一维朗缪尔波和离子声波的非线性动力学[4],描述了尘埃等离子体中的各种过程,如朗缪尔波、尘埃声波和电磁波的波动[5]。在数值计算方面,目前该方程的求解方法有有限元法[6] [7]、无网格法[8]、分解法[9]、同伦摄动法[10]和变分迭代法[11] [12]等。这些方法的迭代格式复杂,应用灵活性较差,不利于处理复杂的边界条件,也无法进行大规模并行计算。
格子Boltzmann方法(Lattice Boltzmann Method, LBM)已经广泛地被认为是描述流体运动与处理工程问题的有效手段[13] [14]。LBM已逐步应用于很多偏微分方程的求解,如长短波方程[15],EFK方程[16],STO方程[17],Burgers方程[18]等。LBM具备易于并行计算、程序易于实施等优势。因此,笔者利用LBM求解一维NLS-KDV方程的初边值问题。
2. NLS-KDV方程的格子Boltzmann模型
在长波和短波之间的非线性相互作用中,基于弱非线性假设,两种典型的相互作用方程可以统一为具有如下标准形式的NLS-KDV方程:
(1)
其中:
和
为常数;
是用来描述朗缪尔振荡电场的复值函数,
是用来描述低频密度扰动的实值函数;
和
分别为已知的复函数和实函数。
对方程(1)采用D1Q5模型,构造格子Boltzmann演化方程为:
(2)
其中:
为
处粒子的分布函数,
为
处粒子在平衡状态下的分布函数;
和
为修正函数;
为Kundsen (克努森)数,
为格子速度,
表示不同方向的离散格子速度,
为弛豫时间。
将(2)式左边利用Taylor公式展开,得到
(3)
对(3)式进行Chapman-Enskog多尺度展开:
(4)
令
,将(4)式代入(3)式,并比较
同阶项的系数,可得
(5)
(6)
(7)
由(5)式和(6)式可以推导出
(8)
在(5)式和(8)式的基础上,用(7)式推导出
(9)
对(5) (8) (9)式两边关于
求和,可得:
(10)
(11)
(12)
其中:
2.1. LBM模型
在D1Q5模型的基础上,建立一维方程的格子玻尔兹曼模型,离散速度为
2.1.1. 恢复NLS方程
当
时,为了恢复NLS方程,选择满足
(13)
的平衡态分布函数
和修正函数
(14)
将(13) (14)式代入(10)~(12)式,可得
(15)
(16)
(17)
将
可以恢复出如下形式的NLS方程:
2.1.2. 恢复KDV方程
当
时,为了恢复KDV方程,选择满足
(18)
(19)
的平衡态分布函数
和修正函数
(20)
将(18)~(20)式代入(10)~(12)式,可得
(21)
(22)
(23)
将
,可以恢复出如下形式的KDV方程:
3. 数值算例
现给出一维NLS-KDV方程的两个数值算例,用来验证建立的格子Boltzmann模型对求解此方程的有效性。为了分析初边值问题LBM解和精确解之间的误差精度,引入全局相对误差(Global Relative Error,符号为
)和最大绝对误差(Maximum Absolute Error,符号为
),定义如下:
其中:
分别为
处的数值解和精确解。
3.1. 算例1
考虑方程(1)中参数
函数
此时方程(1)有如下解析解:
设置该例求解的区间范围为
。图1是在
条件下,
和
的精确解和LBM解。由图1可知,LBM解与精确解吻合得较好,具有很好的一致性,说明模型具有较高的可靠性。图2分别给出了
和
在
时的LBM解的三维演化结果图以及精确解在时间和空间的分布图,可以看出数值解和精确解有很好的相似性。表1是
时不同网格数下
和
的误差,表2是
时不同时刻
和
的误差,可以看出全局相对误差和最大绝对误差都达到
精度,说明模型的求解精度较高。
(a)
(b)
Figure 1. Evolution of exact solutions and LBM numerical solutions
图1. 精确解和LBM数值解的演化
Table 1. Global relative error and maximum absolute error of u and v with different N when T = 1
表1. T = 1时不同网格数下u和v的全局相对误差和最大绝对误差
误差 |
N |
40 |
60 |
80 |
100 |
120 |
|
67.946 |
27.716 |
15.773 |
9.6757 |
6.9809 |
|
17.534 |
17.069 |
8.0779 |
6.3539 |
5.1506 |
|
87.325 |
28.169 |
15.157 |
10.644 |
7.9288 |
|
28.757 |
25.202 |
13.786 |
10.880 |
9.9770 |
Table 2. Global relative error and maximum absolute error of u and v with different T
表2. 不同时刻T下u和v的全局相对误差和最大绝对误差
误差 |
T |
0.2 |
0.4 |
0.6 |
0.8 |
1 |
|
3.1279 |
5.2708 |
6.3663 |
7.2294 |
6.9809 |
|
8.1168 |
7.0354 |
5.4325 |
4.6511 |
5.1506 |
|
3.7756 |
5.2574 |
6.2732 |
6.7194 |
7.9288 |
|
1.6345 |
3.9306 |
5.7468 |
7.8233 |
9.9770 |
3.2. 算例2
考虑方程(1)中参数
函数
此时方程(1)有如下解析解:
(a) (b)
(c) (d)
Figure 2. Evolution of exact solutions and LBM numerical solutions: (a) numerical solution of u; (b) exact solution of u; (c) numerical solution of v; (d) exact solution of v
图2. 精确解和LBM数值解的演化:(a) u的数值解;(b) u的精确解;(c) v的数值解;(d) v的精确解
(a)
(b)
Figure 3. Evolution of exact solutions and LBM numerical solutions
图3. 精确解和LBM数值解的演化
设置该例求解的区间范围为
。图3是在
条件下,
和
的精确解和LBM解。由图3可知,LBM解与精确解吻合得较好,具有很好的一致性,说明模型具有较高的可靠性。表3是
时不同网格数下
和
的误差,表4是
时不同时刻
和
的误差,可以看出全局相对误差和最大绝对误差都达到
精度,说明模型的求解精度较高。
Table 3. Global relative error and maximum absolute error of u and v with different N when T = 1
表3. T = 1时不同网格数下u和v的全局相对误差和最大绝对误差
误差 |
N |
60 |
90 |
120 |
150 |
180 |
|
50.049 |
23.905 |
14.502 |
9.9713 |
7.3721 |
|
38.138 |
17.578 |
10.349 |
6.8545 |
5.2158 |
|
26.647 |
12.817 |
8.6151 |
6.0742 |
4.5503 |
|
45.782 |
21.559 |
11.564 |
7.4338 |
5.6430 |
Table 4. Global relative error and maximum absolute error of u and v with different T
表4. 不同时刻T下u和v的全局相对误差和最大绝对误差
误差 |
T |
0.2 |
0.4 |
0.6 |
0.8 |
1 |
|
3.9149 |
5.3276 |
6.4918 |
7.4508 |
7.3721 |
|
8.4048 |
6.2536 |
6.3615 |
5.4409 |
5.2158 |
|
4.6479 |
3.2862 |
3.5933 |
4.0468 |
4.5503 |
|
1.5953 |
2.7316 |
4.0137 |
4.6579 |
5.6430 |
4. 结语
笔者构建了双分布函数的一维格子Boltzmann模型,通过在模型中加入修正项函数来灵活地处理NLS-KDV方程中的非线性项和计算过程中产生的误差项,从而恢复出宏观方程。数值算例结果表明,数值解与精确解拟合较好,说明双分布函数的格子Boltzmann模型求解一维NLS-KDV方程的初边值问题是有效的。接下来,笔者将利用该格子Boltzmann模型求解高维情形的NLS-KDV方程,并将其推广到更高阶偏微分方程的数值求解中,以拓宽模型的应用范围。