1047 lines
42 KiB
TeX
1047 lines
42 KiB
TeX
% Copyright (c) 2014,2016,2018 Casper Ti. Vector
|
|
% Public domain.
|
|
|
|
\chapter{数值实验}
|
|
|
|
|
|
% commands used in this section
|
|
\providecommand{\Tnu}{\texttt{nu}}
|
|
\providecommand{\Tumin}{\texttt{umin}}
|
|
\providecommand{\Tumax}{\texttt{umax}}
|
|
\providecommand{\MshKnd}[1]{\texttt{#1}}
|
|
\providecommand{\MKlvl}[2]{\MshKnd{#1}$_{#2}$}
|
|
\providecommand{\NSCHM}{DS}
|
|
\providecommand{\VILS}{LSW}
|
|
\providecommand{\CPU}{\texttt{CPU}}
|
|
\providecommand{\Niter}{\texttt{iter}}
|
|
\providecommand{\NVI}{eLSW}
|
|
|
|
本章介绍一系列数值实验, 目的是测试菱形格式搭配不同顶点插值算法的精度和效率.
|
|
我们这里用eLSW(b)和eLSW(d)表示采用广度优先搜索(breadth-first search, BFS)和深度优先搜索(depth-first search, DFS)策略的扩展最小二乘插值算法eLSW.
|
|
默认情况下选择eLSW(d), 并且在没有歧义的情况下我们省略标记(d).
|
|
在某些测试中, 我们还测试了最小二乘插值LSW\parencite{Coudiere1999}、三维线性精确显权LPEW3\parencite{Ricardo2021}以及经典的多点流格式MPFA-O作为对比.
|
|
|
|
|
|
数值解和法向流的误差通过以下方式评估:
|
|
\begin{align}
|
|
E_{u} & = \left (
|
|
\frac{\sum _{K\in \mathcal{M}}(u(\bm{x}_{K})-u_{K})^{2}|K|}
|
|
{\sum _{K\in \mathcal{M}}(u(\bm{x}_{K}))^{2}|K|}
|
|
\right )^{1/2} ,
|
|
\\
|
|
E_{q} & = \left (
|
|
\frac{\sum _{\sigma \in \mathcal{S}}(q(\bm{x}_{\sigma})-q_{\sigma})^{2}Q_{\sigma}}
|
|
{\sum _{\sigma \in \mathcal{S}}{(q(\bm{x}_{\sigma}))^{2}}Q_{\sigma}}
|
|
\right )^{1/2} ,
|
|
\end{align}
|
|
其中$Q_{\sigma }$是网格面$\sigma$两侧的单元体积之和,
|
|
并且$q=-\Lambda \nabla u \cdot \bm{n}$表示网格面上单位面积的法向流.
|
|
此外, $q(\bm{x}_{\sigma })$和$q_{\sigma }$分别表示精确的法向流和数值解的法向流.
|
|
我们引入以下附加符号:
|
|
\begin{itemize}
|
|
\item \texttt{nu}, 表示单元中心未知量个数;
|
|
\item \texttt{umin}, 表示数值解的最小值;
|
|
\item \texttt{umax}, 表示数值解的最大值;
|
|
\item \texttt{CPU}, 表示CPU时间, 单位为秒.
|
|
\end{itemize}
|
|
我们按如下方式计算收敛阶
|
|
\begin{equation}
|
|
R_{\alpha}(i) = -3
|
|
\frac{\log (E_{u}(i)/E_{u}(i-1))}
|
|
{\log (\texttt{nu}(i)/\texttt{nu}(i-1))} ,\quad i\geq 2 ,\quad
|
|
\alpha =u,q,
|
|
\end{equation}
|
|
其中$i$是网格层的编号.
|
|
这里需要说明, CPU时间的测量不包含网格数据的计算.
|
|
当\texttt{nu}较小的时候, 总计算量也较小, 计算很快就完成, 此时计时器显示的CPU时间可能不够精确.
|
|
|
|
主要测试的网格如图\ref{fig:meshes}所示, 其中网格\texttt{B}和网格\texttt{H}的网格数据取自\parencite{FVCA6},
|
|
而Kershaw网格\texttt{D}和随机扰动网格\texttt{R}则是通过特定策略从均匀正交网格移动每个节点生成的.
|
|
三维Kershaw网格的坐标变换策略在\parencite{Morel2001}的第5节中有详细描述.
|
|
在每个细网格层上, 我们将Kershaw网格\texttt{D}的扰动因子设为$0.2$.
|
|
我们通过以下变换将单位立方体$[0,1]^{3}$中的网格步长为$h$的均匀网格映射为随机扰动网格:
|
|
\begin{equation}
|
|
x:=x+\epsilon\xi_{x}h
|
|
,\quad
|
|
y:=y+\epsilon\xi_{y}h
|
|
,\quad
|
|
z:=z+\epsilon\xi_{z}h
|
|
,
|
|
\end{equation}
|
|
其中$\xi_{x}$, $\xi_{y}$与$\xi_{z}$是区间$[0,1)$上服从均匀分布的随机数,
|
|
$\epsilon\in[0,0.5]$表示扰动幅度, 也称之为扰动因子.
|
|
注意到在$x=0$和$x=1$的边界面上$\xi_{x}$应当设置为0, 同样的设置也应用于$y$和$z$方向.
|
|
随机扰动网格的内表面可能不是平面. 网格的下标表示相应的网格层级.
|
|
\texttt{R}($\epsilon$)表示扰动因子为$\epsilon$的随机扰动网格.
|
|
所有测试算例均有解析的扩散张量和解析解. 源项和边界数据可据此计算得出. 所有测试仅考虑Dirichlet边界条件.
|
|
我们通过BICGSTAB求解线性系统, 容差为1.0E-15.
|
|
\begin{figure}[!htbp]
|
|
\centering
|
|
\def\mpgw{0.40\textwidth}
|
|
\begin{minipage}[b]{\mpgw}
|
|
\centering
|
|
\includegraphics[width=\textwidth]{../img/mesh_B2.eps}
|
|
\\
|
|
(a) 网格\MKlvl{B}{2}
|
|
\end{minipage}
|
|
~
|
|
\begin{minipage}[b]{\mpgw}
|
|
\centering
|
|
\includegraphics[width=\textwidth]{../img/mesh_D1_0_8.eps}
|
|
\\
|
|
(b) 网格\MKlvl{D}{1}
|
|
\end{minipage}
|
|
\\
|
|
~
|
|
\begin{minipage}[b]{\mpgw}
|
|
\centering
|
|
\includegraphics[width=\textwidth]{../img/mesh_H3.eps}
|
|
\\
|
|
(c) 网格\MKlvl{H}{3}
|
|
\end{minipage}
|
|
~
|
|
\begin{minipage}[b]{\mpgw}
|
|
\centering
|
|
\includegraphics[width=\textwidth]{../img/mesh_R2_0_02.eps}
|
|
\\
|
|
(d) 网格\MKlvl{R}{2}(0.2)
|
|
\end{minipage}
|
|
\caption{多面体网格示意图.}
|
|
\label{fig:meshes}
|
|
\end{figure}
|
|
|
|
\section{线性精确验证}
|
|
\label{sec:testlpchk}
|
|
|
|
我们将文献\parencite{FVCA5}中的算例6扩展为三维算例, 这个问题的三维扩展情形也在文献\parencite{Ricardo2021}中进行了测试.
|
|
计算区域$\Omega=[0,1]^{3}$, 被分为三个子区域:
|
|
\begin{align*}
|
|
& \Omega _{1}=\left \{(x, y, z) \in \Omega \mid \phi _{1}(x, y, z)<0
|
|
\right \},
|
|
\\
|
|
& \Omega _{2}=\left \{(x, y, z) \in \Omega \mid \phi _{1}(x, y, z)>0,
|
|
\quad \phi _{2}(x, y, z)<0\right \},
|
|
\\
|
|
& \Omega _{3}=\left \{(x, y, z) \in \Omega \mid \phi _{2}(x,
|
|
y, z)>0\right \},
|
|
\end{align*}
|
|
其中$\phi _{1}(x,y,z) = y-\delta (x-0.5)-0.475$, 并且$\phi _{2}(x,y,z) = \phi _{1}(x,y,z)-0.05$.
|
|
这里我们取$\delta=0.2$.
|
|
解析解和扩散系数为
|
|
\begin{equation*}
|
|
u(x,y,z) = -x - \delta y
|
|
\end{equation*}
|
|
以及
|
|
\begin{equation*}
|
|
\Lambda =
|
|
\begin{pmatrix}
|
|
\cos(\theta) & -\sin(\theta) & 0 \\
|
|
\sin(\theta) & \cos(\theta) & 0 \\
|
|
0 & 0 & 1
|
|
\end{pmatrix}
|
|
\begin{pmatrix}
|
|
\alpha & 0 & 0 \\
|
|
0 & \beta & 0 \\
|
|
0 & 0 & 1
|
|
\end{pmatrix}
|
|
\begin{pmatrix}
|
|
\cos(\theta) & \sin(\theta) & 0 \\
|
|
-\sin(\theta) & \cos(\theta) & 0 \\
|
|
0 & 0 & 1
|
|
\end{pmatrix},
|
|
\end{equation*}
|
|
其中$\theta=\arctan(\delta)$, 这里$\alpha$和$\beta$取为
|
|
\begin{equation*}
|
|
\begin{pmatrix}
|
|
\alpha \\ \beta
|
|
\end{pmatrix}
|
|
=
|
|
\begin{pmatrix}
|
|
100 \\ 10
|
|
\end{pmatrix}
|
|
\text{ 在 }
|
|
\Omega_{2}
|
|
,\quad
|
|
\begin{pmatrix}
|
|
\alpha \\ \beta
|
|
\end{pmatrix}
|
|
=
|
|
\begin{pmatrix}
|
|
1 \\ 0.1
|
|
\end{pmatrix}
|
|
\text{ 在 }
|
|
\Omega_{1}
|
|
\cup
|
|
\Omega_{3}.
|
|
\end{equation*}
|
|
|
|
图\ref{fig:meshlpchk}展示了本次测试所用的网格.
|
|
\begin{figure}[!htpb]
|
|
\centering
|
|
\includegraphics[width=0.45\textwidth]{../img/mesh_TD1.eps}
|
|
\caption{与平面$\phi_{1}=0$和$\phi_{2} = 0$排列一致的四面体网格.}
|
|
\label{fig:meshlpchk}
|
|
\end{figure}
|
|
测试结果见表\ref{tab:rstlpchk}, 从中我们可以发现, 对于此次测试, 我们的算法获得了机器精度的精确解.
|
|
\begin{table}[!htpb]
|
|
\newcommand{\itpt}[1]{\multicolumn{3}{c}{#1}}
|
|
\newcommand{\itnvi}[1]{\itpt{eLSW(#1)}}
|
|
\centering
|
|
\caption{算例\ref{sec:testlpchk}的数值结果.}\label{tab:rstlpchk}
|
|
\begin{tabular}{ccccccc}
|
|
\toprule
|
|
& \itnvi{d} & \itnvi{b} \\
|
|
\cline{2-4}\cline{5-7}
|
|
\texttt{nu} & \texttt{umin} & \texttt{umax} & $E_{u}$ & \texttt{umin} & \texttt{umax} & $E_{u}$ \\
|
|
\midrule
|
|
2449 & -1.147 & -5.297E-02 & 1.529E-15 & -1.147 & -5.297E-02 & 1.763E-15 \\
|
|
60070 & -1.174 & -2.575E-02 & 2.057E-14 & -1.174 & -2.575E-02 & 2.548E-14 \\
|
|
\bottomrule
|
|
\end{tabular}
|
|
\end{table}
|
|
|
|
|
|
\section{弱各向异性}
|
|
\label{sec:testmild}
|
|
|
|
接下来, 我们考虑一个弱各向异性问题, 该问题在\parencite{FVCA6}中给出.
|
|
扩散张量为
|
|
\begin{equation*}
|
|
\Lambda=
|
|
\begin{pmatrix}
|
|
1 & 0.5 & 0 \\
|
|
0.5 & 1 & 0.5 \\
|
|
0 & 0.5 & 1
|
|
\end{pmatrix} ,
|
|
\end{equation*}
|
|
解析解为
|
|
\begin{equation*}
|
|
u(x, y, z)
|
|
=1+\sin (\pi x) \sin \left(\pi\left(y+\frac{1}{2}\right)\right) \sin \left(\pi\left(z+\frac{1}{3}\right)\right).
|
|
\end{equation*}
|
|
|
|
网格\texttt{B}, \texttt{D}, \texttt{H}以及\texttt{R}(0.2)的测试结果在表\ref{tab:mildmeshB}-表\ref{tab:mildmeshR2}中给出.
|
|
随机扰动网格\texttt{R}(0.3)与\texttt{R}(0.4)的测试结果在图\ref{fig:mildrandomresults}中用双对数坐标给出.
|
|
正如\ref{ch2:sec:vtxintrp}节的论述, 这个算例的扩散系数是常数, 扩展的最小二乘插值算法退化为经典的最小二乘插值算法,
|
|
从数值结果也可以看出, eLSW(d)与eLSW(b)以及LSW给出相同的数值解.
|
|
那么对于eLSW(b)和LSW, 我们仅给出CPU时间.
|
|
从这些结果中, 我们可以发现菱形格式在网格\texttt{B}, \texttt{H}以及\texttt{R}达到最优的精度.
|
|
对于Kershaw网格, 随着网格细化, 收敛率在增加, 在Kershaw网格的第6级时接近最优收敛阶.
|
|
对于Kershaw网格, 从第2级开始, 线性迭代解法器无法求解搭配LPEW3的菱形格式产生的线性系统, 我们在表格中用$\ast $代替,
|
|
那么搭配LPEW3的菱形格式在Kershaw网格剩余层级的测试被取消.
|
|
我们发现搭配LPEW3的菱形格式在随机扰动网格\texttt{R}(0.3)和\texttt{R}(0.4)表现不佳.
|
|
经典的多点流格式MPFA-O在这个算例中获得最佳的结果.
|
|
此外, eLSW(d), eLSW(b)与LSW具有相当的计算效率,
|
|
额外增加的搜索所占的时间相对于整体计算的占比不到百分之二,
|
|
这可以从本次测试的CPU时间中看出.
|
|
|
|
|
|
% tet
|
|
{
|
|
\begin{table}[!htpb]
|
|
\newcommand{\MRc}[1]{\multirow{5}{*}{#1}}
|
|
\newcommand{\TDnvi}[1]{\MRc{eLSW(#1)}}
|
|
\newcommand{\TDew}{\MRc{LPEW3}}
|
|
\newcommand{\TDmpfa}{\MRc{MPFA-O}}
|
|
\centering
|
|
\caption{算例\ref{sec:testmild}: 四面体网格\texttt{B}上使用eLSW(b), eLSW(d), LSW, LPEW3的菱形格式以及MPFA-O计算结果.}\label{tab:mildmeshB}
|
|
\centering\zihao{-5}
|
|
\begin{tabular}{cccccccccc}
|
|
\toprule
|
|
\texttt{nu} & & 44 & 215 & 2003 & 3898 & 7711 & 15266 & 30480 & 61052
|
|
\\
|
|
\midrule
|
|
\multirow{5}{*}{eLSW(d)} & $E_{u}$ & 2.59E-01 & 1.08E-01 & 2.63E-02 & 1.66E-02 & 1.07E-02 & 6.86E-03 & 4.25E-03 & 2.70E-03
|
|
\\
|
|
& $R_{u}$ & -- & 1.66 & 1.90 & 2.09 & 1.91 & 1.97 & 2.08 & 1.97
|
|
\\
|
|
& $E_{q}$ & 8.80E-01 & 4.39E-01 & 1.05E-01 & 7.55E-02 & 5.28E-02 & 3.95E-02 & 2.90E-02 & 2.17E-02
|
|
\\
|
|
& $R_{q}$ & -- & 1.31 & 1.92 & 1.50 & 1.57 & 1.28 & 1.33 & 1.25
|
|
\\
|
|
& \texttt{CPU} & 0.01 & 0.01 & 0.18 & 0.59 & 1.73 & 5.37 & 15.83 & 44.14
|
|
\\
|
|
\hline
|
|
eLSW(b) & \texttt{CPU} & 0.01 & 0.01 & 0.19 & 0.58 & 1.74 & 5.37 & 15.95 & 44.24
|
|
\\
|
|
\hline
|
|
LSW & \texttt{CPU} & 0.00 & 0.01 & 0.18 & 0.57 & 1.71 & 5.35 & 15.80 & 43.88
|
|
\\
|
|
\hline
|
|
\multirow{5}{*}{LPEW3} & $E_{u}$ & 2.59E-01 & 1.10E-01 & 2.72E-02 & 1.72E-02 & 1.11E-02 & 7.15E-03 & 4.43E-03 & 2.82E-03
|
|
\\
|
|
& $R_{u}$ & -- & 1.62 & 1.88 & 2.07 & 1.90 & 1.95 & 2.08 & 1.95
|
|
\\
|
|
& $E_{q}$ & 8.80E-01 & 4.32E-01 & 1.03E-01 & 7.36E-02 & 5.20E-02 & 3.92E-02 & 2.89E-02 & 2.16E-02
|
|
\\
|
|
& $R_{q}$ & -- & 1.35 & 1.93 & 1.50 & 1.52 & 1.25 & 1.33 & 1.25
|
|
\\
|
|
& \texttt{CPU} & 0.09 & 0.13 & 0.27 & 0.74 & 2.08 & 6.02 & 16.96 & 46.81
|
|
\\
|
|
\hline
|
|
\multirow{5}{*}{MPFA-O} & $E_{u}$ & 6.27E-02 & 2.74E-02 & 5.68E-03 & 3.96E-03 & 2.38E-03 & 1.60E-03 & 9.68E-04 & 6.11E-04
|
|
\\
|
|
& $R_{u}$ & -- & 1.56 & 2.12 & 1.63 & 2.24 & 1.75 & 2.17 & 1.99
|
|
\\
|
|
& $E_{q}$ & 2.80E-01 & 1.56E-01 & 6.09E-02 & 4.86E-02 & 3.72E-02 & 2.96E-02 & 2.34E-02 & 1.84E-02
|
|
\\
|
|
& $R_{q}$ & -- & 1.11 & 1.26 & 1.01 & 1.17 & 1.01 & 1.02 & 1.03
|
|
\\
|
|
& \texttt{CPU} & 0.02 & 0.04 & 0.25 & 0.68 & 1.91 & 5.25 & 14.66 & 39.30
|
|
\\
|
|
\bottomrule
|
|
\end{tabular}
|
|
\end{table}
|
|
}
|
|
% Kershaw
|
|
\begin{table}[!htpb]
|
|
\newcommand{\MRc}[1]{\multirow{5}{*}{#1}}
|
|
\newcommand{\TDnvi}[1]{\MRc{eLSW(#1)}}
|
|
\newcommand{\TDew}{\MRc{LPEW3}}
|
|
\newcommand{\TDmpfa}{\MRc{MPFA-O}}
|
|
\centering
|
|
\caption{算例\ref{sec:testmild}: Kershaw网格\texttt{D}上使用eLSW(b), eLSW(d), LSW, LPEW3的菱形格式以及MPFA-O计算结果.}\label{tab:mildmeshD}
|
|
\begin{tabular}{cccccccc}
|
|
\toprule
|
|
\texttt{nu} & & 512 & 4096 & 32768 & 262144 & 2097152 & 16777216
|
|
\\
|
|
\midrule
|
|
\multirow{5}{*}{eLSW(d)} & $E_{u}$ & 6.03E-02 & 3.08E-02 & 1.88E-02 & 8.68E-03 & 2.99E-03 & 8.45E-04
|
|
\\
|
|
& $R_{u}$ & -- & 0.97 & 0.71 & 1.11 & 1.54 & 1.82
|
|
\\
|
|
& $E_{q}$ & 6.54E-01 & 2.74E-01 & 1.31E-01 & 5.57E-02 & 1.92E-02 & 5.73E-03
|
|
\\
|
|
& $R_{q}$ & -- & 1.26 & 1.06 & 1.24 & 1.54 & 1.75
|
|
\\
|
|
& \texttt{CPU} & 0.03 & 0.23 & 3.05 & 35.20 & 335.11 & 3267.10
|
|
\\
|
|
\hline
|
|
eLSW(b) & \texttt{CPU} & 0.03 & 0.22 & 3.08 & 34.85 & 335.30 & 3209.61
|
|
\\
|
|
\hline
|
|
LSW & \texttt{CPU} & 0.02 & 0.20 & 2.83 & 33.24 & 321.15 & 3111.81
|
|
\\
|
|
\hline
|
|
\multirow{5}{*}{LPEW3} & $E_{u}$ & 1.89E-01 & $\ast $ & & & &
|
|
\\
|
|
& $R_{u}$ & -- & $\ast $ & & & &
|
|
\\
|
|
& $E_{q}$ & 5.07E+00 & $\ast $ & & & &
|
|
\\
|
|
& $R_{q}$ & -- & $\ast $ & & & &
|
|
\\
|
|
& \texttt{CPU} & 0.056 & $\ast $ & & & &
|
|
\\
|
|
\hline
|
|
\multirow{5}{*}{MPFA-O} & $E_{u}$ & 6.24E-02 & 2.53E-02 & 7.49E-03 & 1.91E-03 & 4.78E-04 & 1.19E-04
|
|
\\
|
|
& $R_{u}$ & -- & 1.30 & 1.76 & 1.97 & 2.00 & 2.00
|
|
\\
|
|
& $E_{q}$ & 3.16E-01 & 1.47E-01 & 4.99E-02 & 1.34E-02 & 3.43E-03 & 8.65E-04
|
|
\\
|
|
& $R_{q}$ & -- & 1.10 & 1.56 & 1.89 & 1.97 & 1.99
|
|
\\
|
|
& \texttt{CPU} & 0.04 & 0.34 & 4.12 & 43.83 & 395.21 & 3877.67
|
|
\\
|
|
\bottomrule
|
|
\end{tabular}
|
|
\end{table}
|
|
% Locally refined
|
|
\begin{table}[!htpb]
|
|
\newcommand{\MRc}[1]{\multirow{5}{*}{#1}}
|
|
\newcommand{\TDnvi}[1]{\MRc{eLSW(#1)}}
|
|
\newcommand{\TDew}{\MRc{LPEW3}}
|
|
\newcommand{\TDmpfa}{\MRc{MPFA-O}}
|
|
\centering
|
|
\caption{算例\ref{sec:testmild}: 非匹配网格\texttt{H}上使用eLSW(b), eLSW(d)以及LSW的菱形格式计算结果.}\label{tab:mildmeshH}
|
|
\begin{tabular}{ccccccc}
|
|
\toprule
|
|
\texttt{nu} & & 22 & 176 & 1408 & 11264 & 90112
|
|
\\
|
|
\midrule
|
|
\multirow{5}{*}{eLSW(d)} & $E_{u}$ & 2.03E-01 & 7.14E-02 & 1.99E-02 & 5.16E-03 & 1.30E-03
|
|
\\
|
|
& $R_{u}$ & -- & 1.51 & 1.84 & 1.95 & 1.99
|
|
\\
|
|
& $E_{q}$ & 6.62E-01 & 2.09E-01 & 6.15E-02 & 1.82E-02 & 5.65E-03
|
|
\\
|
|
& $R_{q}$ & -- & 1.66 & 1.76 & 1.76 & 1.69
|
|
\\
|
|
& \texttt{CPU} & 0.02 & 0.02 & 0.08 & 1.25 & 36.89
|
|
\\
|
|
\hline
|
|
eLSW(b) & \texttt{CPU} & 0.02 & 0.02 & 0.08 & 1.52 & 36.91
|
|
\\
|
|
\hline
|
|
LSW & \texttt{CPU} & 0.00 & 0.00 & 0.06 & 1.16 & 36.21
|
|
\\
|
|
\bottomrule
|
|
\end{tabular}
|
|
\end{table}
|
|
% random 0.2
|
|
\begin{table}[!htpb]
|
|
\newcommand{\MRc}[1]{\multirow{5}{*}{#1}}
|
|
\newcommand{\TDnvi}[1]{\MRc{eLSW(#1)}}
|
|
\newcommand{\TDew}{\MRc{LPEW3}}
|
|
\newcommand{\TDmpfa}{\MRc{MPFA-O}}
|
|
\centering
|
|
\caption{算例\ref{sec:testmild}: 随机扰动网格\texttt{R}(0.2)上的计算结果.}\label{tab:mildmeshR2}
|
|
\begin{tabular}{ccccccc}
|
|
\toprule
|
|
\texttt{nu} & & 64 & 512 & 4096 & 32768 & 262144
|
|
\\
|
|
\midrule
|
|
\multirow{5}{*}{eLSW(d)} & $E_{u}$ & 8.96E-02 & 2.57E-02 & 6.64E-03 & 1.67E-03 & 4.18E-04
|
|
\\
|
|
& $R_{u}$ & -- & 1.80 & 1.95 & 1.99 & 2.00
|
|
\\
|
|
& $E_{q}$ & 2.83E-01 & 7.87E-02 & 2.33E-02 & 7.99E-03 & 3.18E-03
|
|
\\
|
|
& $R_{q}$ & -- & 1.85 & 1.76 & 1.55 & 1.33
|
|
\\
|
|
& \texttt{CPU} & 0.00 & 0.02 & 0.20 & 3.45 & 37.64
|
|
\\
|
|
\hline
|
|
eLSW(b) & \texttt{CPU} & 0.00 & 0.02 & 0.22 & 3.19 & 37.40
|
|
\\
|
|
\hline
|
|
LSW & \texttt{CPU} & 0.02 & 0.02 & 0.19 & 2.83 & 35.34
|
|
\\
|
|
\hline
|
|
\multirow{5}{*}{LPEW3} & $E_{u}$ & 9.20E-02 & 2.63E-02 & 6.79E-03 & 1.71E-03 & 4.28E-04
|
|
\\
|
|
& $R_{u}$ & -- & 1.81 & 1.95 & 1.99 & 2.00
|
|
\\
|
|
& $E_{q}$ & 2.70E-01 & 7.44E-02 & 2.23E-02 & 7.82E-03 & 3.14E-03
|
|
\\
|
|
& $R_{q}$ & -- & 1.86 & 1.74 & 1.51 & 1.31
|
|
\\
|
|
& \texttt{CPU} & 0.01 & 0.05 & 0.49 & 5.46 & 56.46
|
|
\\
|
|
\hline
|
|
\multirow{5}{*}{MPFA-O} & $E_{u}$ & 3.53E-02 & 8.99E-03 & 2.22E-03 & 5.63E-04 & 1.41E-04
|
|
\\
|
|
& $R_{u}$ & -- & 1.97 & 2.02 & 1.98 & 2.00
|
|
\\
|
|
& $E_{q}$ & 7.52E-02 & 2.74E-02 & 1.12E-02 & 5.19E-03 & 2.54E-03
|
|
\\
|
|
& $R_{q}$ & -- & 1.45 & 1.30 & 1.11 & 1.03
|
|
\\
|
|
& \texttt{CPU} & 0.01 & 0.05 & 0.36 & 3.57 & 38.50
|
|
\\
|
|
\bottomrule
|
|
\end{tabular}
|
|
\end{table}
|
|
\begin{figure}[!htpb]
|
|
\centering
|
|
\includegraphics[width=0.75\textwidth]{../img/ds3delsmildrandom.eps}
|
|
\caption{算例\ref{sec:testmild}: 随机扰动网格\texttt{R}(0.3)与\texttt{R}(0.4)的计算结果.}
|
|
\label{fig:mildrandomresults}
|
|
\end{figure}
|
|
|
|
|
|
\section{间断系数问题}
|
|
\label{sec:discnttest}
|
|
我们将展示菱形格式在具有不连续扩散张量的问题上的表现. 此测试源自\parencite{Gao2011}, 并且也已被\parencite{Xie2021}测试过.
|
|
扩散系数和解析解的选择如下:
|
|
\begin{equation*}
|
|
\Lambda= \begin{cases}\left(\begin{array}{lll}
|
|
1 & 0 & 0 \\
|
|
0 & 1 & 0 \\
|
|
0 & 0 & 1
|
|
\end{array}\right), & x \leq 0.5, \\
|
|
\left(\begin{array}{lll}
|
|
10 & 3 & 0 \\
|
|
3 & 1 & 0 \\
|
|
0 & 0 & 1
|
|
\end{array}\right), & x>0.5,\end{cases}
|
|
\end{equation*}
|
|
以及
|
|
\begin{equation*}
|
|
u(x, y, z)=
|
|
\begin{cases}
|
|
-2 y^{2}+4 x y+6 x+2 y+z+1, & x \leq 0.5,
|
|
\\
|
|
-2 y^{2}+1.6 x y-0.6 x+3.2 y+z+4.3, & x>0.5.
|
|
\end{cases}
|
|
\end{equation*}
|
|
注意到间断面处的网格顶点必须与平面$x=0.5$排列一致, 因此我们对于随机扰动网格取$\xi_x=0$当$x=0.5$,
|
|
并且我们对于Kershaw网格交换$x$和$y$坐标使得间断面与网格面重合.
|
|
在表\ref{tab:discntmildmeshD}-表\ref{tab:discntmildmeshR2}中, 我们展示网格\texttt{D}, \texttt{H}以及\texttt{R}(0.2)的结果.
|
|
图\ref{fig:discntmildrandommesh}展示扰动因子为$0.3$和$0.4$的随机扰动网格的测试结果.
|
|
这个算例在Kershaw网格上的计算是具有挑战性的, 随着网格加密, 使用eLSW(b)和eLSW(d)插值算法的菱形格式收敛率为$1.8$.
|
|
搭配LPEW3的菱形格式在Kershaw网格的第2级网格上计算失败.
|
|
对于Kershaw网格和随机扰动网格\texttt{R}(0.2), 经典的多点流格式MPFA-O表现最佳.
|
|
在随机扰动网格\texttt{R}(0.3)和\texttt{R}(0.4)上, 搭配LPEW3的菱形格式和MPFA-O格式都表现较差.
|
|
搭配经典最小二乘插值算法LSW的菱形格式在这个算例上达不到最优收敛阶,
|
|
因为这个算例的扩散系数有间断, 解析解的梯度有间断, 而LSW算法是在解析解光滑的情形下推导出来的,
|
|
当解析解不光滑, LSW就算法达不到预期的精度.
|
|
在这个算例的所有网格中, eLSW(b)和eLSW(d)的表现均优于LSW.
|
|
eLSW(b)与eLSW(d)有几乎最优的收敛率, 而且相比于LSW有几乎相同的CPU时间.
|
|
我们还注意到, 在这个算例中, eLSW(b)与eLSW(d)在所有网格上计算结果相同, 这也验证了定理\ref{ch2:thm:pfdogdsafhqosx}.
|
|
|
|
% Kershaw
|
|
\begin{table}[!htpb]
|
|
\newcommand{\MRd}[1]{\multirow{5}{*}{#1}}
|
|
\newcommand{\TDnvi}[1]{\MRd{eLSW(#1)}}
|
|
\newcommand{\TDVILS}{\MRd{LSW}}
|
|
\newcommand{\TDew}{\MRd{LPEW3}}
|
|
\newcommand{\TDmpfa}{\MRd{MPFA-O}}
|
|
\centering
|
|
\caption{算例\ref{sec:discnttest}: Kershaw网格\texttt{D}上的计算结果.}\label{tab:discntmildmeshD}
|
|
\begin{tabular}{cccccccc}
|
|
\toprule
|
|
\texttt{nu} & & 512 & 4096 & 32768 & 262144 & 2097152 & 16777216
|
|
\\
|
|
\midrule
|
|
\multirow{5}{*}{eLSW(d)} & $E_{u}$ & 1.16E-02 & 3.88E-03 & 1.87E-03 & 8.10E-04 & 2.69E-04 & 7.64E-05
|
|
\\
|
|
& $R_{u}$ & -- & 1.58 & 1.05 & 1.21 & 1.59 & 1.82
|
|
\\
|
|
& $E_{q}$ & 3.49E-01 & 1.54E-01 & 6.74E-02 & 2.64E-02 & 8.74E-03 & 2.66E-03
|
|
\\
|
|
& $R_{q}$ & -- & 1.18 & 1.19 & 1.35 & 1.59 & 1.72
|
|
\\
|
|
& \texttt{CPU} & 0.02 & 0.22 & 3.14 & 37.93 & 420.65 & 15010.85
|
|
\\
|
|
\hline
|
|
\multirow{5}{*}{eLSW(b)} & $E_{u}$ & 1.16E-02 & 3.88E-03 & 1.87E-03 & 8.10E-04 & 2.69E-04 & 7.64E-05
|
|
\\
|
|
& $R_{u}$ & -- & 1.58 & 1.05 & 1.21 & 1.59 & 1.82
|
|
\\
|
|
& $E_{q}$ & 3.49E-01 & 1.54E-01 & 6.74E-02 & 2.64E-02 & 8.74E-03 & 2.66E-03
|
|
\\
|
|
& $R_{q}$ & -- & 1.18 & 1.19 & 1.35 & 1.59 & 1.72
|
|
\\
|
|
& \texttt{CPU} & 0.02 & 0.22 & 3.17 & 38.02 & 430.91 & 15398.36
|
|
\\
|
|
\hline
|
|
\multirow{5}{*}{LSW}& $E_{u}$ & 1.59E-02 & 8.24E-03 & 4.77E-03 & 2.50E-03 & 1.22E-03 & 5.90E-04
|
|
\\
|
|
& $R_{u}$ & -- & 0.95 & 0.79 & 0.93 & 1.04 & 1.05
|
|
\\
|
|
& $E_{q}$ & 5.72E-01 & 3.22E-01 & 2.14E-01 & 1.45E-01 & 9.96E-02 & 6.96E-02
|
|
\\
|
|
& $R_{q}$ & -- & 0.83 & 0.59 & 0.56 & 0.54 & 0.52
|
|
\\
|
|
& \texttt{CPU} & 0.03 & 0.20 & 2.92 & 36.01 & 406.09 & 12571.71
|
|
\\
|
|
\hline
|
|
\multirow{5}{*}{LPEW3}& $E_{u}$ & 3.87E-02 & $\ast $ & & & &
|
|
\\
|
|
& $R_{u}$ & 0.00 & $\ast $ & & & &
|
|
\\
|
|
& $E_{q}$ & 3.72E+00 & $\ast $ & & & &
|
|
\\
|
|
& $R_{q}$ & 0.00 & $\ast $ & & & &
|
|
\\
|
|
& \texttt{CPU} & 0.06 & $\ast $ & & & &
|
|
\\
|
|
\hline
|
|
\multirow{5}{*}{MPFA-O}& $E_{u}$ & 7.40E-03 & 2.23E-03 & 5.70E-04 & 1.42E-04 & 3.56E-05 & 8.90E-06
|
|
\\
|
|
& $R_{u}$ & -- & 1.73 & 1.97 & 2.00 & 2.00 & 2.00
|
|
\\
|
|
& $E_{q}$ & 6.66E-02 & 2.24E-02 & 6.37E-03 & 1.73E-03 & 4.63E-04 & 1.23E-04
|
|
\\
|
|
& $R_{q}$ & -- & 1.57 & 1.82 & 1.88 & 1.90 & 1.92
|
|
\\
|
|
& \texttt{CPU} & 0.04 & 0.33 & 4.02 & 44.41 & 458.71 & 5035.69
|
|
\\
|
|
\bottomrule
|
|
\end{tabular}
|
|
\end{table}
|
|
% Locally refined
|
|
\begin{table}[!htpb]
|
|
\newcommand{\MRd}[1]{\multirow{5}{*}{#1}}
|
|
\newcommand{\TDnvi}[1]{\MRd{eLSW(#1)}}
|
|
\newcommand{\TDVILS}{\MRd{LSW}}
|
|
\newcommand{\TDew}{\MRd{LPEW3}}
|
|
\newcommand{\TDmpfa}{\MRd{MPFA-O}}
|
|
\centering
|
|
\caption{算例\ref{sec:discnttest}: 非匹配网格\texttt{H}上的计算结果.}\label{tab:discntmildmeshH}
|
|
\begin{tabular}{ccccccc}
|
|
\toprule
|
|
\texttt{nu} & & 22 & 176 & 1408 & 11264 & 90112
|
|
\\
|
|
\midrule
|
|
\multirow{5}{*}{eLSW(d)} & $E_{u}$ & 3.98E-02 & 9.46E-03 & 2.34E-03 & 5.87E-04 & 1.47E-04
|
|
\\
|
|
& $R_{u}$ & -- & 2.07 & 2.01 & 2.00 & 2.00
|
|
\\
|
|
& $E_{q}$ & 6.32E-02 & 2.81E-02 & 1.09E-02 & 4.25E-03 & 1.62E-03
|
|
\\
|
|
& $R_{q}$ & -- & 1.17 & 1.37 & 1.35 & 1.39
|
|
\\
|
|
& \texttt{CPU} & 0.00 & 0.00 & 0.06 & 1.50 & 42.79
|
|
\\
|
|
\hline
|
|
\multirow{5}{*}{eLSW(b)} & $E_{u}$ & 3.98E-02 & 9.46E-03 & 2.34E-03 & 5.87E-04 & 1.47E-04
|
|
\\
|
|
& $R_{u}$ & -- & 2.07 & 2.01 & 2.00 & 2.00
|
|
\\
|
|
& $E_{q}$ & 6.32E-02 & 2.81E-02 & 1.09E-02 & 4.25E-03 & 1.62E-03
|
|
\\
|
|
& $R_{q}$ & -- & 1.17 & 1.37 & 1.35 & 1.39
|
|
\\
|
|
& \texttt{CPU} & 0.00 & 0.02 & 0.08 & 1.31 & 42.94
|
|
\\
|
|
\hline
|
|
\multirow{5}{*}{LSW}& $E_{u}$ & 3.99E-02 & 1.18E-02 & 4.48E-03 & 1.67E-03 & 6.55E-04
|
|
\\
|
|
& $R_{u}$ & -- & 1.75 & 1.40 & 1.42 & 1.35
|
|
\\
|
|
& $E_{q}$ & 3.29E-01 & 2.79E-01 & 2.07E-01 & 1.50E-01 & 1.07E-01
|
|
\\
|
|
& $R_{q}$ & -- & 0.24 & 0.43 & 0.47 & 0.48
|
|
\\
|
|
& \texttt{CPU} & 0.00 & 0.00 & 0.06 & 1.53 & 41.79
|
|
\\
|
|
\bottomrule
|
|
\end{tabular}
|
|
\end{table}
|
|
% random 0.2
|
|
\begin{table}[!htpb]
|
|
\newcommand{\MRd}[1]{\multirow{5}{*}{#1}}
|
|
\newcommand{\TDnvi}[1]{\MRd{eLSW(#1)}}
|
|
\newcommand{\TDVILS}{\MRd{LSW}}
|
|
\newcommand{\TDew}{\MRd{LPEW3}}
|
|
\newcommand{\TDmpfa}{\MRd{MPFA-O}}
|
|
\centering
|
|
\caption{算例\ref{sec:discnttest}: 随机扰动网格\texttt{R}(0.2)上的计算结果.}\label{tab:discntmildmeshR2}
|
|
\begin{tabular}{ccccccc}
|
|
\toprule
|
|
\texttt{nu} & & 64 & 512 & 4096 & 32768 & 262144
|
|
\\
|
|
\midrule
|
|
\multirow{5}{*}{eLSW(d)} & $E_{u}$ & 1.18E-02 & 2.94E-03 & 7.49E-04 & 1.86E-04 & 4.62E-05
|
|
\\
|
|
& $R_{u}$ & -- & 2.00 & 1.97 & 2.01 & 2.01
|
|
\\
|
|
& $E_{q}$ & 2.92E-02 & 1.19E-02 & 4.84E-03 & 1.85E-03 & 7.51E-04
|
|
\\
|
|
& $R_{q}$ & -- & 1.30 & 1.29 & 1.38 & 1.30
|
|
\\
|
|
& \texttt{CPU} & 0.00 & 0.02 & 0.22 & 3.09 & 40.05
|
|
\\
|
|
\hline
|
|
\multirow{5}{*}{eLSW(b)} & $E_{u}$ & 1.18E-02 & 2.94E-03 & 7.49E-04 & 1.86E-04 & 4.62E-05
|
|
\\
|
|
& $R_{u}$ & -- & 2.00 & 1.97 & 2.01 & 2.01
|
|
\\
|
|
& $E_{q}$ & 2.92E-02 & 1.19E-02 & 4.84E-03 & 1.85E-03 & 7.51E-04
|
|
\\
|
|
& $R_{q}$ & -- & 1.30 & 1.29 & 1.38 & 1.30
|
|
\\
|
|
& \texttt{CPU} & 0.00 & 0.46 & 0.20 & 3.12 & 40.20
|
|
\\
|
|
\hline
|
|
\multirow{5}{*}{LSW}& $E_{u}$ & 1.61E-02 & 6.38E-03 & 2.86E-03 & 1.04E-03 & 4.01E-04
|
|
\\
|
|
& $R_{u}$ & -- & 1.33 & 1.16 & 1.46 & 1.37
|
|
\\
|
|
& $E_{q}$ & 2.95E-01 & 2.39E-01 & 1.79E-01 & 1.25E-01 & 9.36E-02
|
|
\\
|
|
& $R_{q}$ & -- & 0.31 & 0.41 & 0.51 & 0.42
|
|
\\
|
|
& \texttt{CPU} & 0.02 & 0.02 & 0.17 & 2.89 & 38.32
|
|
\\
|
|
\hline
|
|
\multirow{5}{*}{LPEW3}& $E_{u}$ & 1.18E-02 & 2.95E-03 & 7.50E-04 & 1.86E-04 & 4.62E-05
|
|
\\
|
|
& $R_{u}$ & -- & 2.00 & 1.98 & 2.01 & 2.01
|
|
\\
|
|
& $E_{q}$ & 3.59E-02 & 1.43E-02 & 5.81E-03 & 2.24E-03 & 8.92E-04
|
|
\\
|
|
& $R_{q}$ & -- & 1.33 & 1.30 & 1.38 & 1.33
|
|
\\
|
|
& \texttt{CPU} & 0.01 & 0.05 & 0.51 & 5.61 & 60.99
|
|
\\
|
|
\hline
|
|
\multirow{5}{*}{MPFA-O}& $E_{u}$ & 2.07E-03 & 5.36E-04 & 1.46E-04 & 3.81E-05 & 9.68E-06
|
|
\\
|
|
& $R_{u}$ & -- & 1.95 & 1.88 & 1.93 & 1.98
|
|
\\
|
|
& $E_{q}$ & 1.87E-02 & 7.60E-03 & 2.74E-03 & 9.82E-04 & 3.90E-04
|
|
\\
|
|
& $R_{q}$ & -- & 1.30 & 1.47 & 1.48 & 1.33
|
|
\\
|
|
& \texttt{CPU} & 0.01 & 0.04 & 0.33 & 4.08 & 50.32
|
|
\\
|
|
\bottomrule
|
|
\end{tabular}
|
|
\end{table}
|
|
\begin{figure}[!htpb]
|
|
\centering
|
|
\includegraphics[width=0.65\textwidth]{../img/ds3delsdiscntmildrandom.eps}
|
|
\caption{算例\ref{sec:discnttest}: 随机扰动网格上使用eLSW(b), eLSW(d)和LSW的菱形格式计算结果.}
|
|
\label{fig:discntmildrandommesh}
|
|
\end{figure}
|
|
|
|
|
|
|
|
\section{强各向异性且有交叉间断面问题}
|
|
\label{sec:crosstest}
|
|
我们考虑具有交叉间断面的强各向异性扩散问题. 该问题改编自\parencite{Edwards2011}, 并在\parencite{Xie2021}中进行了研究.
|
|
计算区域$\Omega=[0,1]^{3}$, 被分裂为四个子区域:
|
|
\begin{align*}
|
|
\Omega _{1} & = \{(x,y,z)\in \Omega ,\quad x\leq 0.5, z\leq 0.5\} ,
|
|
\\
|
|
\Omega _{2} & = \{(x,y,z)\in \Omega ,\quad x> 0.5, z\leq 0.5\} ,
|
|
\\
|
|
\Omega _{3} & = \{(x,y,z)\in \Omega ,\quad x> 0.5, z>0.5\} ,
|
|
\\
|
|
\Omega _{4} & = \{(x,y,z)\in \Omega ,\quad x\leq 0.5, z>0.5\} .
|
|
\end{align*}
|
|
四个子区域的扩散系数和解析解为
|
|
\begin{equation*}
|
|
\Lambda = \left (\begin{array}{ccc}
|
|
2464.36 \alpha _{i} & 0 & 1148.68\beta _{i}
|
|
\\
|
|
0 & 536.64 & 0
|
|
\\
|
|
1148.68 \beta _{i} & 0 & 536.64\alpha _{i}
|
|
\end{array}
|
|
\right )
|
|
% ,\quad
|
|
% \text{in } \Omega_{i}
|
|
\end{equation*}
|
|
以及
|
|
\begin{equation*}
|
|
u(x,y,z) = \sin (2\pi x) \sin (2\pi y) \sin (2\pi z)/\alpha _{i}
|
|
% ,\quad
|
|
% \text{in } \Omega_{i}
|
|
\end{equation*}
|
|
其中$\alpha_{i}$和$\beta_{i}$由下表给出
|
|
\begin{center}
|
|
\begin{tabular}{|c|c|c|c|c|}
|
|
\hline
|
|
$i$ & 1 & 2 & 3 & 4
|
|
\\ \hline
|
|
$\alpha_{i}$ & 10 & 1 & 10 & 1
|
|
\\ \hline
|
|
$\beta_{i}$ & 1 & -1 & 1 & -1
|
|
\\ \hline
|
|
\end{tabular}
|
|
\end{center}
|
|
对于这个算例使用的随机扰动网格, 我们取$\xi_{x}(x=0.5)=0$以及$\xi_{z}(z=0.5)=0$.
|
|
|
|
网格\texttt{H}和网格\texttt{R}(0.2)的测试结果见\ref{tab:crossmeshH}和表\ref{tab:crossmeshR2}.
|
|
在其他随机扰动网格上的表现如图\ref{fig:crossrandommesh}所示.
|
|
从这些结果中, 我们可以观察到eLSW(d)的性能与eLSW(b)相似, 并且都优于LSW.
|
|
扩展最小二乘插值算法eLSW在此测试中都获得了二阶精度的数值解.
|
|
搭配LPEW3的菱形格式和MPFA-O格式在这个算例表现较差.
|
|
% Locally refined
|
|
\begin{table}[!htpb]
|
|
\newcommand{\MRd}[1]{\multirow{5}{*}{#1}}
|
|
\newcommand{\TDnvi}[1]{\MRd{eLSW(#1)}}
|
|
\newcommand{\TDVILS}{\MRd{LSW}}
|
|
\newcommand{\TDew}{\MRd{LPEW3}}
|
|
\newcommand{\TDmpfa}{\MRd{MPFA-O}}
|
|
\centering
|
|
\caption{算例\ref{sec:crosstest}: 非匹配网格\texttt{H}上的计算结果.}\label{tab:crossmeshH}
|
|
\begin{tabular}{ccccccc}
|
|
\toprule
|
|
\texttt{nu} & & 22 & 176 & 1408 & 11264 & 90112
|
|
\\
|
|
\midrule
|
|
\multirow{5}{*}{eLSW(d)} & $E_{u}$ & 1.43E+00 & 3.88E-01 & 7.08E-02 & 1.59E-02 & 3.97E-03
|
|
\\
|
|
& $R_{u}$ & -- & 1.88 & 2.45 & 2.15 & 2.00
|
|
\\
|
|
& $E_{q}$ & 4.87E-01 & 3.17E-01 & 1.16E-01 & 3.48E-02 & 9.97E-03
|
|
\\
|
|
& $R_{q}$ & -- & 0.62 & 1.46 & 1.73 & 1.80
|
|
\\
|
|
& \texttt{CPU} & 0.00 & 0.27 & 0.06 & 1.45 & 41.79
|
|
\\
|
|
\hline
|
|
\multirow{5}{*}{eLSW(b)} & $E_{u}$ & 1.45E+00 & 3.88E-01 & 7.14E-02 & 1.60E-02 & 3.98E-03
|
|
\\
|
|
& $R_{u}$ & -- & 1.90 & 2.44 & 2.16 & 2.01
|
|
\\
|
|
& $E_{q}$ & 4.91E-01 & 3.16E-01 & 1.15E-01 & 3.48E-02 & 9.96E-03
|
|
\\
|
|
& $R_{q}$ & -- & 0.63 & 1.46 & 1.73 & 1.80
|
|
\\
|
|
& \texttt{CPU} & 0.00 & 0.00 & 0.06 & 1.74 & 41.85
|
|
\\
|
|
\hline
|
|
\multirow{5}{*}{LSW}& $E_{u}$ & 1.48E+00 & 4.26E-01 & 1.03E-01 & 3.46E-02 & 1.33E-02
|
|
\\
|
|
& $R_{u}$ & -- & 1.80 & 2.05 & 1.58 & 1.38
|
|
\\
|
|
& $E_{q}$ & 4.79E-01 & 3.31E-01 & 1.55E-01 & 7.58E-02 & 4.45E-02
|
|
\\
|
|
& $R_{q}$ & -- & 0.53 & 1.09 & 1.03 & 0.77
|
|
\\
|
|
& \texttt{CPU} & 0.00 & 0.00 & 0.06 & 1.20 & 40.91
|
|
\\
|
|
\bottomrule
|
|
\end{tabular}
|
|
\end{table}
|
|
% random 0.2
|
|
\begin{table}[!htpb]
|
|
\newcommand{\MRd}[1]{\multirow{5}{*}{#1}}
|
|
\newcommand{\TDnvi}[1]{\MRd{eLSW(#1)}}
|
|
\newcommand{\TDVILS}{\MRd{LSW}}
|
|
\newcommand{\TDew}{\MRd{LPEW3}}
|
|
\newcommand{\TDmpfa}{\MRd{MPFA-O}}
|
|
\centering
|
|
\caption{算例\ref{sec:crosstest}: 随机扰动网格\texttt{R}(0.2)上的计算结果.}\label{tab:crossmeshR2}
|
|
\begin{tabular}{ccccccc}
|
|
\toprule
|
|
\texttt{nu} & & 64 & 512 & 4096 & 32768 & 262144
|
|
\\
|
|
\midrule
|
|
\multirow{5}{*}{eLSW(d)} & $E_{u}$ & 4.32E-01 & 8.78E-02 & 2.04E-02 & 5.11E-03 & 1.29E-03
|
|
\\
|
|
& $R_{u}$ & -- & 2.30 & 2.11 & 1.99 & 1.99
|
|
\\
|
|
& $E_{q}$ & 3.46E-01 & 1.27E-01 & 4.07E-02 & 1.30E-02 & 4.78E-03
|
|
\\
|
|
& $R_{q}$ & -- & 1.44 & 1.65 & 1.65 & 1.45
|
|
\\
|
|
& \texttt{CPU} & 0.02 & 0.02 & 0.20 & 3.05 & 40.83
|
|
\\
|
|
\hline
|
|
\multirow{5}{*}{eLSW(b)} & $E_{u}$ & 4.32E-01 & 8.82E-02 & 2.04E-02 & 5.12E-03 & 1.29E-03
|
|
\\
|
|
& $R_{u}$ & -- & 2.29 & 2.11 & 2.00 & 1.99
|
|
\\
|
|
& $E_{q}$ & 3.47E-01 & 1.28E-01 & 4.08E-02 & 1.30E-02 & 4.78E-03
|
|
\\
|
|
& $R_{q}$ & -- & 1.44 & 1.64 & 1.65 & 1.45
|
|
\\
|
|
& \texttt{CPU} & 0.00 & 0.03 & 0.20 & 2.94 & 41.01
|
|
\\
|
|
\hline
|
|
\multirow{5}{*}{LSW}& $E_{u}$ & 4.73E-01 & 1.19E-01 & 4.90E-02 & 1.86E-02 & 7.41E-03
|
|
\\
|
|
& $R_{u}$ & -- & 1.99 & 1.28 & 1.40 & 1.33
|
|
\\
|
|
& $E_{q}$ & 3.77E-01 & 2.14E-01 & 1.60E-01 & 1.18E-01 & 8.16E-02
|
|
\\
|
|
& $R_{q}$ & -- & 0.81 & 0.43 & 0.44 & 0.53
|
|
\\
|
|
& \texttt{CPU} & 0.00 & 0.02 & 0.19 & 2.70 & 39.03
|
|
\\
|
|
\hline
|
|
\multirow{5}{*}{LPEW3}& $E_{u}$ & 4.51E-01 & 9.51E-02 & 2.31E-02 & 6.12E-03 & 1.59E-03
|
|
\\
|
|
& $R_{u}$ & -- & 2.24 & 2.04 & 1.91 & 1.95
|
|
\\
|
|
& $E_{q}$ & 3.65E-01 & 1.24E-01 & 3.67E-02 & 1.23E-02 & 4.92E-03
|
|
\\
|
|
& $R_{q}$ & -- & 1.56 & 1.76 & 1.57 & 1.33
|
|
\\
|
|
& \texttt{CPU} & 0.01 & 0.05 & 0.48 & 5.42 & 60.65
|
|
\\
|
|
\hline
|
|
\multirow{5}{*}{MPFA-O}& $E_{u}$ & 9.12E-01 & 1.95E-01 & 8.53E-02 & 1.66E-01 & $\ast $
|
|
\\
|
|
& $R_{u}$ & -- & 2.23 & 1.19 & -0.96 & $\ast $
|
|
\\
|
|
& $E_{q}$ & 2.64E-01 & 1.34E-01 & 8.43E-02 & 2.55E-01 & $\ast $
|
|
\\
|
|
& $R_{q}$ & -- & 0.98 & 0.67 & -1.60 & $\ast $
|
|
\\
|
|
& \texttt{CPU} & 0.01 & 0.04 & 0.33 & 4.69 & $\ast $
|
|
\\
|
|
\bottomrule
|
|
\end{tabular}
|
|
\end{table}
|
|
%
|
|
\begin{figure}[!htpb]
|
|
\centering
|
|
\includegraphics[width=0.65\textwidth]{../img/ds3delscrossrandom.eps}
|
|
\caption{算例\ref{sec:crosstest}: 随机扰动网格上的计算结果.}
|
|
\label{fig:crossrandommesh}
|
|
\end{figure}
|
|
|
|
|
|
|
|
\section{变系数的强各向异性问题}
|
|
\label{sec:stronghete}
|
|
|
|
我们研究由\parencite{Edwards2011}提出的一个变系数的强各向异性的扩散问题. 扩散张量为
|
|
\begin{equation*}
|
|
\Lambda (x, y, z)=\frac{1}{x^{2}+y^{2}}\left (
|
|
\begin{array}{ccc}
|
|
\varepsilon _{x} x^{2}+\varepsilon _{y} y^{2} & \left (\varepsilon _{x}-
|
|
\varepsilon _{y}\right ) x y & 0
|
|
\\
|
|
\left (\varepsilon _{x}-\varepsilon _{y}\right ) x y & \varepsilon _{y}
|
|
x^{2}+\varepsilon _{x} y^{2} & 0
|
|
\\
|
|
0 & 0 & \varepsilon _{z}(z+1)\left (x^{2}+y^{2}\right )
|
|
\end{array}
|
|
\right ),
|
|
\end{equation*}
|
|
其中$\varepsilon_{x} = 1, \varepsilon_{y} = 10^{-6}$并且$\varepsilon_{z} = 10$.
|
|
解析解为
|
|
\begin{equation*}
|
|
u(x,y,z) =
|
|
\sin(2\pi x)
|
|
\sin(2\pi y)
|
|
\sin(2\pi z).
|
|
\end{equation*}
|
|
|
|
这里, 在顶点插值算法中所使用的扩散张量取为
|
|
\begin{equation*}
|
|
\Lambda_{i} = \lim_{\bm{x}\to\bm{x}_{\nu},\bm{x}\in K_{i}} \Lambda(\bm{x}),
|
|
\end{equation*}
|
|
这也是文献\parencite{Miao2022}建议对于变系数扩散问题的处理方式.
|
|
在这种选择下, 对于这个变系数问题, eLSW(d)和eLSW(b)与LSW等价.
|
|
我们首先给出随机扰动网格\texttt{R}(0.2)上的结果, 见表\ref{tab:stronghetemeshR2}.
|
|
从表中可以看出, 两种扩展最小二乘插值算法的CPU时间仅存在细微差异.
|
|
我们发现MPFA-O格式不收敛对于这种强各向异性问题.
|
|
因此, 对于其他情况, 我们仅展示eLSW(d)和LPEW3的结果.
|
|
随着网格细化, 我们可以发现搭配扩展最小二乘顶点插值算法eLSW的菱形格式都达到了理想的精度.
|
|
|
|
% random 0.2
|
|
\begin{table}[!htpb]
|
|
\newcommand{\MRd}[1]{\multirow{5}{*}{#1}}
|
|
\newcommand{\TDnvi}[1]{\MRd{eLSW(#1)}}
|
|
\newcommand{\TDVILS}{\MRd{LSW}}
|
|
\newcommand{\TDew}{\MRd{LPEW3}}
|
|
\newcommand{\TDmpfa}{\MRd{MPFA-O}}
|
|
\centering
|
|
\caption{算例\ref{sec:stronghete}: 随机扰动网格\texttt{R}(0.2)上的计算结果.}\label{tab:stronghetemeshR2}
|
|
\begin{tabular}{ccccccc}
|
|
\toprule
|
|
\texttt{nu} & & 64 & 512 & 4096 & 32768 & 262144
|
|
\\
|
|
\midrule
|
|
\multirow{5}{*}{eLSW(d)} & $E_{u}$ & 2.89E-01 & 7.84E-02 & 1.92E-02 & 5.05E-03 & 1.40E-03
|
|
\\
|
|
& $R_{u}$ & -- & 1.88 & 2.03 & 1.93 & 1.86
|
|
\\
|
|
& $E_{q}$ & 1.95E-01 & 6.82E-02 & 2.08E-02 & 7.18E-03 & 2.97E-03
|
|
\\
|
|
& $R_{q}$ & -- & 1.51 & 1.72 & 1.53 & 1.27
|
|
\\
|
|
& \texttt{CPU} & 0.00 & 0.02 & 0.21 & 2.16 & 20.76
|
|
\\
|
|
\hline
|
|
\multirow{5}{*}{eLSW(b)} & $E_{u}$ & 2.89E-01 & 7.84E-02 & 1.92E-02 & 5.05E-03 & 1.40E-03
|
|
\\
|
|
& $R_{u}$ & -- & 1.88 & 2.03 & 1.93 & 1.86
|
|
\\
|
|
& $E_{q}$ & 1.95E-01 & 6.82E-02 & 2.08E-02 & 7.18E-03 & 2.97E-03
|
|
\\
|
|
& $R_{q}$ & -- & 1.51 & 1.72 & 1.53 & 1.27
|
|
\\
|
|
& \texttt{CPU} & 0.00 & 0.02 & 0.20 & 2.17 & 20.84
|
|
\\
|
|
\hline
|
|
\multirow{5}{*}{LSW}& $E_{u}$ & 2.89E-01 & 7.84E-02 & 1.92E-02 & 5.05E-03 & 1.40E-03
|
|
\\
|
|
& $R_{u}$ & -- & 1.88 & 2.03 & 1.93 & 1.86
|
|
\\
|
|
& $E_{q}$ & 1.95E-01 & 6.82E-02 & 2.08E-02 & 7.18E-03 & 2.97E-03
|
|
\\
|
|
& $R_{q}$ & -- & 1.51 & 1.72 & 1.53 & 1.27
|
|
\\
|
|
& \texttt{CPU} & 0.00 & 0.02 & 0.19 & 1.92 & 18.82
|
|
\\
|
|
\hline
|
|
\multirow{5}{*}{LPEW3}& $E_{u}$ & 2.91E-01 & 7.82E-02 & 1.98E-02 & 5.23E-03 & 1.44E-03
|
|
\\
|
|
& $R_{u}$ & -- & 1.90 & 1.98 & 1.92 & 1.86
|
|
\\
|
|
& $E_{q}$ & 1.95E-01 & 6.79E-02 & 2.10E-02 & 7.35E-03 & 3.08E-03
|
|
\\
|
|
& $R_{q}$ & -- & 1.52 & 1.69 & 1.51 & 1.26
|
|
\\
|
|
& \texttt{CPU} & 0.01 & 0.05 & 0.48 & 4.64 & 41.71
|
|
\\
|
|
\bottomrule
|
|
\end{tabular}
|
|
\end{table}
|
|
\begin{figure}[!htpb]
|
|
\centering
|
|
\includegraphics[width=0.65\textwidth]{../img/ds3delsstronghete.eps}
|
|
\caption{算例\ref{sec:stronghete}: 搭配eLSW(d)和LPEW3的菱形格式计算结果.}
|
|
\label{fig:strongheteothers}
|
|
\end{figure}
|
|
|
|
|
|
\newcommand{\NVW}{\texttt{vinw}}
|
|
\section{测试离散极值原理}
|
|
\label{sec:testdmp}
|
|
|
|
与局部守恒性同样重要,
|
|
离散极值原理(DMP)也是扩散方程数值离散时必须考虑的因素.
|
|
我们测试文献\parencite{FVCA6}的第3个算例展示搭配扩展最小二乘插值算法的菱形格式与DMP相关的性质.
|
|
扩散系数和解析解的选择如下
|
|
\begin{equation*}
|
|
\Lambda =
|
|
\begin{pmatrix}
|
|
1 &0 &0
|
|
\\
|
|
0 &1 &0
|
|
\\
|
|
0 &0 &10^{3}
|
|
\end{pmatrix}
|
|
\end{equation*}
|
|
以及
|
|
\begin{equation*}
|
|
u(x, y, z)= \sin (2\pi x)\sin (2\pi y)\sin (2\pi z) .
|
|
\end{equation*}
|
|
在这个算例中, 我们考虑Dirichlet边界条件.
|
|
我们统计出顶点插值权重为负的百分比, 记为\texttt{vinw}.
|
|
我们分别在四面体网格\texttt{B}以及Kershaw网格\texttt{D}测试,
|
|
计算结果见表\ref{tab:dmpmeshB}以及表\ref{tab:dmpmeshD},
|
|
从这些结果可以看出, 对于这个问题, 搭配eLSW(d)的菱形格式不满足极值原理.
|
|
% tet
|
|
\begin{table}[!htpb]
|
|
\newcommand{\MRc}[1]{\multirow{8}{*}{#1}}
|
|
\newcommand{\TDnvi}[1]{\MRc{eLSW(#1)}}
|
|
\newcommand{\TDew}{\MRc{LPEW3}}
|
|
\newcommand{\TDmpfa}{\MRc{MPFA-O}}
|
|
\centering\zihao{-5}
|
|
\caption{算例\ref{sec:testdmp}: 四面体网格\texttt{B}上的计算结果.}\label{tab:dmpmeshB}
|
|
\begin{tabular}{cccccccccc}
|
|
\toprule
|
|
\texttt{nu} & & 44 & 215 & 2003 & 3898 & 7711 & 15266 & 30480 & 61052
|
|
\\
|
|
\midrule
|
|
\multirow{8}{*}{eLSW(d)} & $E_{u}$ & 6.36E-01 & 1.05E+00 & 2.30E-01 & 1.52E-01 & 9.70E-02 & 6.06E-02 & 3.83E-02 & 2.37E-02 \\
|
|
& $R_{u}$ & -- & -0.95 & 2.04 & 1.85 & 1.98 & 2.07 & 1.99 & 2.07 \\
|
|
& $E_{q}$ & 2.21E-01 & 5.58E-01 & 1.68E-01 & 1.23E-01 & 9.42E-02 & 7.37E-02 & 5.78E-02 & 4.49E-02 \\
|
|
& $R_{q}$ & -- & -1.75 & 1.62 & 1.40 & 1.17 & 1.08 & 1.06 & 1.09 \\
|
|
& \texttt{umin} & -1.316 & -1.657 & -1.185 & -1.084 & -1.064 & -1.070 & -1.025 & -1.019 \\
|
|
& \texttt{umax} & 1.296 & 1.303 & 1.096 & 1.118 & 1.067 & 1.048 & 1.021 & 1.021 \\
|
|
& \texttt{CPU} & 0.01 & 0.01 & 0.18 & 0.61 & 1.99 & 6.50 & 20.59 & 60.12 \\
|
|
& \texttt{vinw} & 0.00\% & 0.00\% & 0.54\% & 1.24\% & 0.80\% & 0.65\% & 0.85\% & 0.91\% \\
|
|
\bottomrule
|
|
\end{tabular}
|
|
\end{table}
|
|
% kershaw
|
|
\begin{table}[!htpb]
|
|
\newcommand{\MRc}[1]{\multirow{8}{*}{#1}}
|
|
\newcommand{\TDnvi}[1]{\MRc{eLSW(#1)}}
|
|
\newcommand{\TDew}{\MRc{LPEW3}}
|
|
\newcommand{\TDmpfa}{\MRc{MPFA-O}}
|
|
\centering
|
|
\caption{算例\ref{sec:testdmp}: Kershaw网格\texttt{D}上的计算结果.}\label{tab:dmpmeshD}
|
|
\begin{tabular}{ccccccc}
|
|
\toprule
|
|
\texttt{nu} & & 512 & 4096 & 32768 & 262144 & 2097152
|
|
\\
|
|
\midrule
|
|
\multirow{8}{*}{eLSW(d)} & $E_{u}$ & 2.82E-01 & 5.14E-02 & 1.33E-02 & 3.56E-03 & 9.70E-04 \\
|
|
& $R_{u}$ & -- & 2.46 & 1.95 & 1.90 & 1.88 \\
|
|
& $E_{q}$ & 1.37E-01 & 2.73E-02 & 6.90E-03 & 1.93E-03 & 5.86E-04 \\
|
|
& $R_{q}$ & -- & 2.33 & 1.98 & 1.84 & 1.72 \\
|
|
& \texttt{umin} & -1.125 & -1.055 & -1.009 & -1.003 & -1.002 \\
|
|
& \texttt{umax} & 1.125 & 1.055 & 1.009 & 1.003 & 1.002 \\
|
|
& \texttt{CPU} & 0.03 & 0.18 & 1.57 & 13.99 & 121.59 \\
|
|
& \texttt{vinw} & 57.14\% & 25.96\% & 12.35\% & 5.98\% & 2.95\% \\
|
|
\bottomrule
|
|
\end{tabular}
|
|
\end{table}
|
|
% vim:ts=4:sw=4
|