我有一个描述大气化学和传输的 PDE 系统。我使用有限差分将我的 PDE 系统变成了大约 10,000 个 ODE 的系统。然后,我将 ODE 与 CVODE BDF 方法(来自 Sundials)及时集成。对于我目前对 PDE 的离散化,雅可比近似为带状(带宽 = ~200),因此我一直在使用 CVODE 的直接带状求解器。
但是,我想结合其他描述大气温度演化的 ODE。计算这些新 ODE 的右侧会很慢,因为它需要计算红外光如何穿过大气层(这很慢)。我担心的是计算与大气温度相关的雅可比项将变得不切实际。例如,假设我计算了一个具有有限差分的雅可比项:
这里是 CO_2 的浓度 T温度。问题是仅计算这一个雅可比项将需要计算,这非常慢(因为红外辐射传输计算很慢)。计算数十个物种的所有雅可比项可能需要几分钟,这是不可接受的。
一种可能的解决方案是使用拆分 ODE 求解器,例如ARKODE。拆分 ODE 求解器将“快速”解决方案组件与隐式方法集成,将“慢”解决方案组件与显式方法集成。我可以将大气化学与隐式方法结合起来,将温度变化与显式方法结合起来。在这种情况下,我不需要计算温度的雅可比项(因为它是显式集成的)。
我的第一个问题:拆分 ODE 求解器可能适用于我的问题吗?
另一种可能的解决方案是使用 CVODE BDF 方法(完全隐式),并忽略需要永远计算的雅可比项,并希望雅可比是非线性求解收敛的足够好的近似值。我的第二个问题:这行得通吗?
任何反馈表示赞赏。