FiPy内部传导边界条件

时间:2015-10-13 18:13:12

标签: python fipy

我是FiPy的新手,我正在解决3D体积内潜力的泊松方程。它适用于表面边界条件,但现在我需要在内部放置导体。这将是一个恒定的潜在表面,我意识到你不能将potential.constrain用于内部表面。

文档建议使用ImplicitSourceTerm以及定义表面的掩模,但不清楚如何将其用于约束潜在的常数,或等效地约束电场垂直于表面。这可能吗?

感谢您的帮助。

1 个答案:

答案 0 :(得分:2)

http://www.ctcms.nist.gov/fipy/documentation/USAGE.html#applying-internal-boundary-conditions的讨论准确描述了您的目标。我想我知道为什么它可能不适合你。在声明ImplicitSourceTerm时,FiPy必须注意不要在矩阵的对角线上添加负值,因此它会检查ImplicitSourceTerm系数的符号,并将它们与对角线的符号进行比较元素形成已放入矩阵的DiffusionTerm(和其他);如果迹象相反,那么FiPy会明确地处理这些细胞(将所有细胞放在RHS载体上)。

如果你声明你的等式(就像我最初那样)

eq = (fp.DiffusionTerm(coeff=dielectric) + charge ==   
      conductor * largeValue * conductorPotential
      - fp.ImplicitSourceTerm(coeff=conductor * largeValue)

然后关于导体的一切都被放在RHS矢量上,隐式求解器永远不会看到&#34;&#34;它。如果你颠倒了最​​后两个术语的顺序,那么conductor * largeValue将被置于矩阵对角线上,conductor * largeValue * conductorPotential被放在RHS上,这些单元格的解决方案将由conductorPotential支配。< / p>

简而言之,我所说的是(对于FiPy(在这种情况下))是否重要

V == conductorPotential

conductorPotential == V

我在https://gist.github.com/guyer/a61d5adfa9a050eb970a

发布了一个IPython笔记本
相关问题