Operator Splitting跨越两个时间步长么?
-
有意思的小问题
考虑有源项的对流方程
\begin{equation}
\frac{\p\phi}{\p t}+u\frac{\p \phi}{\p x}=-\beta\phi
\end{equation}
Operator Splitting的策略是首先步进纯对流问题(时间间隔$\Delta t$)
\begin{equation}\label{div}
\frac{\p\phi}{\p t}+u\frac{\p \phi}{\p x}=0
\end{equation}
其解为(显性,迎风)
\begin{equation}\label{divSolution}
\phi_i^{t+\Delta t}=\phi_i^{t}-\frac{u\Delta t}{\Delta x}\left(\phi^t_i-\phi^t_{i-1}\right)
\end{equation}
然后求解源项问题(时间间隔$\Delta t$)
\begin{equation}\label{s}
\frac{\p\phi}{\p t}=-\beta\phi
\end{equation}
解为(欧拉显性)
\begin{equation}\label{sSolution}
\phi^{t+\Delta t+\Delta t}_i=(1-\beta\Delta t)\phi_i^{t+\Delta t}
\end{equation}
那么,Operator Splitting是否步进了两个时间步长呢?在时间间隔$\Delta t$下,最终的解是$\phi^{t+\Delta t+\Delta t}$?答案
并没有。很简单,如果将方程\eqref{divSolution}代入到\eqref{sSolution}有
\begin{equation}\label{finalSolution}
\phi_i^{t+\Delta t+\Delta t}=(1-\beta\Delta t)\left(\phi_i^{t}-\frac{u\Delta t}{\Delta x}\left(\phi^t_i-\phi^t_{i-1}\right) \right) \\
=\phi_i^t-\frac{u\Delta t}{\Delta x}\left(\phi_i^t-\phi_{i-1}^t\right)-\beta\Delta t\phi_i^t+\frac{u\beta\Delta t^2}{\Delta x}\left(\phi_i^t-\phi_{i-1}^t\right)
\end{equation}
上面的方程,$\Delta t$如果很小,最后一项可以忽略,就是一个时间步啦 -
为什么这个要交opeartor splitting呢?没理解。
-
@Hungryandfool
Operator 翻译过来叫做 ”算子“,也就是说,微分方程的空间项可以看作是不同的算子,比如 “对流”(散度),“扩散”(梯度);
Splitting 的意义在于不同项可以相对独立的去求解,甚至采用完全不同的求解器,这样有利于提高计算效率,减小计算复杂性