通常使用制造的解决方案来验证求解器。如评论部分所述,您应该考虑域和边界Ω∂Ω
∂u∂t−a⋅∇u−D∇2u=f(x,t)in Ω,
ua⋅n^+D∇u⋅n^=g(x,t)on ∂Ω.
在这里,您只需插入您选择的任何 ,然后手动计算源项和,然后您可以通过比较您选择的分析和您计算的数值来测试求解器的一致性。一旦你这样做,你确定你的求解器也适用于原始方程,即通过设置。ufguuhf=g=0
例如,如果你插入你会得到(仔细检查!)u=e−tsin(x)cos(y)
f(x,t)=e−t(cos(y)sin(x)−2Dcos(y)sin(x)+axcos(x)cos(y)−aysin(x)sin(y)),
g(x,t)=e−t(Dnxcos(x)cos(y)−Dnysin(x)sin(y)+axnxcos(y)sin(x)+aynycos(y)sin(x)).