用左手边的空间和时间导数求解 PDE

计算科学 有限体积 数字 平流扩散
2021-12-11 01:37:10

我希望求解形式的方程,

t(ϕx)=x(F)

对于变量(例如质量)。ϕ

右边是Fϕ

这个方程“看起来像”的空间导数的变化率出现在左侧。ϕ

应用有限体积方法,我们将方程积分到单元上,Ω

tΩ(ϕx)dx=ΩFxdx

t(ϕj+1/2hjϕj1/2hj)=(Fj+1/2hjFj1/2hj)

其中单元格的宽度。hj

这种基本方法正确吗?我以前从来不需要解一个空间导数的时间导数的方程,这是我采用的方法,有人有什么建议或方向吗?我还没有尝试以数字方式实现这一点。

2个回答

我在下面描述的是特征方法的一个版本。它的应用程序是有限的,但如果它适用于您的情况,这将是一个相当简单、快速和准确的过程。如果您想在网格上离散化,它可能没有那么有用。

假设你的解决方案ϕ是平滑的,您可以将其简化为一系列 ODE 问题。先交换左边导数的顺序,得到

xtϕ=xxϕ.

现在你定义ψ=xϕ并解决

tψ=xψ,or(t+x)ψ=0,
这是一阶双曲守恒定律和线性。因此,
ψ(t,x)=ψ(0,xt),
那是,ψ已经由其初始值确定。

最后,通过施工观察ψ=xϕ,你计算(边界条件允许):

ϕ=ψ(t,x)dx.

方程是 tψ=xF(ϕ) 在哪里ψ=xϕ

时间积分可以通过例如显式时间步长来完成:

ψij+1=ψij+τ2dx(Fi+1jFi1j),

这需要F在每个网格节点上是已知的i在“旧”时间片j.

这可以通过添加数字“反转”运算符来实现 ϕ(xi)=x0xiψ(x)每次在评估函数之前使用F. 如果ψ在每个网格点已知i在旧时间片j然后可以评估积分(例如,通过高斯求积)所以ϕ可以在每个网格点找到i; 所以F也可以在每个网格点找到。然后可以执行时间步长并且ψj+1被发现。此方法也适用于隐式时间步长。