输运方程实际上是一个平流-扩散-反应方程,其形式为
在哪里是未知底物浓度,和是流体的速度和方向,分别,是扩散系数,是反应项,并且是源项。我使用带有后向欧拉的传统 FEM 方案来推进时间。但是我解决的数值解中似乎出现了一些负值。有什么方法/方案可以避免消极情绪吗?
输运方程实际上是一个平流-扩散-反应方程,其形式为
在哪里是未知底物浓度,和是流体的速度和方向,分别,是扩散系数,是反应项,并且是源项。我使用带有后向欧拉的传统 FEM 方案来推进时间。但是我解决的数值解中似乎出现了一些负值。有什么方法/方案可以避免消极情绪吗?
通常,您会使用斜率限制器(或人工扩散,只需用手指交叉),它会检测解决方案变为负值的位置并修改解决方案以恢复正性(通常通过修改解决方案的梯度以保持守恒,至少在保守方案,如不连续 Galerkin 和有限体积)。
还有更通用的选项 - Ridzal、Bochev 和 Shashkov有一个很好的技巧,他们解决了有界约束的优化问题,以最小化计算的解决方案和新的正解决方案之间的差异。事实证明,这将解耦为一种廉价的迭代方法,该方法为每个解系数独立计算。迭代似乎收敛得非常快。