1

我在下面的代码中尝试了内部边界条件。

我发现虽然我没有设置外部边界条件,但求解的结果将取决于 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)
4

0 回答 0