面内のフラックスのコンポーネントを制約せずに、fipy メッシュの境界面に法線方向のフラックスを特定の値に明示的に設定するにはどうすればよいですか?
ノイマン境界条件は、(1) 境界面に垂直な磁束の固定成分、または (2) 面での磁束の完全な仕様として指定できます。デフォルトの fipy 条件は前者 (値 = 0) ですが、明示的なメソッド (faceGrad.constrain) は後者です。この問題は、次のコードを fipy拡散.mesh20x20 の例の最後に追加し、さまざまな面のグラデーション結果に注意することで理解できます。
facesNeumann = mesh.exteriorFaces & ~facesTopLeft & ~facesBottomRight
print 'grad(phi) with default Neumann BC...'
print phi.faceGrad.value.T[facesNeumann.value]
phi.faceGrad.constrain(0.,facesNeumann)
DiffusionTerm().solve(var=phi)
print 'and with explicit Neumann BC...'
print phi.faceGrad.value.T[facesNeumann.value]