在 FVM 中设置一致性测试

计算科学 有限体积 确认
2021-11-29 18:15:07

我需要一些帮助来验证使用有限体积方法求解器的一致性测试。

思路如下:

基于制造解决方案(MMS)的方法,我提供分析解决方案,x,我让求解器组装矩阵,A从离散化,我提供源项,b (来自 MMS 的强制项)。

在求解阶段,我正在计算:r=Axb.

并计算以下误差规范:

L1=i=1N|r|Vii=1NVi,

L2=i=1N(r)2Vii=1NVi,

L=maxi=1N| r|,

其中是细胞数,是细胞体积。NVi

通过逐步细化网格并使用二阶离散化方案,我希望残差会随着二阶精度而减小。r

这是一个合适的方法吗?我的结果没有显示出正确的趋势,不同的规范具有不同的精度顺序()。L1=3L2=2.5L=2

我的彩信是:T(x,y)=x2+y2

PDE 是:(ΓT)=ST

定义的矩形网格尺寸均匀,结构清晰。所有边界条件都是狄利克雷x[0.1,0.7]y[0.2,0.8]

2个回答

一般来说,你是在正确的轨道上。仔细检查您的分析解决方案实施和规范。如果您仍然得到不同的收敛阶数,那么这是一个强有力的指标,表明您的离散化(或边界条件!)中存在错误。我总是建议将错误可视化,有时会提示错误所在的位置(BC / 处理器边界等)

如果您向我们提供您的 PDE 和您制造的解决方案,我们也许可以给您更多反馈。

使用不同规范的重点当然是每个规范都可以容忍不同类型的错误。范数响应任何大的孤立误差,所以一个明显的问题是在哪里找到最大的误差。它有什么特别之处吗?L

顺便说一句,我对制造的解决方案有点怀疑,因为它们引入了非物理源术语。你确定如何离散化这些吗?