我是FiPy的新手,我正在解决3D体积内潜力的泊松方程。它适用于表面边界条件,但现在我需要在内部放置导体。这将是一个恒定的潜在表面,我意识到你不能将potential.constrain用于内部表面。
文档建议使用ImplicitSourceTerm以及定义表面的掩模,但不清楚如何将其用于约束潜在的常数,或等效地约束电场垂直于表面。这可能吗?
感谢您的帮助。
答案 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矢量上,隐式求解器永远不会看到""它。如果你颠倒了最后两个术语的顺序,那么conductor * largeValue
将被置于矩阵对角线上,conductor * largeValue * conductorPotential
被放在RHS上,这些单元格的解决方案将由conductorPotential
支配。< / p>
简而言之,我所说的是(对于FiPy(在这种情况下))是否重要
V == conductorPotential
或
conductorPotential == V
发布了一个IPython笔记本