Как мне явно установить поток, нормальный к граничной грани в гибкой сетке, как определенное значение, не ограничивая компоненты потока внутри грани?
Граничное условие Неймана может быть определено как: (1) фиксированная составляющая потока, нормальная к граничной грани, или (2) как полная спецификация потока на грани. Условие fipy по умолчанию - первое (значение = 0), а явный метод (faceGrad.constrain) - второе. Эту проблему можно понять, добавив следующий код в конец файла fipy diffusion.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]