所以我从一些人那里继承了一个代码来解决特定系统的对流-扩散-反应方程。原始代码首先在 1D 中实现,在笛卡尔坐标中运行良好。但是,现在我试图在 2d 中实现它,我遇到了一些问题。
方程是:
其中是进化的原始变量,是扩散系数,是源+汇。
通过线的方法将空间离散化与时间离散化,将时间与 Runge-Kutta 4 阶方案集成,并使用笛卡尔坐标离散化,将模型从 1D -> 2D 扩展变得相对简单,因为空间分量是相加的. 然而,问题是我正在求解的方程的真正解往往有点球对称(但不完全),但网格是笛卡尔的,所以解决方案倾向于在笛卡尔网格中显示网格方向错误,即解决方案看起来有点“方形”,而不是看起来像“圆形”。解决此网格方向错误的 CPU 代价高昂的解决方案是使网格更精细,但这会导致计算变得非常缓慢。
我能够通过将拉普拉斯算子离散为 9 点模板而不是原始的 5 点模板来解决对流-扩散-反应方程的扩散部分的 2D 网格方向误差,获得后一个 5 点模板通过简单地添加 x 和 y 分量的一维拉普拉斯离散。9 点模板将空间“横向”组件添加到离散化中。然而,平流部分仍然存在一些非常糟糕的网格方向问题。
我想知道是否有类似于 2D 平流问题的“9 点模板”。也许是一个以某种方式考虑“横向”跨项空间分量的模板。我知道拐角运输逆风(CTU)具有横向分量:
但是我不确定它是否可以与 MOL 和 Runge-Kutta 4 阶一起使用,因为它明确取决于时间,例如,而用于 MOL 的单元离散化方案似乎只取决于空间分量,因此时间可以单独集成。但是我可能错了,CTU 可能是完全合适的。我真的很感激这里的一些指导,因为我是菜鸟!