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$如果很小,最后一项可以忽略,就是一个时间步啦

    :xiabanle: :xiabanle: :xiabanle: :xiabanle: :xiabanle:



  • 另外一种Operator Splitting是对于方向的,考虑方程
    \begin{equation}
    \frac{\p\phi}{\p t}+\frac{\p u\phi}{\p x}+\frac{\p v\phi}{\p y}=0
    \end{equation}
    如果顺序先求解x,再求解y,What do you think ? :mianmo:



  • 为什么这个要交opeartor splitting呢?没理解。



  • @Hungryandfool
    Operator 翻译过来叫做 ”算子“,也就是说,微分方程的空间项可以看作是不同的算子,比如 “对流”(散度),“扩散”(梯度);
    Splitting 的意义在于不同项可以相对独立的去求解,甚至采用完全不同的求解器,这样有利于提高计算效率,减小计算复杂性


Log in to reply
 

CFD中文网 2016 - 2020 | 京ICP备15017992号-2