如何在反应扩散计算中使用拉普拉斯算子避免方形?

计算科学 非线性方程 拉普拉斯算子 局部坐标
2021-11-26 07:26:42

我使用了 4、8、12、20 和 24 个最近点的拉普拉斯算子 (div grad) 的不同变体。由于选择的坐标系和拉普拉斯算子的离散化,我遇到了问题。查看源自圆形对称种子的图像:

反应扩散中的不同拉普拉斯实现

它被实现为https://www.shadertoy.com/view/3sGXWG

拉普拉斯模板是

拉普拉斯模具

在第一张图像的左上角使用红点,

中上红+绿,

右上角的红+绿+蓝,

左下角的红色+绿色+蓝色+橙色。

红+绿+蓝+橙+黑中下

根据Steven Roberts 的回答,red + green in 用于右下方,并带有 whighting

方程没有显示问题,但它们是

redt=2red(red+4green)greent=2green(red+4green)red:=0.99red+0.01greengreen:=green+0.05green(1green)0.03red0.001red<0:red:=max(green,0)green<0:green:=max(red,0)

如何保持球面对称?

1个回答

有专门设计为具有旋转对称性的有限差分模板。例如,代替标准的二阶模板

1h2[11411]
您可以使用
16h2[1414204141]

我第一次遇到这个是在

Hundsdorfer、Willem 和 Jan G. Verwer。时间相关的对流-扩散-反应方程的数值解。卷。33. 施普林格科学与商业媒体,2013 年。

在第 301 页上,但我确信它也在其他来源中。

当我在您的 shadertoy 中尝试此操作时,不幸的是它没有解决您的问题,并且该模式看起来与您提供的模式相似。我认为真正的问题是单击时产生的圆不是一个完美的圆,而是有限差分网格上的近似值。这个初始条件是轴对称的,但不是径向对称的。细化网格会有所帮助,但您不能在笛卡尔网格上准确地表示一个圆。我的猜测是这些轻微的近似误差最终会导致非对称伪影。