基于状态方程的变系数隐式方法

计算科学 隐式方法
2021-12-22 02:17:02

例如,我有一个方程式,类似于

tρ=(ρu)+(D(ρ,T)ρ)+ρs

(与其他一些偏微分方程耦合)ρ,ρs,u,T

我可以使用 Forward Euler 来近似未来来估计未来系数,然后将它们插入隐式方案还是有更好的方法?ρT

作为状态方程,我有系数的表值,并且能够在这些值之间进行插值,所以我应该能够计算插值的雅可比行列式。如果在 PDE 上使用 Forward Euler 不够好,我现在可以使用 Jacobian,所以除了使用显式方法和 Jacobian 的系数之外,所有内容都是隐式的?D(ρ,T)

如果这还不够好,我真的很想输入一些如何进行的信息。未来如何得到雅可比行列式?的可能未来值进行某种采样ρT

(我想解学术百科中的方程,这个玩具例子应该足以让我开始)

1个回答

有很多方法可以做到这一点。您的“预测校正”方法是一种方法。一个更好的概念框架是先做一个时间离散化,然后看看你有什么样的问题。例如,如果你想做一个隐式欧拉方案,你必须在每个时间步解决以下问题: 忽略其他变量。这是一个要在中解决的非线性问题,现在解决非线性问题的所有技术都已摆在桌面上。例如,您可以进行牛顿迭代,试图找到一个序列 (

ρnρn1Δt=(ρnu)+(D(ρn,T)ρn)+ρs,
ρnρn,kknth time step) 你需要从一些开始。一个好的第一个猜测是,牛顿最终迭代在 st 时间步。一个更好的牛顿迭代将是另一种选择是从开始,其中后一项是时间步的显式欧拉解。ρn,0ρn,0=ρn1,(n1)ρn,0=ρn1,+Δtρn1,ρn2,kρn1,+Δtρ(t)tρn,0=ρn,ee

许多方案可以被视为任何这些想法的变体。也许他们对这些初始猜测中的任何一个都进行了一次牛顿迭代,或者他们对这些初始猜测中的任何一个进行了一次定点(“Picard”)迭代。但最终,如果您想隐式解决问题,首先将其写成的非线性问题会有所帮助。ρn