我是FiPy的新手,我正在解三维体积内的位势的泊松方程。它在表面边界条件下工作得很好,但现在我需要在里面放置一个导体。这将是一个恒定的势能曲面,我意识到你不能将potential.constrain用于内部曲面。
文档建议将ImplicitSourceTerm与定义表面的掩模一起使用,但尚不清楚如何将其用于约束电位恒定,或等效地约束电场使其垂直于表面。这个是可能的吗?
谢谢你的帮助。
发布于 2015-10-22 21:56:50
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向量上,隐式求解器永远不会“看到”它。如果你颠倒最后两项的顺序,那么conductor * largeValue被放在矩阵对角线上,conductor * largeValue * conductorPotential被放在RHS上,这些单元的解变得由conductorPotential主导。
简而言之,我要说的是(对于FiPy (在本例中))您是否说
V == conductorPotential或
conductorPotential == V我在https://gist.github.com/guyer/a61d5adfa9a050eb970a上发布了一个IPython笔记本
https://stackoverflow.com/questions/33109744
复制相似问题