我在下面的代码中尝试了内部边界条件。
我发现虽然我没有设置外部边界条件,但求解的结果将取决于 LargeValue。此外,当我增加 largeValue 时,我必须再次重新定义方程,否则不能通过将新值设置为 LargeValue 来更改方程。
我已经使用该sweep
方法试图获得更好的结果,但它不起作用。
下面是我的代码。有什么错误吗?希望有人能帮助我!
for step in range(steps):
equation2=DiffusionTerm(coeff=perittivity)==ImplicitSourceTerm(largeValue*mask)-largeValue*mask*value
potential.setValue(0)
k=0.5
residual=1
while residual>1e-10 and abs(k-residual)>1e-18 :
k=residual
residual=equation2.sweep(potential)
if __name__=="__main__":
viewer.plot()
print step,residual,k-residual#,equation2,largeValue
largeValue=Variable(value = largeValue.value*1.1)